gpt4 book ai didi

c++ - static_assert 负整数

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:32 26 4
gpt4 key购买 nike

#include <iostream>

using namespace std;

template <int fact>
constexpr int pow2T()
{
static_assert(fact < 0, "error");
return fact == 0 ? 1 : pow2T<fact - 1>() * 2;
}

constexpr int e2 = pow2T<2>();

int main(int argc, char *argv[])
{
cout << e2 << endl;

return 0;
}

尝试通过参数静态检查实现x^2 静态计算。断言失败..为什么!?

/home/serj/work/untitled/main.cpp:-1: In function 'constexpr int pow2T() [with int fact = 2]':

/home/serj/work/untitled/main.cpp:-1: In function 'constexpr int pow2T() [with int fact = 1]':

...

最佳答案

static_assert 如果条件为 false 则失败.显然,1 < 02 < 0都是假的。

顺便说一句,这个函数计算2^x , 不是 x^2

关于c++ - static_assert 负整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27820564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com