объект который уже не нужен и скоро помрет и позволяет пользователю делать что угодно с этим объектом (главное, после всех манипуляций оставить его в “разрушаемом” состоянии), обычно это подразумевает вытягивание всего внутреннего состояния в другой объект.
Но что по такой идеологии можно сделать с const rvalue reference? Ничего, ведь состояние этого временного объекта то поменять нельзя. Фактически ситуация становится аналогичной ситуации с const lvalue reference, так собсна зачем генерировать тогда дополнительный конструктор?
void some_view::foo(int & x) { this->ref1 = std::ref(x); } void some_view::foo(int const& x) { this->ref2 = std::cref(x); } какая из этих функций совершенно неконтролируемо для языка стреляет в ногу и почему
Обсуждают сегодня