noexcept-expression: noexcept ( expression )
The result of the noexcept operator is a constant of type bool and is an rvalue.
The result of the noexcept operator is false if in a potentially-evaluated context the expression would contain
a potentially evaluated call80 to a function, member function, function pointer, or member function pointer that does not have a non-throwing exception-specification ([except.spec]), unless the call is a constant expression ([expr.const]),
a potentially evaluated dynamic_cast expression dynamic_cast<T>(v), where T is a reference type, that requires a run-time check ([expr.dynamic.cast]), or