Vit*_*meo 15 c++ offsetof language-lawyer c++17
C++ 17标准说:
有条件地支持
offsetof使用非标准布局类的宏.
有条件地支持
程序构造不需要实现支持
我觉得这个定义offsetof不太精确.
这是否意味着我可以安全地尝试在非标准布局类中使用它?
"条件支持"与实现定义有何不同?
编译器是否不支持offsetof生成诊断所需的特定类型的类?
Sto*_*ica 12
这是否意味着我可以安全地尝试在非标准布局类中使用它?
如果实施允许.有条件支持意味着必须记录.
"条件支持"与实现定义有何不同?
引用此标准:
[defns.cond.supp]有条件支持 - "程序构造,不需要实现支持"
[defns.impl.defined]实现定义的行为 - "行为,对于格式良好的程序构造和正确的数据,取决于实现和每个实现文档"
关键的区别在于实施的选择.完全按照标准说的那样做,或者根本不做.比.在没有拒绝选项的情况下以多种方式之一进行.
编译器是否不支持
offsetof生成诊断所需的特定类型的类?
如果它是一个符合要求的实现,它将发出诊断([intro.compliance] /2.2由@TC提供):
"如果程序包含违反任何可诊断规则或在本文档中描述为"有条件支持"的构造,当实现不支持该构造时,符合要求的实现应至少发出一条诊断消息.
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |