Ich erstelle einen neuen Zeiger auf ein neues Objekt und sofort push_front in eine Deque. Ich möchte stattdessen emplace_front verwenden, bekomme aber einen Compilerfehler.Deque emplace_back Neuer Zeiger auf Objekt
Mein Objektkonstruktor benötigt 1 Zeichenfolgenargument.
std::deque<NetPacket*> q_IncomingPackets;
q_IncomingPackets.push_back(new NetPacket(std::string(uncompressed_data, retVal))));
q_IncomingPackets.emplace_back(std::string(uncompressed_data, retVal));
Nach Referenzen von anderen Websites, die ich dachte, dass ich einfach push_back
für emplace_back
tauschen könnte, aber die folgende Fehlermeldung erhalten:
Error C2440 'initializing': cannot convert from 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' to 'PeerNet::NetPacket *' PeerNet \vc\include\xmemory0 737
Die Referenzen über die Verwendung einzulagern nicht reden, wenn neue Zeiger auf Objekte zu schaffen, nur konkrete Objekte. cppreference.comcplusplus.com