Сообщение Re: Трюки с fold expression от 09.06.2020 13:02
Изменено 09.06.2020 13:09 rg45
Re: Трюки с fold expression
Здравствуйте, _NN_, Вы писали:
_NN>Полезный набор
_NN>https://foonathan.net/2020/05/fold-tricks/
_NN>Например
_NN>
_NN>==>
_NN>
Пардон, но это же жульничество. Если ts — это variadic pack, то не скомпилируется первый вариант, а если нет, то второй. Ну либо я недопонял глубины иносказательности.
P.S. А все остальное, что есть по ссылке — какая-то банальщина.
_NN>Полезный набор
_NN>https://foonathan.net/2020/05/fold-tricks/
_NN>Например
_NN>
_NN>for (auto elem : ts)
_NN>{
_NN> if (pred(elem))
_NN> return elem;
_NN>}
_NN>
_NN>==>
_NN>
_NN>std::common_type_t<decltype(ts)...> result;
_NN>bool found = ((pred(ts) ? (result = ts, true) : false) || ...);
_NN>// expands to: (pred(ts[0]) ? (result = ts[0], true) : false)
_NN>// || (pred(ts[1]) ? (result = ts[1], true) : false)
_NN>// || ...
_NN>
Пардон, но это же жульничество. Если ts — это variadic pack, то не скомпилируется первый вариант, а если нет, то второй. Ну либо я недопонял глубины иносказательности.
P.S. А все остальное, что есть по ссылке — какая-то банальщина.
Re: Трюки с fold expression
Здравствуйте, _NN_, Вы писали:
_NN>Полезный набор
_NN>https://foonathan.net/2020/05/fold-tricks/
_NN>Например
_NN>
_NN>==>
_NN>
Пардон, но это же жульничество. Если ts — это variadic pack, то не скомпилируется первый вариант, а если нет, то второй. Эти варианты НЕ взаимозаменяемы. Ну либо я недопонял глубины иносказательности.
P.S. А все остальное, что есть по ссылке — какая-то банальщина.
_NN>Полезный набор
_NN>https://foonathan.net/2020/05/fold-tricks/
_NN>Например
_NN>
_NN>for (auto elem : ts)
_NN>{
_NN> if (pred(elem))
_NN> return elem;
_NN>}
_NN>
_NN>==>
_NN>
_NN>std::common_type_t<decltype(ts)...> result;
_NN>bool found = ((pred(ts) ? (result = ts, true) : false) || ...);
_NN>// expands to: (pred(ts[0]) ? (result = ts[0], true) : false)
_NN>// || (pred(ts[1]) ? (result = ts[1], true) : false)
_NN>// || ...
_NN>
Пардон, но это же жульничество. Если ts — это variadic pack, то не скомпилируется первый вариант, а если нет, то второй. Эти варианты НЕ взаимозаменяемы. Ну либо я недопонял глубины иносказательности.
P.S. А все остальное, что есть по ссылке — какая-то банальщина.