Сообщение move-ctor от 02.04.2019 11:08
Изменено 02.04.2019 11:08 niXman
move-ctor
привет!
увы, не могу воспроизвести пример в хеловорде.
есть приблизительно такой код:
вопрос в том, почему при использовании "hand-writen move ctor" код компилится, но если его закомментить и раскомментить автосгенеренный — получаю "use of deleted function ‘type::type(type &&)" ?
структура 'type' на самом деле содержит "move-only" член.
увы, не могу воспроизвести пример в хеловорде.
есть приблизительно такой код:
struct type {
type(const type &) = delete;
type& operator= (const type &) = delete;
type(int fd) {}
type(type &&r) {} // 1: hand-writen move ctor
//type(type &&) = default; // 2:
};
type func(int fd) {
type r{fd};
return r; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
вопрос в том, почему при использовании "hand-writen move ctor" код компилится, но если его закомментить и раскомментить автосгенеренный — получаю "use of deleted function ‘type::type(type &&)" ?
структура 'type' на самом деле содержит "move-only" член.
move-ctor
привет!
увы, не могу воспроизвести пример в хеловорде. телепаты приветствуются =)
есть приблизительно такой код:
вопрос в том, почему при использовании "hand-writen move ctor" код компилится, но если его закомментить и раскомментить автосгенеренный — получаю "use of deleted function ‘type::type(type &&)" ?
структура 'type' на самом деле содержит "move-only" член.
увы, не могу воспроизвести пример в хеловорде. телепаты приветствуются =)
есть приблизительно такой код:
struct type {
type(const type &) = delete;
type& operator= (const type &) = delete;
type(int fd) {}
type(type &&r) {} // 1: hand-writen move ctor
//type(type &&) = default; // 2:
};
type func(int fd) {
type r{fd};
return r; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
вопрос в том, почему при использовании "hand-writen move ctor" код компилится, но если его закомментить и раскомментить автосгенеренный — получаю "use of deleted function ‘type::type(type &&)" ?
структура 'type' на самом деле содержит "move-only" член.