Page 1 of 1

Überprüfen Sie NOExceptness beim Anwenden der Funktion auf ein Paket

Posted: 02 Mar 2025, 15:12
by Anonymous
Ich habe die folgende C ++ 26-Funktion, die einen Code für jedes Feld einer Struktur ausführt: < /p>

Code: Select all

template 
constexpr auto for_each_field(S&& s, F&& f)
{
auto&& [... elts] = static_cast(s);
((static_cast(f)(std::forward_like(elts))), ...);
}
< /code>
Ich möchte noexcept bedingt aktivieren, basierend darauf, ob f selbst eine Ausnahme auswerfen kann. Der "theoretische" Code müsste irgendwie wie < /p>
 aussehentemplate 
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))), ...);
}
Aber das ist natürlich nicht möglich.>