Найдено решение, как использовать RValue в Lvalue:Rvalue в Lvalue
&(std::string()=std::string("Hello World"));
, но не уверен, что это законно использовать эту конструкцию.
код равно это работает для меня
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)));
где custom_pair
конструктор нужен адрес в качестве второго параметра, но может кто-то объяснить это правильно использовать это?
Показать, что 'custom_pair()' на самом деле, пожалуйста. Предоставьте [MCVE] по мере необходимости! Соблюдайте свои вопросы самостоятельно, вместо того, чтобы указывать только на ссылки (они могут использоваться как дополнительная информация). –
Это похоже на неприятности. Хранение адреса временного объекта? – tadman
* Код для этого работает для меня * Что означает * работа * означает в вашем случае? Я подозреваю, что вы столкнетесь с UB, если вы разыщите указатель. –