Рассмотрим это
void f(vector<const T*>& p)
{
}
int main()
{
vector<T*> nonConstVec;
f(nonConstVec);
}
Не компилируется следующее. Дело в том, что vector<T*>
не может быть преобразовано в vector <const T*>
, и это кажется мне нелогичным, потому что существует неявное преобразование от T*
до const T*
. Почему это?
vector<const T*>
тоже нельзя преобразовать в vector <T*>
, но это ожидается, потому что const T*
не может быть преобразован неявно в T*
.