이것은 지난 1 시간 반 동안 나를 미치게했습니다. 나는 그것이 작은 것이지만 무엇이 잘못되었는지를 알 수 없다는 것을 안다. (물론 비오는 금요일 오후인데 도움이되지 않는다.)템플릿 메서드에 대한 정의되지 않은 참조 오류
나는 파일에서 읽을 구성 매개 변수를 개최하고 내 프로그램에서 액세스 할 수있게된다 다음 클래스를 정의 : 방법 convert()
이
template <typename T>
T VAConfig::convert(const std::string& value)
{
T t;
std::istringstream iss(value, std::istringstream::in);
iss >> t;
return t;
}
로
VAConfig.cpp
에 정의되어
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);
};
모두 매우 간단합니다. 하지만 내 메인 프로그램에서 테스트 할 때
int y = parameters->convert<int>("5");
나는 undefined reference to 'int VAConfig::convert<int>...'
컴파일 오류가 발생합니다. 동부 표준시 readParameter()
.
많은 템플릿 자습서를 보았지만이를 파악하지 못했습니다. 어떤 아이디어?
1 시간 반이 그렇게 나쁘지 않아 ... 어제 3시 간 나를 죽였다. –