Простая задачка обощённого программирования
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 17.10.19 14:52
Оценка:
Дело такое,
Если простая реализация класса 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;
}
Sic luceat lux!
Отредактировано 17.10.2019 14:54 Kernan . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.