我是C ++的新手,并试图让一个开源项目进行编译。编译器在此行引发错误
string Int_StrN (const int val, const streamsize count); //unknown type name 'streamsize'
我认为这意味着,没有定义类型。
有四个包含文件,这些文件都没有定义streamsize。也不是文件本身定义的streamize。
#include "bh.h"
#include <string>
#include <vector>
#include <map>
但我很确定这个代码是在某人的系统上编译和构建的(它来自一个中等活跃的开源项目)。那么原始编码器如何在不定义类型的情况下使用streamize?
答案 0 :(得分:6)
您需要的标题是
#include <ios>
它适用于其他人的原因是,标题隐含地包含在其他一些标题中。这是不能保证的,所以有些人,比如你,遇到麻烦。要求作者明确添加所需的#include
。
答案 1 :(得分:2)
std::streamsize
是标准C ++类型,来自<ios>
标题。
答案 2 :(得分:0)
字符串在namespace std。
中声明std::string Int_StrN (const int val, const std::streamsize count);
或:
使用namespace std;
string Int_StrN (const int val, const streamsize count);