【发布时间】:2012-04-23 13:57:02
【问题描述】:
我必须在(C++,我使用 MS Visual Studio 2008 SP1)中对类成员函数使用显式特化,但我无法成功编译它。得到
错误 C2910: 'File::operator
class File
{
std::ofstream mOutPutFile;
public:
template<typename T>
File& operator<<(T const& data);
};
template<typename T>
File& File::operator<< (T const& data)
{
mOutPutFile << preprosesor(data);
return *this;
}
template< >
File& File::operator<< <> (std::ofstream& out)
{
mOutPutFile << out;
return *this;
}
【问题讨论】:
-
您在 Windows 上工作; MSVC 的版本可能是相关的。如果您提供此类信息,通常可以帮助人们提供更好的答案。
-
Andrey 已经回答了您的问题。最重要的是,您可以考虑使用函数重载而不是函数特化。这样会更简单。
标签: c++ templates compiler-errors template-specialization ofstream