Я знаю это
Код: Выделить всё
std::shared_ptr
But let's say I have an abstract base class that's a simple accessor:
Код: Выделить всё
template
class Reader {
public:
virtual const T& Get() const = 0;
};
Код: Выделить всё
class Base {};
class Derived : public Base {};
Код: Выделить всё
std::unique_ptr
Код: Выделить всё
Reader
Код: Выделить всё
void Frobnicate(const Reader& reader) {}
void Run() {
std::unique_ptr reader = GetReaderSomehow();
Frobnicate(*reader);
}
Код: Выделить всё
Reader
Код: Выделить всё
Reader
Код: Выделить всё
:17:6: note: candidate function not viable: no known conversion from 'Reader' to 'const Reader' for 1st argument
17 | void Frobnicate(const Reader& reader) {}
Код: Выделить всё
Reader
Код: Выделить всё
std::unique_ptr&
So, how can I do this?
Источник: https://stackoverflow.com/questions/780 ... ts-templat