solution Trouvé comment utiliser rvalue comme lvalue:rvalue comme lvalue
&(std::string()=std::string("Hello World"));
mais pas sûr est-il légal d'utiliser cette construction.
même code à ce travaille pour moi
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)));
où le constructeur a besoin custom_pair
adresse en tant que deuxième paramètre, mais quelqu'un peut-il expliquer est-il correct d'utiliser?
Montrer en quoi 'custom_pair()' est réellement disponible. Fournissez un [MCVE] au besoin! Gardez vos questions autonomes, au lieu de renvoyer uniquement aux liens (ils peuvent être utilisés comme informations supplémentaires). –
Cela semble être un problème. Stocker l'adresse d'un objet temporaire? – tadman
* Code identique à ceci fonctionne pour moi * Que signifie * travail * dans votre cas? Je suppose que vous allez rencontrer UB si vous déréférencer le pointeur. –