Код: Выделить всё
template
constexpr auto for_each_field(S&& s, F&& f)
{
auto&& [... elts] = static_cast(s);
((static_cast(f)(std::forward_like(elts))), ...);
}
< /code>
Я хотел бы включить noexcept условное условное значение, основываясь на том, может ли F само по себе исключение. «Теоретический» код должен был бы как-то выглядеть как < /p>
template
constexpr auto for_each_field(S&& s, F&& f) noexcept(noexcept(
auto&& [... elts] = static_cast(s);
((static_cast(f)(std::forward_like(elts))), ...);
))
{
auto&& [... elts] = static_cast(s);
((static_cast(f)(std::forward_like(elts))), ...);
}
Таким образом, есть ли простые варианты для достижения этого в текущем состоянии C ++ 26?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... -to-a-pack
Мобильная версия