我有以下代码:
#include <string>
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;
我得到以下错误
G ++ -c -I $ BOOST_PATH tssNaming.h
tssNaming.h:7:错误:“字符串”在此范围内未声明
但我,包括我的字符串#include
。
我有以下代码:
#include <string>
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;
我得到以下错误
G ++ -c -I $ BOOST_PATH tssNaming.h
tssNaming.h:7:错误:“字符串”在此范围内未声明
但我,包括我的字符串#include
。
你必须使用std::string
,因为它是在std
命名空间。
string
是在std
命名空间。 您有以下选择:
using namespace std;
包括和启用所有后std
名称:那么你可以只写string
在你的程序。 using std::string
后,包括启用std::string
:那么你可以只写string
在你的程序。 std::string
,而不是string
我发现,其中包括:
using namespace std;
为了你的C ++代码,节省了大量的时间在等,其中需要的std :: string你的情况下,特别是调试,并会保持你的代码干净的帮助。
考虑到这一点,你的代码应该是:
#include <string>
using namespace std;
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;