Я смотрю на использование std :: any для стирания типов в качестве части интерфейса, который я создаю, и мне остается удивляться, почему в нем так мало операторов, как «+», «==». Я возился на колиру Вот, где я расширил std :: any для суммирования и печати в ostream. Это только для тех, кто сейчас имеет значение double, но концепция работает, это просто реализация, которую необходимо выполнить для поддержки всех основных числовых типов данных (если lhs и rhs одинакового типа для операндов).
Учитывая, что я смог расширить что-либо подобное за это короткое время, почему реализация stl так ограничена, когда дело доходит до операндов?
Любые мысли приветствуются.
Потому что в полной общности (что к чему std::any
стремится) эти операторы не имеют смысла. Что касается ваших конкретных примеров;
+
: Бессмысленно для объектов, подобных дате.
==
: Бессмысленно для только для записи объекты.
Других решений пока нет …