Назначение контейнера STL и указатели const
Это компилирует:
int* p1;
const int* p2;
p2 = p1;
Это не:
vector<int*> v1;
vector<const int*> v2;
v2 = v1; // Error!
v2 = static_cast<vector<const int*> >(v1); // Error!
Каковы правила эквивалентности типов для вложенных указателей const? Я думал, что преобразование будет неявным. Кроме того, я бы предпочел не осуществлять точечное назначение контейнеров STL, если только мне это не нужно.