Только копируемый тип, не принятый в MSVC STD :: Vector RegainationC++

Программы на C++. Форум разработчиков
Anonymous
Только копируемый тип, не принятый в MSVC STD :: Vector Regaination

Сообщение Anonymous »

В следующем коде: < /p>

Код: Выделить всё

struct copy_only
{
copy_only() = default;
copy_only(const copy_only&)            = default;
copy_only& operator=(const copy_only&) = default;
copy_only(copy_only&&)                 = delete;
copy_only& operator=(copy_only&&)      = delete;
~copy_only()                           = default;
};

std::vector v;
copy_only c{};
v.push_back(c);
< /code>
на MSVC мы получаем ошибку: < /p>

Ошибка C2280: 'copy_only :: copy_only (copy_only &&)': попытка ссылаться на удаленную функцию < /p>
< /blockquote>
 with in vitor vitor vitor vitor vitor vitor vitor vitor with in the obreator < /p>
< /blockquote> push_back (const &) 
вызовы emplace_back реализация:

Примечание: при составлении функции члена класса. instantiaiation '_ty & std :: vector :: _ emplace_one_at_back (const _ty &)' составлено < /p>
< /blockquote>
Это компилирован с GCC и Clang. Это просто массивная ошибка компилятора MSVC в простейшем векторном примере? Или есть какая -то стандартная вещь, которая предотвратит это использование, что GCC и Clang просто зацикливаются?
Живой пример.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ementation

Вернуться в «C++»