Как сделать так, чтобы объекты типа этого шаблона воспринимались как T&?
template<typename T>
class wrapper {
T& ref;
};
Хочу чтобы объект типа wrapper<some_class> вел себя так же, как some_class&
лучшее что ты можешь сделать это добавить operator T& и operator->
Лучше вот так template <typename T> class wrapper { public: T* ref; };
https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper ?
Чтобы он вел себя точно как объект, на книгой держит ссылку, требуется, в частности, перегрузка точки, а это невозможно в языке.
И непонятно зачем нужен такой объект, если можно просто завести ссылку на целевой тип.
Когда функция копирует аргументы
Ну так это же решение. Непонятно зачем топикстартеру свой класс.
Новый тип ссылок ввести, чтобы отличать копирование от перемещения.
Да, да
Его нет)
C++98 :)
а ну ссзб
Если у вас 98 стандарт, то там по определению нет перемещения. Как вы узнаете об этом в своем самописном классе?
Конструктор и operator= получит мой враппер, вместо обычной ссылки.
Обсуждают сегодня