如果我有一个 constexpr
函数,是否应该同时进行运行时验证和编译时验证?
如果只有编译时检查static_assert
,那么该函数将不会被包含在任何代码覆盖率统计中。但是,如果只有运行时检查,则无法验证该函数是否在 constexpr
上下文中实际工作。
简而言之,问题是是否需要运行时单元测试 和 static_assert
来测试同一事物。
最佳答案
答案已经存在
https://codereview.stackexchange.com/questions/195282/constexpr-unit-tests-and-asserts
// assertion checking failure
inline constexpr auto your_assert_data(bool isOkay, std::string_view message)
{
if (!isOkay)
throw std::logic_error{message};
}
根据你的问题,你没有尝试过任何东西 所以也看看这个
https://blog.trailofbits.com/2019/06/27/use-constexpr-for-faster-smaller-and-safer-code/
关于c++ - 如何正确地对 constexpr 函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180520/