Сообщение Простая задачка обощённого программирования от 17.10.2019 14:52
Изменено 17.10.2019 14:54 Kernan
Простая задачка обощённого программирования
Дело такое,
Если простая реализация класса any которая хранит своё представление через pimpl и type erasure. Мне неоходимо перегрузить оператор вывода << для any чтобы в своём формате выводить impl::T. всего типов 3, один из них std::string.
Как это сделать без РТТИ?
Концептуально это так выглядит
Если простая реализация класса any которая хранит своё представление через pimpl и type erasure. Мне неоходимо перегрузить оператор вывода << для any чтобы в своём формате выводить impl::T. всего типов 3, один из них std::string.
Как это сделать без РТТИ?
Концептуально это так выглядит
struct any
{
...
struct placeholder
{
virtual ~placeholder() {}
}
template<class T>
struct impl: public placeholder
{
T value;
}
}
operator<<(any& a)
{
os << a.imp.value;
}
Простая задачка обощённого программирования
Дело такое,
Если простая реализация класса any которая хранит своё представление через pimpl и type erasure. Мне неоходимо перегрузить оператор вывода << для any чтобы в своём формате выводить impl::T. всего типов 3, один из них std::string.
Как это сделать без РТТИ и красиво чтобы перегуржать только один оператор << под тип?
Концептуально это так выглядит
Если простая реализация класса any которая хранит своё представление через pimpl и type erasure. Мне неоходимо перегрузить оператор вывода << для any чтобы в своём формате выводить impl::T. всего типов 3, один из них std::string.
Как это сделать без РТТИ и красиво чтобы перегуржать только один оператор << под тип?
Концептуально это так выглядит
struct any
{
...
struct placeholder
{
virtual ~placeholder() {}
}
template<class T>
struct impl: public placeholder
{
T value;
}
}
operator<<(any& a)
{
os << a.imp.value;
}