当我尝试编译以下代码时:
#include <string.h>
using namespace std;
typedef std::basic_string<char> foostring;
foostring foo = "foo";
我收到以下错误:
stringtest.cpp:5: error: expected initializer before ‘<’ token
stringtest.cpp:6: error: ‘foostring’ does not name a type
我的编译器是:g ++(Ubuntu 4.4.1-4ubuntu9)4.4.1
我究竟做错了什么?一旦我弄清楚如何使用它,我打算在Windows TCHAR中使用它来获得unicode支持。
答案 0 :(得分:4)
标头为<string>
,而不是<string.h>
。
没有标准库标题以扩展名结尾。 (你要包含C标题string.h
,它应该通过<cstring>
包含在C ++中,这就是你真正想要的。)