问题标签 [constant-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
41701 浏览

c++ - C++ 预期的常量表达式

这个程序在我声明 float x[size][2] 的行上给了我预期的常量表达式错误。为什么?

0 投票
4 回答
452 浏览

c++ - 用常量创建数组

expected constant expression我正在使用 gcc 编译器在 Linux 上的 Netbeans 中开发一个程序,当在 Windows 7 上切换到 Visual C++ 时,代码无法编译,因为 Visual C++在几行上说它。在 Netbeans 上,我只是做了类似的事情char name[fullName.size()];,而在 Visual C++ 上,我尝试了,除其他外,

如何创建用于数组的常量?

注意:我知道这个问题,但是有什么方法可以在不使用向量的情况下使其工作,因为这需要重写程序的许多部分?

0 投票
3 回答
215 浏览

c++ - 带有自定义对象的常量表达式

我正在尝试使用自定义类的瞬间作为模板参数。

编译器指出x不能出现在常量表达式中。为什么?在编译时构造该对象所需的一切。

0 投票
1 回答
1207 浏览

scala - 我可以在 Scala 中将负值作为常量表达式吗?

我有一个返回双精度值的 Java 注释:

当我尝试将注释附加到 scala 类中的字段并且值为负值时,如下所示:

我收到一条编译器错误消息:“注释参数需要是一个常量;找到:0.05.unary_-”。我知道我需要一个数字文字,并且我查看了 Scala 语言规范,似乎 - 符号仅用于指数而不用于尾数。有人知道如何使用注释将负值作为运行时信息吗?

谢谢,克林克

0 投票
6 回答
15274 浏览

c - 在 C 中是和不是“常量表达式”的示例?

即使经过多次谷歌搜索,我对什么是 C 中的常量表达式和不是 C 中的常量表达式有点困惑。您能否提供一个示例,说明哪些是 C 中的常量表达式,哪些不是?

0 投票
3 回答
838 浏览

java - Java 编译器会预先计算文字的总和吗?

是不是编译器会处理这段代码,加上10 + 20,字节码和这行代码一样?

我在哪里可以读到它?

0 投票
1 回答
1418 浏览

iphone - 比较 switch 语句中的 ALAssetGroupType

嗨,我打电话给 ALAssetsLibrary

然后在枚举块内我想比较返回的组类型并将其添加到相关数组中。我努力了

初始日志跟踪“组 ALAssetsGroup - 名称:照片库,类型:相册,资产计数:177”

下一个日志是“资产类型 2”

但第三个日志永远不会被调用。

任何想法我做错了什么?

0 投票
2 回答
221 浏览

c++ - msdn 页面“C++ 常量表达式”的错字?

它在c++ 常量表达式的 msdn 页面上说:

非整数常量必须(显式或隐式)转换为整数类型才能在常量表达式中合法。因此,以下代码是合法的:

至少在 VC++ 10.0 中,第二行会产生:“错误 C2057:预期的常量表达式”。那么它在其他一些编译器上是合法的,还是 msdn 页面完全错误?

0 投票
7 回答
97821 浏览

c++ - 错误:开关量不是整数

我已经通过 StackOverflow 和多谷歌链接研究了我的问题,但我仍然感到困惑。我认为对我来说最好的事情是问...

我正在创建一个简单的命令行计算器。到目前为止,这是我的代码:

我得到的错误是:

强大的互联网,它说允许在 switch 语句中使用字符串。

谢谢大家,我很感激你的帮助。

0 投票
2 回答
2008 浏览

c - 什么构成 C 中的常量表达式的详细信息?

C 定义了至少 3 个级别的“常量表达式”:

  • 常量表达式(不合格)
  • 算术常数表达式
  • 整数常量表达式

6.6 第 3 段内容如下:

常量表达式不应包含赋值、递增、递减、函数调用或逗号运算符,除非它们包含在未计算的子表达式中。

那么这是否意味着1,2不是一个常量表达式?

第 8 段内容如下:

算术常量表达式应具有算术类型,并且只能具有整数常量、浮动常量、枚举常量、字符常量和 sizeof 表达式的操作数。算术常量表达式中的强制转换运算符只能将算术类型转换为算术类型,但作为结果为整数常量的 sizeof 运算符的操作数的一部分除外。

中的操作数是(union { uint32_t i; float f; }){ 1 }.f什么?如果1是操作数,那么这可能是一个算术常量表达式,但如果{ 1 }是操作数,那么显然不是。

编辑:另一个有趣的观察:7.17 第 3 段要求结果是offsetoftype 的整数常量表达式size_t,但offsetof据我所知,标准的实现不需要是标准的整数常量表达式。这当然没问题,因为允许实现(根据 6.6 第 10 段)接受其他形式的常量表达式,或者实现offsetof__builtin_offsetof而不是通过指针减法。然而,这个观察的本质是,如果你想offsetof在需要整数常量表达式的上下文中使用,你真的需要使用实现提供的宏,而不是自己滚动。