Вы не можете делать то, что пытаетесь сделать.std::vector<T*>
отличается от типа std::vector<const T*>
, поэтому аргумент функции не соответствует параметру функции.То, что вы пытаетесь сделать, это не «передача непостоянного аргумента константному параметру», если он передает аргумент одного типа функции, ожидающей аргумент другого типа.«Передача непостоянного аргумента в постоянный параметр» будет выглядеть примерно так:
my_method(const vector<T*> & param);
vector<T*> v; // non const vector
my_method(v); // OK, method takes v by const reference, so it cannot be modify v.
, и вы можете это сделать.
Обратите внимание, что в приведенном выше примере my_method
не может изменить vector v
, но, поскольку v
содержит неконстантные указатели, объекты, на которые указывает , могут быть изменены .