|
|
1
48
不。
无论这篇论文会带来什么变化,都很小
at this point
,它不能改变非模板函数定义只键入一次的事实。此外,如果你提出的代码是合法的,我们大概可以找到一种方法来声明一个类型的变量
本文还指出,在一个例子中,参数不应被视为核心常数表达式;
简而言之,由于可能存在类型差异,函数参数永远不会是常量表达式。 |
|
2
36
不,这仍然是不明智的。虽然
示例中的细微变化可能会使这一点更加明显:
如果这是有效的,
这可能看起来有点不直观。毕竟,如果产生的论点
当然有
C++20为我们提供了类类型作为非类型模板参数,因此我们实际上可以对比以前更多的类型执行此操作。但是仍然有很多类型可以用作即时函数的参数,而不能用作模板参数,因此这并不总是有效的(例如。
|
|
|
3
9
这在C++20中似乎是不合法的。@Barry和@Columbo的回答中已经给出了一个很好的解释,说明为什么支持这一点会有问题(它实际上不适用于类型系统)。我只会添加我认为是标准中的相关引用,这些引用实际上使这成为非法。
转换后的常量表达式是隐式转换为特定类型的常量表达式 [expr.const]/7 (此处为模板参数的类型)。所以,你的问题归结为一个问题,即一个consteval函数内的变量是否是一个常量表达式。基于 [expr.const]/8
表达
所讨论的对象既不是静态存储持续时间,也不是临时对象… |
|
AstralHex · 矩阵乘法代码工作不正常 11 月前 |
|
|
Giogre · 为包含许多数值字段的简单“struct”重载比较运算符 11 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 11 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 11 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 11 月前 |