从这个代码生成的程序:basic_ifstream <...> ::阅读()不读什么
#include <fstream>
using std::basic_ifstream;
#include <ios>
using std::streamsize;
#include <ZenLib/Conf.h>
using ZenLib::int8u;
int main() {
#define charT int8u
#define T basic_ifstream<charT>
T ifs ("/proc/cpuinfo", T::in | T::binary);
#undef T
streamsize const bufsize (4096);
charT buf[bufsize];
#undef charT
return !ifs.read(buf, bufsize).gcount();
}
...返回1
所以std::basic_ifstream<ZenLib::int8u>::read()
无法从/proc/cpuinfo
提取任何字节。
我做错了什么?
灿你综合了一个简单的,独立的例子,不需要追踪多个宏? – 2014-11-02 16:05:40
这些流设计为与字符类型一起用作模板参数,而不是整数。 – Galik 2014-11-02 16:07:13
流只支持字符类型'char'和'wchar_t'。由于缺乏专门的代码转换构面,因此不能保证适用于不同的字符类型。 – 0x499602D2 2014-11-02 16:07:14