Ich möchte einen beweglichen, aber nicht kopierbaren Typ als Wert in std::map
angeben. Hier ist ein einfacher Code, um das Prinzip zu testen.
Ich kompiliere das mit g++ test.cpp --std=c++0x
(gcc Version 4.5.1 unter Ubuntu 12.04). Es gibt einen großen hässlichen Fehler, wie unten gezeigt. Was ist das Problem?
Ich füge einige Details für zukünftige Referenzen hinzu: Dieser Bug, auf den Quux hingewiesen hat, wurde in gcc 4.5.1 von ein Problem im Move-Konstruktor für std::pair
.
Ab sofort wurde das Problem behoben und Sie sollten entweder Ihre Compiler-Version oder eine Problemumgehung aktualisieren, indem Sie eine andere Version der Standardbibliothek verwenden.