Das folgende kompiliert nicht (sehr ausführlichen Fehler, aber im Grunde "kann nicht überladen werden" und "ungültige Konvertierung von 'const void *' zu 'void *'"). Ich kann deshalb zum Beispiel push_back() kann nicht verstehen, kompilieren, da Sie nicht kopieren/verschieben in ein Foo* const
, aber warum nicht diese Kompilierung:Vektor von const Zeigern?
#include <vector>
using namespace std;
class Foo;
int main()
{
vector<Foo* const> vec;
}
Vollständiger Fehler gefunden [hier] (http://ideone.com/EouxNT) –
In C++ 03 Vektorelement musste CopyAssignable sein. In C++ 11 ist es immer noch nicht erlaubt, [siehe hier] (http://stackoverflow.com/questions/6954906/does-c11-allow-vectorconst-t). In der Tat würde ich vorschlagen, diese Frage zu duplizieren, wenn alle einverstanden sind. –
Wie könnten Sie neue Elemente in den 'Vektor' einfügen? – Jagannath