От контекста зависит
Ага, понял!
Ну... Чет нет Так вызовется конструктор копирования или перемещения на месте (emplace) А так конструктор копирования или мува (push)
откуда у вас там в push_back оператор копирования взялся
? push_back почти всегда просто вызов emplace_back внутри
Ну а чем ещё помещается переданный аргумент в то, что уже в векторе создано? Вот в такой сигнатуре: push_back(const value_type&) Возможно уже сплю
это легко проверить
GCC #if __cplusplus >= 201103L void push_back(value_type&& __x) { emplace_back(std::move(__x)); }
push_back новый элемент создаёт, ничего там не создано ещё)
А, ну да, логично
Я не правильно прочитал его вопрос. Но в push_back сразу инициализация копированием или перемещением происходит
в 11.2 emplace_back два раза копи конструктор вызывает. хз почему https://godbolt.org/z/3M5MYo88x
а, понятно. я там фигню сделал
Обсуждают сегодня