Nur kopierbarer Typ, der in MSVC STD :: Vektor -Implementierung nicht akzeptiert wirdC++

Programme in C++. Entwicklerforum
Anonymous
 Nur kopierbarer Typ, der in MSVC STD :: Vektor -Implementierung nicht akzeptiert wird

Post by Anonymous »

im folgenden Code: < /p>

Code: Select all

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>
Auf MSVC erhalten wir den Fehler: < /p>

Fehler C2280: 'Copy_Only :: Copy_Only (Copy_only &&)': Versuch, auf eine gelöschte Funktion zu verweisen. push_back (const &) 
Aufrufe emplaPS_back Implementierung:

HINWEIS: Beim Kompilieren von Klassenvorlagen -Mitgliedsfunktionen 'void std :: vector : '_Ty & std :: vector :: _ emplace_one_at_back (const _ty &)' kompiliert < /p>
< /blockquote>
Dies kompiliert mit GCC und Clang. Ist dies nur ein massiver MSVC -Compiler -Fehler im einfachsten Vektorbeispiel? Oder gibt es eine Standard -Sache, die diese Verwendung verhindern würde, die GCC und Clang nur überlegen?
Live -Beispiel.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post