В следующем коде я думал, что утверждение не должно срабатывать, но оно срабатывает.
struct A
{
~A() noexcept(false);
};
A f() noexcept;
int main()
{
static_assert(noexcept(f()), "f must be noexcept");
}
Функция f()
не является очевидной, но noexcept(f())
оценивается как ложная. (как в gcc, так и в clang)
Я что-то упустил или это баг?