Рассмотрим фрагмент кода:Почему я не могу нажать указатель const на std :: vector?
class T;
void constructVector(const T* item)
{
std::vector<T*> v;
v.push_back(item);
}
Я получаю сообщение об ошибке с MSVC 2010 компилятором:
error: C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'const T *' to 'T *&&' with [ _Ty=T * ] Conversion loses qualifiers
Я могу видеть это особенности преобразования является незаконным, но я не верю, что мой код семантически неправильно. Я также считаю, что есть вариант push_back(const T&)
, почему это не соответствует моему звонку?
У вас есть вектор, не являющихся предметов константных и вы нажимаете элемент const. Это говорит вам, что они не одно и то же. – Jay
@Jay: О, я понимаю, что вы имеете в виду! Глупый вопрос. –