Корректность константы шаблона не может передать указатель константного объектаC++

Программы на C++. Форум разработчиков
Гость
Корректность константы шаблона не может передать указатель константного объекта

Сообщение Гость »

У меня есть шаблон с этим определением, и я называю его так.

Код: Выделить всё

#include 

template
class MyClass
{
public:
void Print(const T fooIn)
{
std::cout GetString() str = str;
}
std::string GetString()
{
return str;
}
};

template class MyClass;

int main()
{
const MyObject* foo = new MyObject("test");
MyClass* bar = new MyClass();

bar->Print(foo);

return 0;
}
Я получаю сообщение об ошибке: «Невозможно инициализировать параметр типа Object * с помощью lvalue типа const Object *». Я использую Clangd
Поскольку T=Object*, почему const T не равно const Object *?
Я думаю, что вместо этого он разрешился в Object* const
И как мне сделать так, чтобы он имел желаемую функциональность постоянства по отношению к объекту, на который он указывает, и я не хочу менять создание экземпляра на const Object *

Подробнее здесь: https://stackoverflow.com/questions/781 ... ct-pointer

Вернуться в «C++»