如何创建 noexcept 函数指针
How do I create a noexcept function pointer?
>我想创建一个这样的函数指针:
void(*function_pointer)()noexcept;
但是,这行不通。函数声明中的异常说明符似乎无效。不过,必须有一种方法可以做到这一点。右?
这与一个与此不同的问题有关。在这里,我问的是如何使用 noexcept 说明符创建函数指针。这个问题"noexcept 函数类型定义中的说明符"中没有提出或回答。
[except.spec]/2:
异常规范应仅出现在函数声明符上 对于函数类型,指向函数类型的指针,对函数的引用 类型,或指向顶级类型的成员函数类型的指针 声明或定义,或在此类类型上显示为 函数声明符中的参数或返回类型。
所以你的声明确实格式很好,Clang编译了它。
大概您的编译器不是最新的。
相关文章:
- NOEXCEPT 函数调用运算符的说明符_Not_fn
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 如何为C++函数指定 noexcept ?
- 如何知道函数何时抛出以及何时使用noexcept
- `noexcept`函数中的std :: terminate`调用函数有限-GCC vs clang codegen
- 为什么 std::map 的移动构造函数不是 noexcept?
- gmock - 如何使用 noexcept 说明符模拟函数
- 无法专用化函数模板'unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr>)'
- 查找所有移动构造函数和移动赋值运算符(特别是那些没有"noexcept"的运算符)
- 为什么noexcept move构造函数在向量重新分配期间没有被调用
- MSVC 2017中STL容器的移动构造函数未标记为NOExcept
- 在调用C函数的非抛出内联函数上添加noexcept
- 对于具有抛出复制构造函数和noexcept-by-value复制赋值的类,is_nothrow_copy_assigna
- 捕获其中所有异常的C++函数是否"noexcept"?
- 是否可以引入 noreturn noexcept 函数而不是调用 std::terminate
- 从 noexcept 函数参数的构造函数引发的异常会立即导致对 std::terminate() 的调用吗?
- 如何为 noexcept 函数指针创建别名
- 如何创建 noexcept 函数指针
- 如何检测模板参数是否为noexcept函数
- noexcept函数还能调用c++ 17中抛出的函数吗?