相关疑难解决方法(0)

什么是具有静态存储持续时间的临时对象

灵感来自这个答案,来自[expr.const]

常量表达式是glvalue核心常量表达式,它指的是一个实体,它是常量表达式的允许结果(如下所定义),或者是一个prvalue核心常量表达式,其值满足以下约束:

  • 如果值是类类型的对象,则引用类型的每个非静态数据成员引用一个实体,该实体是常量表达式的允许结果,

  • 如果值是指针类型,则它包含具有静态存储持续时间的对象的地址,超过此类对象末尾的地址([expr.add]),函数的地址或空指针值,以及

  • 如果值是类或数组类型的对象,则每个子对象都满足这些值的约束.

如果实体是具有静态存储持续时间对象,则该实体是常量表达式的允许结果,该对象不是临时对象,或者是其值满足上述约束的临时对象,或者它是函数.

什么是具有静态存储持续时间的临时对象?我是否遗漏了某些东西,或者说对象是暂时的并且具有静态存储持续时间是矛盾的吗?

来自[basic.stc.static]的定义

所有没有动态存储持续时间,没有线程存储持续时间且不是本地的变量都具有静态存储持续时间.这些实体的存储应持续该计划的持续时间

仅适用于变量.

c++ language-lawyer

13
推荐指数
1
解决办法
546
查看次数

标签 统计

c++ ×1

language-lawyer ×1