Проверка неэкспрессии при применении функции к упаковкеC++

Программы на C++. Форум разработчиков
Anonymous
Проверка неэкспрессии при применении функции к упаковке

Сообщение Anonymous »

У меня есть следующая функция C ++ 26, которая запускает некоторый код для каждого поля структуры: < /p>

Код: Выделить всё

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

Вернуться в «C++»