Re[7]: default arguments in typedef declarations
От: Кодт Россия  
Дата: 22.02.13 19:40
Оценка: 7 (1)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

К>>// где storage — это кортеж, чьи элементы конструируются не сразу, а во второй фазе;

К>>// в роли storage<...> может пойти optional<tuple<...>>

EP>Согласен, по идее должно взлететь


Для полного взлёта можно не optional<tuple<...>>, а даже optional<A1>, optional<A2>, etc.
  Data& operator() (
    optional<int> a1 = none,
    optional<Data> a2 = none
  ) const
  {
    if(!a1) a1 = make_arg1();
    if(!a2) a2 = make_arg2();
    return fun(*a1, *a2);
  }

Так красивее, но мы часть работы в рантайм затаскиваем.
Только там со ссылками будет зарубка... может быть, не optional<Data>, а variant<none_t,Data,Data&> ? Ну в общем, стоит покумекать.
Перекуём баги на фичи!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.