std::any - почему так мало операторов?

Я смотрю на использование std::any для стирания типов как части интерфейса, который я создаю, и мне остается удивляться, почему в нем так мало операторов, как "+", "==". Я возился с Coliru здесь, где я расширил std::any для суммирования и печати в ostream. Это только для тех, кто держит double сейчас, но концепция работает, это всего лишь реализация, которую необходимо выполнить для поддержки всех основных числовых типов данных (если lhs и rhs одинакового типа для операндов).

Учитывая, что я смог расширить что-либо подобное за это короткое время, почему реализация stl так ограничена, когда дело доходит до операндов?

Любые мысли приветствуются.

1 ответ

Решение

Потому что в полной общности (что к чему std::any стремится) эти операторы не имеют смысла. Что касается ваших конкретных примеров;

+: Бессмысленно для объектов, подобных дате.

==: Бессмысленно для объектов только для записи.

Другие вопросы по тегам