Что-то сегодня плохо голова соображает. А возможен ли сабж ?
Чего хочется: маленький некопируемый неперемещаемый объект, в который передается ссылка на любой другой (возможно некопируемый и неперемещаемый) тип. При вызове метода объекта ссылка передается дальше. Что-то типа такого:
template <typename type_t>
struct object
{
object(const type_t& type) ...
object(const object& that) = delete;
object& oparator(const object& that) = delete;
const type_t& forward() const ... // as std::forward<>
};
Тут всё преобразуется к ссылке на const type, а в идеале хотелось бы std::forward<> но для класса. Возможно ли такое в принципе? Если нет, какие возможны компромиссы?