Дело такое,
Если простая реализация класса 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;
}