我需要实现自己的流类来编写错误,例如cout
. 在这里我要做的是创建一个单独的类和重载<<
运算符来接受任何基本数据类型。简单的想法是休闲的。但是这个程序没有编译。
错误
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const wchar_t [20]' (or there is no acceptable conversion)
#include <iostream>
#include <string>
#include <sstream>
class ErrorWriter
{
public:
std::wstringstream& ErrorWriter::operator<<(std::wstringstream& ss){
//write to file
//write to console
return ss;
}
};
int main(){
ErrorWriter eout;
eout << L"this is first error";
eout << L"\nThis second error" << 1 << 2.5 << true;
}
所以我的问题
- 如何使用一个函数参数接受所有基本类型参数(我不需要为每种数据类型编写多个操作重载器)。
- 其他流怎么样
cout
,stringstream
实现这个 wstringstream 可以由
wchar_t
std::wstringstream ss(L"this is first error");
那么为什么它不能即时转换为 wstringstream(作为转换构造函数)