59
задан 4 October 2019 в 20:18

2 ответа

Используя

auto __begin = begin_expr, __end = end_expr;

требует и begin_expr и end_expr возвращать тот же тип. Это означает, что у Вас не может быть типа итератора сигнальной метки, который отличается от начинающегося типа. Используя

auto __begin = begin_expr ;
auto __end = end_expr ;

устраняет ту проблему при оказывании полным назад совместимость с C++ 14.

80
ответ дан 1 November 2019 в 12:10

Это объяснено позже в "примечаниях":

С C++ 17, типы begin_expr и end_expr не должны быть тем же...

и у Вас не может быть этого с:

auto __begin = begin_expr, __end = end_expr;
31
ответ дан 1 November 2019 в 12:10

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

Похожие вопросы: