声明和定义不匹配

问题描述 投票:0回答:1

我的模板类中的声明和定义不匹配(所有不相关的内容都被删除了:]

template <typename LanguageMap>
class WidgetLanguageManager
{
    public:
        enum class Language { DE, ENG, PL };
    protected:
        Language language;
        //Some protected fields
    public:
        explicit WidgetLanguageManager(const Language& language);
        explicit WidgetLanguageManager(const QString& language);
        Language ToLanguage(const QString& language);
    protected:
        //some protected methods
};


template <typename LanguageMap>
Language WidgetLanguageManager<LanguageMap>::ToLanguage(const QString& language) // this cannot be matched with a declaration
{
    for (QChar& c: language)
    {
        c = c.toLower();
    }

    switch (language)
    {
        case "german": return Language::DE;
        case "english": return Language::ENG;
        case "polish": return Language::PL;
    }
    throw RuntimeError("Wrong language paremeter.");
}

[请帮助,因为我看不到任何原因。

c++ declaration definition mismatch
1个回答
1
投票

以下可能会起作用:

© www.soinside.com 2019 - 2024. All rights reserved.