Następujące elementy nie są kompilowane (bardzo szczegółowy błąd, ale w zasadzie "nie można przeciążyć" i "nieprawidłowa konwersja z" const void * "na" void * ""). Mogę zrozumieć, dlaczego na przykład push_back() nie może skompilować, ponieważ nie można skopiować/przenieść do Foo* const
, ale dlaczego nie ma tej kompilacji:wektor wskaźników const?
#include <vector>
using namespace std;
class Foo;
int main()
{
vector<Foo* const> vec;
}
Pełny błąd można znaleźć [tutaj] (http://ideone.com/EouxNT) –
W C++ 03 element wektorowy musiał być CopyAssignable. W C++ 11 nadal nie jest dozwolone, [patrz tutaj] (http://stackoverflow.com/questions/6954906/does-c11-allow-vectorconst-t). W rzeczywistości sugeruję zamknięcie jako duplikat tego pytania, jeśli wszyscy się zgodzą. –
Jak myślisz, w jaki sposób możesz wstawić nowe elementy do 'wektora'? – Jagannath