我想在下面的课程中定义一个静态常量LIST_DELIMITER
。但是,我无法弄清楚如何用模板声明它。
// MyClass.h
#pragma once
#include <boost/algorithm/string.hpp>
#include <vector>
class MyClass
{
public:
MyClass();
virtual ~MyClass();
template<class T>
void GetAsVectorOfValues(std::vector<T> values)
{
boost::split(values, value_, boost::is_any_of(LIST_DELIMITER));
}
private:
std::string value_;
static const std::string LIST_DELIMITER;
};
// MyClass.cpp
std::string MyClass::LIST_DELIMITER = ",";
我知道stackoverflow上有类似的问题,但我似乎无法找到我正在寻找的东西。在我的情况下,有一点不同的是,我的整个班级都不是模板化的,只是单一的方法。
答案 0 :(得分:3)
您必须使用完全相同的声明,包括限定符:
const std::string MyClass::LIST_DELIMITER = ",";
^^^^^
此静态类成员定义中没有涉及模板。