c – 为什么这不是constexpr?
#include <iostream> union gc_bits { size_t value; struct { size_t arena : 2; } bits; constexpr gc_bits(size_t value_) : value(value_) { } }; static constexpr size_t get_max_arenas() { return gc_bits(~0ULL).bits.arena; } size_t current_colour[get_max_arenas()]; // error int main() { std::cout << get_max_arenas() << std::endl; } 数组声明错误,因为get_max_arenas不是constexpr.我不清楚为什么会这样. 解决方法
稍微改写一下你的程序:
static constexpr auto gma = get_max_arenas(); size_t current_colour[gma]; // error 给出了Clang错误:
您收到此错误的原因是构造函数设置了值,然后您尝试读取位.正如@gurka所评论的那样,这是不允许的. Standard报价:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 编译VB.NET代码时“…名称空间不明确……”错误
- c – [](int * p){delete p;}是什么意思?
- 多种方法中的Ruby救援异常
- JSF f:事件preRenderView是由f:ajax调用和部分渲染触发的
- GForge Community Edition 自动完全备份脚本
- ruby-on-rails – AWS Elastic Beanstalk,Rails,Carrierwav
- c# – 关于标签而不是使用TABLE的文档?
- XML(6)自己写一个xml序列化器
- c – 为什么我的包装器setenv()不能正常工作?
- ruby-on-rails – Rails select_tag onchange ajax请求