我有以下代码:
#include <string>
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;
我收到以下错误
g ++ -c -I $ BOOST_PATH tssNaming.h
tssNaming.h:7:错误:未在此范围内声明'string'
但我在#include
中包含了字符串。
答案 0 :(得分:44)
您必须使用std::string
,因为它位于std
命名空间。
答案 1 :(得分:7)
string
位于std
命名空间中。您有以下选择:
using namespace std;
并启用所有std
名称:然后您只能在您的程序上编写string
。using std::string
以启用std::string
:然后您只能在您的程序上编写string
。std::string
代替string
答案 2 :(得分:0)
I find that including:
using namespace std;
To your C++ code saves a lot of time in debugging especially in situations like yours where std:: string is required and also it will help in keeping your code clean.
With this in mind, your code should be:
#include <string>
using namespace std;
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;