Ant*_*hov 2 c++ unit-testing cmake noexcept c++17
我有几种方法
noexceptnoexcept如何编写单元测试以检查noexcept正确标记的方法?
原因:确保将来在其他开发人员或本人的邪恶版本重构期间不会更改这些属性。
当前,我使用CMake / CTest并将手写的可执行文件添加到测试套件中。
noexcept也是运算符。您可以在静态断言中使用它:
void foo() noexcept { }
void bar() { }
static_assert(noexcept(foo())); // OK
static_assert(noexcept(bar())); // Will fail
Run Code Online (Sandbox Code Playgroud)
如果它是成员函数,则:
struct S {
void foo() noexcept { }
};
static_assert(noexcept(S().foo()));
Run Code Online (Sandbox Code Playgroud)
没有函数调用或执行任何操作。该noexcept操作仅检查表达式,它实际上并没有进行评估。
要要求一定不要noexcept使用某个功能,只需使用即可!noexcept(bar())。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |