Ответ 1
Возможно, вы пропустили важную часть:
Инверсия любой стандартной последовательности преобразования , не содержащей lvalue-to-rvalue, массив-указатель, функция-указатель, нулевой указатель, нулевой указатель на член, логическое значение, или преобразование указателя на функцию, можно выполнить явно, используя static_cast.
В настоящее время преобразование указателя функции включает в себя только преобразование из noexcept
в потенциально выбрасываемый объект. Поскольку вы делаете обратное преобразование указателя на функцию, static_cast
не будет работать, точно так же, как вы не можете static_cast
указатель на массив или любое другое преобразование, перечисленное там.
Так что да, reinterpret_cast
будет уместным, а также подает соответствующие сигналы тревоги, которые должны прийти с отбрасыванием noexcept
.