Здравствуйте, alex_public, Вы писали:
_>Ну так а чем функция типа Apply не подходит то? Что-то типа
_>_>template<typename R, typename T> auto Apply(optional<T> t, R (*f)(T)) {return t?f(*t):optional<R>();}
_>
_>Пояснение: в boost'е у optional переопределён оператор bool (возвращает has_value()) и * (возвращает value()) — в таком варианте код записывается короче, но разницы в смысле нет.
И? Дальше-то что? Ну вот написал Петя такую функцию Apply для своего optional. А мне-то как этим пользоваться?
Вот у меня был код на обычных big_integer:
for(int i=0; i<array.length(); i++)
{
if (array[i]*array[i] > limit))
sum+=array[i]*array[i];
}
Я решил заменить их на option<big_integer>. Как теперь будет выглядеть мой код?