开发者社区 问答 正文

constexpr存在的意义是是什么?

书上这样说:
1.c++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。
2.一般来说,如果你认为变量是一个常量表达式,那就把它声明为constexpr类型。
没看懂这些话,没理解constexpr到底有什么作用,求解。

展开
收起
a123456678 2016-03-23 11:29:54 5174 分享 版权
1 条回答
写回答
取消 提交回答
  • 比如
    int sth(){
    return 4;
    }
    const int n=sth();
    本来这样的代码是不能通过编译的,因为编译器无法确定sth()得到的是不是常量,但改为
    constexpr int sth(){
    return 4;
    }之后,由于明确指出了函数的返回值是常量,于是编译器就找到信心了。
    这样做的目的我觉得是加强安全性和可靠性吧

    2019-07-17 19:10:38
    赞同 展开评论
问答分类:
问答地址: