2012-09-01 22 views
14

में स्ट्रिंग घोषित नहीं किया गया है मैं निम्नलिखित कोड है:क्यों गुंजाइश

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

static boost::thread_specific_ptr<string> _tssThreadNameSptr; 

मैं निम्न त्रुटि

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

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

मिल लेकिन मैं अपने #include में स्ट्रिंग शामिल कर रहा हूँ।

+2

की स्ट्रिंग – innochenti

+1

संभव डुप्लिकेट से पहले std :: जोड़ने [सी ++ त्रुटि: 'स्ट्रिंग' घोषित नहीं किया गया है] (http://stackoverflow.com/questions/2890860/c- त्रुटि-स्ट्रिंग-नहीं-घोषित नहीं किया गया है) – juanchopanza

उत्तर

32

आपको का उपयोग करना है क्योंकि यह std नामस्थान में है।

+0

टायस, जो काम करता है !! – Jimm

6

stringstd नामस्थान में है।

  • लिखें using namespace std; के बाद शामिल हैं और सभी std नाम सक्षम: आपके पास निम्न विकल्प तो आप केवल string अपने कार्यक्रम पर लिख सकते हैं।
  • using std::string लिखें std::string सक्षम करने के बाद: तो आप अपने प्रोग्राम पर केवल string लिख सकते हैं।
  • उपयोग std::string बजाय string
+1

आपको 'नामस्थान स्टेड का उपयोग करना' या 'std :: string' का उपयोग करके और बाध्य दायरे में उपयोग करना चाहिए (उदाहरण के लिए, फ़ंक्शन के अंदर)। कभी भी हेडर में इसका उपयोग न करें, क्योंकि यह वैश्विक हेडस्पेस को आपके हेडर के उपयोगकर्ताओं के प्रतीक के साथ प्रदूषित नहीं करेगा। – alexc