我在下面列出了一些工作代码
ofstream of("/home/joe/test.dat", ios::out | ios::binary);
of.write((char*)&dat[0],dat.size());
但下面的代码不产生输出
basic_ofstream<unsigned char> of("/home/joe/test.dat", ios::out | ios::binary);
of.write(&dat[0],dat.size());
我在linux上尝试使用gcc 4.9。请注意,没有编译警告或错误。
答案 0 :(得分:2)
这不起作用:
basic_ofstream<unsigned char> of("/tmp/test2.dat", ios::out | ios::binary);
of.write(&dat[0],dat.size());
但这有效:
basic_ofstream<char> of("/tmp/test3.dat", ios::out | ios::binary);
of.write((char*)&dat[0],dat.size());
实现没有义务提供std::char_traits<unsigned char>
的实例化,以及那些具有不兼容实例化的实例。它可能适用于特定的编译器,但它不是必需的。