2010-11-12 16 views
11

मैं कुछ स्ट्रिंग जो मैं के रूप मेंबूस्ट लाइब्रेरी प्रारूप; हो रही std :: स्ट्रिंग

boost::container::vector<std::string> someStringVector; 
someStringVector.push_back(
    format("after is x:%f y:%f and before is x:%f y:%f\r\n") % 
    temp.x % 
    temp.y % 
    this->body->GetPosition().x % 
    this->body->GetPosition().y; 

संकलक शिकायत कर रहा है कि यह प्रकार परिवर्तित नहीं कर सकते इस प्रकार बढ़ावा लाइब्रेरी का उपयोग कर स्वरूपित जोड़ना चाहते हैं, और मैं .str जोड़कर की कोशिश की() के लिए किस प्रारूप का अंत आता है, लेकिन यह अभी भी शिकायत की है।

त्रुटि संदेश मुझे मिल गया था:

error C2664: 'void boost::container::vector<T>::push_back(
    const std::basic_string<_Elem,_Traits,_Ax> &)' : 
    cannot convert parameter 1 from 
    'boost::basic_format<Ch>' to 
    'const std::basic_string<_Elem,_Traits,_Ax> &' 

किसी को कुछ जानकारी है? पर्याप्त होना चाहिए

str(format("after is x:%f y:%f and before is x:%f y:%f\r\n") 
    % temp.x % temp.y % this->body->GetPosition().x % this->body->GetPosition().y) 
+4

जब संकलक शिकायत करता है, यह आमतौर पर त्रुटि संदेशों के रूप में ऐसा करता है। यह आपको कौन से त्रुटि संदेश देता है? –

+0

बढ़ावा देने के लिए कॉल लपेटने के बारे में :: :: प्रारूप में प्रारूप :: str? – Anonymous

उत्तर

16

आप को बढ़ावा देने के :: str, तो जैसे एक कॉल में प्रारूप रैप करने के लिए की जरूरत है)। यह आपके प्रश्न से बिल्कुल स्पष्ट नहीं है कि आपने ऐसा कैसे किया, लेकिन मैंने देखा कि आपके उदाहरण में push_back() पर समापन माता-पिता गुम हैं।

ध्यान दें कि आप प्रारूप वस्तु पिछले% ऑपरेटर से लौटे पर str() कॉल करना चाहते हैं, ऐसा करने के लिए सबसे आसान तरीका है बस इतनी तरह कोष्ठक में पूरी प्रारूप लाइन रैप करने के लिए है:

boost::container::vector<std::string> someStringVector; 
someStringVector.push_back(
    (format("after is x:%f y:%f and before is x:%f y:%f\r\n") % 
    temp.x % 
    temp.y % 
    this->body->GetPosition().x % 
    this->body->GetPosition().y).str()); 
+0

जब मैं ऐसा करता हूं तो यह मुझे त्रुटि देता है: त्रुटि C2440: 'वापसी': 'std :: string' से 'std :: basic_string <_Elem, _Traits, _Ax> &&' – moowiz2020

+0

@ moowiz2020 से कनवर्ट नहीं किया जा सकता है: someStringArray किस प्रकार का है ? टेम्पलेट पैरामीटर सहित पूर्ण प्रकार विनिर्देश। –

+0

यह एक बढ़ावा :: कंटेनर :: वेक्टर है। – moowiz2020

5

एक जोड़ना ".str()" जिसके परिणामस्वरूप प्रारूप वस्तु को (और मेरे लिए काम करता है:

+0

मैंने उस बिंदु पर प्रोग्राम में अपना कोड कॉपी और पेस्ट किया है, और यह मुझे त्रुटि देता है: त्रुटि C2440: 'वापसी': 'std :: string' से 'std :: basic_string <_Elem, _Traits, _Ax> && '। यह एक कंपाइलर विशिष्ट समस्या – moowiz2020

+0

@ moowiz2020 हो सकता है: मैंने वीएस 2008 का उपयोग किया। शायद आपको समस्या का प्रदर्शन करने वाला एक पूर्ण नमूना प्रदान करने की आवश्यकता है। – zdan

संबंधित मुद्दे