Следующие не компилируются (очень сложная ошибка, но в принципе «невозможно перегрузить» и «неверное преобразование из« const void * »в« void * »). Я могу понять, почему, например, push_back() не может компилировать, так как вы не можете копировать/перемещать в Foo* const
, но почему не это компиляции:вектор константных указателей?
#include <vector>
using namespace std;
class Foo;
int main()
{
vector<Foo* const> vec;
}
Полная ошибка может быть найдена [здесь] (http://ideone.com/EouxNT) –
В C++ 03 векторный элемент должен быть CopyAssignable. В C++ 11 это еще не разрешено, [см. Здесь] (http://stackoverflow.com/questions/6954906/does-c11-allow-vectorconst-t). На самом деле я предлагаю закрыть дубликат этого вопроса, если все согласятся. –
Как вы думаете, вы можете вставить новые элементы в 'vector'? – Jagannath