霍天青
2015-06-15 12:39
采纳率: 63%
浏览 4.0k

constexpr存在的意义是是什么?

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • oyljerry 2015-06-15 12:46

    以前只有const常量变量,而constexpr是可以定义常量表达式,可以编译时计算常量表达式。

    点赞 打赏 评论
  • 知常曰明 2015-06-15 12:55
    点赞 打赏 评论
  • Exrl 2015-06-16 09:16

    比如
    int sth(){
    return 4;
    }
    const int n=sth();
    本来这样的代码是不能通过编译的,因为编译器无法确定sth()得到的是不是常量,但改为
    constexpr int sth(){
    return 4;
    }之后,由于明确指出了函数的返回值是常量,于是编译器就找到信心了。
    这样做的目的我觉得是加强安全性和可靠性吧

    点赞 打赏 评论
  • zhangweilst 2015-06-19 04:30

    还没听过constexpr,学习了。。

    点赞 打赏 评论

相关推荐 更多相似问题