kapsam

2012-09-01 22 views
14

dize bildirilmedi neden Aşağıdaki kod var:kapsam

#include <string> 
#include <boost/thread/tss.hpp> 

static boost::thread_specific_ptr<string> _tssThreadNameSptr; 

aşağıdaki hatayı

g++ -c -I$BOOST_PATH tssNaming.h

tssNaming.h:7: error: 'string' was not declared in this scope

olsun Ama benim #include dizeyi dahil ediyorum.

+2

dize – innochenti

+1

olası yinelenen önce STD :: eklemek [C++ hatası: 'dizesi' ilan edilmemiştir] (http://stackoverflow.com/questions/2890860/c-) – juanchopanza

cevap

32

Bunu std ad alanında beri std::string kullanmak zorunda.

+0

TYS hata-string---been ilan yerine getirmediği yönünde çalıştı !! – Jimm

6

stringstd ad içindedir.

  • Yazma using namespace std; sonra eklemek ve tüm std isimleri etkinleştirmek: Aşağıdaki seçenekler mevcuttur o zaman sadece string sizin programa yazabilirsiniz. o zaman sadece string sizin programa yazabilirsiniz: std::string etkinleştirmek için dahil sonra
  • using std::string yaz.
  • Kullanım std::string yerine string
+1

Sen 'using namespace std' ya da (bir işlev içinde, örneğin) idareli ve sınırlı bir kapsamda 'std :: dizesi kullanarak' kullanmalıdır. Asla üstbilgisinde kullanmayın, çünkü genel ad alanını, başlığınızdaki kullanıcıların istemeyeceği sembollerle kirletir. – alexc