尝试使用多个参数进行部分特化。听起来像是
template <class T, int E=0>
class Info
{
public:
Info& operator=(double rhs);
T data;
};
template<int E> Info<std::string, E> &Info<std::string, E>::operator=(double rhs) {
data = rhs;
return *this;
}
但无法编译并获得
error: invalid use of incomplete type 'class
info<std::__cxx11::basic_string<char>, E>' template<int E>
Info<std::string, E> &Info<std::string, E>::operator=(double rhs)...
更新
似乎不可能做部分规范。有多个参数(可选或不...)我错了吗?