J'ai le code suivant:
#include <string>
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;
J'obtiens l'erreur suivante
g ++ -c -I $ BOOST_PATH tssNaming.h
tssNaming.h: 7: erreur: 'chaîne' n'a pas été déclarée dans cette étendue
Mais j'inclus de la ficelle dans mon #include
.
Vous devez utiliser std::string
car il est dans l'espace de noms std
.
string
est dans l'espace de noms std
. Vous disposez des options suivantes:
using namespace std;
après l'inclusion et activez tous les noms std
: vous ne pourrez alors écrire que string
sur votre programme.using std::string
après l'inclusion pour activer std::string
: vous ne pourrez alors écrire que string
sur votre programme.std::string
au lieu de string
Je trouve cela comprenant:
using namespace std;
Pour votre code C++, vous économisez beaucoup de temps dans le débogage, en particulier dans des situations comme la vôtre où std :: string est requis et cela vous aidera également à garder votre code propre.
Dans cet esprit, votre code doit être:
#include <string>
using namespace std;
#include <boost/thread/tss.hpp>
static boost::thread_specific_ptr<string> _tssThreadNameSptr;