C++中的const double表达式

 乾岳_349 发布于 2023-02-13 09:57

在C++ 11的英文维基百科页面中,我们可以读到:

在C++ 11之前,仅当变量声明为const,初始化程序是常量表达式并且是整数或枚举类型时,变量的值才能用于常量表达式.如果使用constexpr关键字定义变量,则 C++ 11 将删除变量必须为整数或枚举类型的限制:

 constexpr double earth_gravitational_acceleration = 9.8;
 constexpr double moon_gravitational_acceleration = earth_gravitational_acceleration / 6.0;

这是什么意思?特别是,它是否意味着:

const double earth_gravitational_acceleration = 9.8;
const double moon_gravitational_acceleration = earth_gravitational_acceleration / 6.0;

在C++ 11之前的C++中是非法的?G ++与此完全OK,即使有-ansi,-pedantic等...

谢谢!

1 个回答
  • 你的第二个例子完全不违法.它不是编译时常量.可能在运行时计算这些值.

    2023-02-13 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有