Niezdefiniowany błąd odniesienia dla metody szablonu [duplikat]

To pytanie ma już tutaj odpowiedź:

Dlaczego szablony mogą być implementowane tylko w pliku nagłówkowym? 15 odpowiedzi

To doprowadza mnie do szału przez ostatnie półtorej godziny. Wiem, że to mała rzecz, ale nie mogę znaleźć tego, co jest nie tak (oczywiście, że to deszczowe popołudnie w piątek, nie pomaga).

Zdefiniowałem następującą klasę, która będzie przechowywać parametry konfiguracyjne odczytane z pliku i pozwoli mi uzyskać do nich dostęp z mojego programu:

class VAConfig {
    friend std::ostream& operator<<( std::ostream& lhs, const VAConfig& rhs);

private:
    VAConfig();
    static std::string      configFilename;
    static VAConfig*        pConfigInstance;
    static TiXmlDocument*   pXmlDoc;
    std::map<std::string, std::string> valueHash;

public:
    static VAConfig* getInstance();
    static void setConfigFileName( std::string& filename ) { configFilename = filename; }
    virtual ~VAConfig();

    void readParameterSet( std::string parameterGroupName );
    template<typename T> T readParameter( const std::string parameterName );
    template<typename T> T convert( const std::string& value );
};

gdzie metodaconvert() jest zdefiniowany wVAConfig.cpp tak jak

template <typename T>
T VAConfig::convert( const std::string& value )
{
    T t;
    std::istringstream iss( value, std::istringstream::in );
    iss >> t;
    return t;
}

Wszystko całkiem proste. Ale kiedy testuję z mojego głównego programu używając

int y = parameters->convert<int>("5");

Dostajęundefined reference to 'int VAConfig::convert<int>...' błąd kompilacji. To samo dotyczyreadParameter().

Sprawdziłem wiele samouczków szablonów, ale nie mogłem tego zrozumieć. Jakieś pomysły?

questionAnswers(3)

yourAnswerToTheQuestion