成员函数的模板专用化
Template specialization of a member function
我必须在(C++,我正在使用MS Visual Studio 2008 SP1)中的类成员函数使用显式专用化,但我无法成功编译它。获得
错误 C2910:"文件::运算符 <<":无法显式专用
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;
}
您对运算符<<的显式专用化与声明的参数列表不匹配; T const& data
vs std::ofstream& out
.这个在 MSVC10 中编译。
template<>
File& File::operator<< <std::ofstream> (const std::ofstream& out)
{
mOutPutFile << out;
return *this;
}
请注意const
函数参数之前添加的。
相关文章:
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- 具有常量引用参数的函数模板专用化
- 在 C++20 中是否不再允许在 std 中对程序定义类型的函数模板进行专用化?
- C++模板专用化 - 无法匹配函数定义
- 具有专用化的模板类中的可靠条件复制和移动构造函数
- 如何使专用函数模板成为某个类的朋友?
- 如何按类型为元组元素创建专用函数
- 无法访问专用函数
- 使用指向部分专用函数成员的指针自动填充向量
- 64 位 G++ 4.6.3 不会在专用函数模板中将长整型视为长整型,即使它们的大小相同。这是一个错误吗?
- 操作员过载的专用函数
- C++调用模板专用函数
- 模板类中专用函数的声明
- 使用专用函数对异构集合的 STL 算法
- C++专用函数-不在此范围内错误
- 为什么我不能专用函数模板?
- 用于专用函数参数的模板
- 代码重复和模板专用化(当专用函数具有不同的返回类型时)
- 具有专用函数的Pull-Apart函数类型
- 专用函数模板