私は次のコードを持っています:
#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
に文字列を含めています。
std
名前空間にあるため、std::string
を使用する必要があります。
string
はstd
名前空間にあります。次のオプションがあります。
using namespace std;
インクルードの後、すべてのstd
名を有効にします。プログラムにはstring
のみを記述できます。using std::string
インクルードの後にstd::string
:プログラムにstring
のみを書き込むことができます。std::string
の代わりにstring
私はそれを見つける:
using namespace std;
C++コードでは、特にstd ::文字列が必要な状況でのデバッグに多くの時間を節約でき、コードをクリーンに保つのにも役立ちます。
これを念頭に置いて、コードは次のようにする必要があります。
#include <string>
using namespace std;
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;