apm*_*ney 10 c++ constexpr c++17 stdoptional
我正在审查C++ - 17 std::optional类模板的接口,并注意到reset和assignment来自nullopt未标记为constexpr.
这是疏忽还是有理由说这个操作不能标记为constexpr?
有一个原因,那就是[expr.const]以前禁止的:
赋值表达式或调用赋值运算符([class.copy]),它将改变联合的活动成员;
P1330导致该限制不再存在:在constexpr中更改联合的活动成员,这使得所有这些事情更容易实现(该文章只是删除了我上面引用的要点).
之所以称optional的复制和移动作业(但没有其他任务的)均constexpr是因为他们可以被默认为琐碎的类型.
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |