Проверка неэкспрессии при применении функции к упаковке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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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