gefunden Abhilfe wie rvalue als L-Wert zu verwenden:Rvalue als L-Wert
&(std::string()=std::string("Hello World"));
aber nicht sicher, ist es legal, diese Konstruktion zu verwenden.
-Code gleich ist dies für mich arbeiten
typedef std::pair<const char *, const std::string *> custom_pair;
std::ostream & operator <<(std::ostream & os, const custom_pair & kv)
{
if (kv.first && kv.second && !kv.second->empty())
os << kv.first << *kv.second;
return os;
}
std::ostringstream q;
q << custom_pair("example_string=", &(std::string() = IntToString(1)));
wo custom_pair
Konstruktor Adresse als zweiten Parameter benötigt, kann aber jemand erklären, ist es richtig, diese zu benutzen?
Zeigen Sie, was 'custom_pair()' eigentlich ist, bitte. Stellen Sie nach Bedarf ein [MCVE] bereit! Halten Sie Ihre Fragen in sich geschlossen, anstatt nur auf Links zu verweisen (diese können als zusätzliche Informationen verwendet werden). –
Das scheint Ärger. Speichern der Adresse eines temporären Objekts? – tadman
* Derselbe Code funktioniert für mich * Was bedeutet * working * in Ihrem Fall? Ich vermute, Sie werden auf UB stoßen, wenn Sie den Zeiger dereferenzieren. –