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