Agu*_*gus 4 c++ templates compiler-errors ofstream template-specialization
我必须在(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;
}
Run Code Online (Sandbox Code Playgroud)
您对operator <<的显式特化与声明的参数列表不匹配; T const& dataVS std::ofstream& out.这个编译在MSVC10中.
template<>
File& File::operator<< <std::ofstream> (const std::ofstream& out)
{
mOutPutFile << out;
return *this;
}
Run Code Online (Sandbox Code Playgroud)
注意const在函数参数之前添加.
| 归档时间: |
|
| 查看次数: |
1844 次 |
| 最近记录: |