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

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

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

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

1

Решение

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

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

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

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]