Implizite Instanziierung von undefiniertem Template 'std :: basic_string & lt; char, std :: char_traits & lt; char & gt ;, std :: allocator & lt; char & gt; & gt; '

In das Projekt, das ich gearbeitet haben, haben wir uns zu senden Kakao-Benachrichtigungen von C++ - Teilprojekte zu den wichtigsten Projekt vor. Dazu konstruieren wir eine Karte als Schlüssel-Wert-Speicher für die userInfo Wörterbuch der Mitteilung.

In einem der Projekte, der folgende code kompiliert werden, einfach nur fein:

std::map<std::string, std::string> *userInfo = new std::map<std::string, std::string>;
char buffer[255];

sprintf(buffer, "%i", intValue1);
userInfo->insert(std::pair<std::string, std::string>("intValue1", std::string(buffer)));

sprintf(buffer, "%i", intValue2);
userInfo->insert(std::pair<std::string, std::string>("intValue2", std::string(buffer)));

if(condition)
    userInfo->insert(std::pair<std::string, std::string>("conditionalValue", "true"));

PostCocoaNotification("notificationName", *userInfo);

Jedoch, wenn diese kopiert, in eine identische Datei in einem anderen Teilprojekt, der compiler wirft folgenden auf die userInfo->einfügen-Aufrufe:

"Implicit instantiation of undefined template 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >'" 

..und es nicht finden kann, die Funktion für PostCocoaNotification:

No matching function for call to 'PostCocoaNotification'

Darüber hinaus wirft es die folgenden Fehler in system-Header:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/c++/4.2.1/bits/stl_pair.h:73:11: Implicit instantiation of undefined template 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >'
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/c++/4.2.1/bits/stl_pair.h:74:11: Implicit instantiation of undefined template 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >'
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/c++/4.2.1/bits/stl_pair.h:73:11: Implicit instantiation of undefined template 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >'
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/c++/4.2.1/bits/stl_tree.h:1324:13: Cannot initialize a parameter of type '_Link_type' (aka '_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *') with an rvalue of type '_Const_Link_type' (aka 'const _Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *')

Ich habe keine Ahnung, was ich getan habe, um zu verursachen ein solches chaos, besonders wenn der code läuft einwandfrei in einem anderen Teilprojekt (erfolgreich senden von Benachrichtigungen). Keine Einsicht für das problem wäre sehr willkommen.

InformationsquelleAutor der Frage Andrew | 2013-10-07

Schreibe einen Kommentar