У меня есть такая функция (пожалуйста, не беспокойтесь о временном возврате по ссылке. Это просто пример для объяснения проблемы),
const foo<const int>& get_const()
{
foo<int> f;
return f;
}
Это явно не скомпилируется. Я ищу способ гарантировать, что вызывающие абоненты не изменят T
из foo
. Как я могу это гарантировать?
Я видел подобное поведение для boost::shared_ptr
. shared_ptr<T>
конвертируется в const shared_ptr<const T>
. Я не мог понять, как это делается.
Любая помощь будет здорово.