c++编译错误C2971:"std::array":array_size:包含非静态存储不能用作废类型参数;参见“std::array”的声明
在Qt5中这段代码编写有两种方式:一个编译成功,一个失败
成功版本:
static constexpr size_t block_size = 0x2000;//8KB
static constexpr size_t array_size = block_size/sizeof(uint32_t);
alignas(32) std::array<uint32_t,array_size> wr_data;
alignas(32) std::array<uint32_t,array_size> rd_data = {{0}};
std::iota(std::begin(wr_data),std::end(wr_data),0);
失败版本:
size_t block_size = 0x2000;//8KB
size_t array_size = block_size/sizeof(uint32_t);
alignas(32) std::array<uint32_t,array_size> wr_data;
alignas(32) std::array<uint32_t,array_size> rd_data = {{0}};
std::iota(std::begin(wr_data),std::end(wr_data),0);
===============================================================
因为array对象的长度固定,使用栈,根据array对象的创建语法:
array<typename,n_elem> arr;n_elem是常量,所以失败版本size_t array_size = block_size/sizeof(uint32_t);语句中array_size是变量,便不能
通过编译器语法编译规则,加上static constexpr表示静态常量
c++编译错误C2971:"std::array":array_size:包含非静态存储不能用作废类型参数;参见“std::array”的声明的更多相关文章
- xcode 编译错误的 之 头文件 包含成.m了
duplicate symbol _OBJC_CLASS_$_AutoTableViewViewController in: /Users/apple/Library/Developer/Xcode/ ...
- (转载)SAPI 包含sphelper.h编译错误解决方案
[转]SAPI 包含sphelper.h编译错误解决方案 在使用Microsoft Speech SDK 5.1开发语音识别程序时,包含了头文件“sphelper.h”和库文件“sapi.lib”.编 ...
- SAPI 包含sphelper.h编译错误解决方案
原文连接地址:http://blog.csdn.net/believenow_notfuture/article/details/52191229 [转]SAPI 包含sphelper.h编译错误解决 ...
- silverlight generic.xaml 包含中文 编译错误的问题
发现我在一个dll工程里面新建一个xaml文件起名成generic.xaml 如果这个xaml里面存在中文则会编译错误,发现这样建立的xaml使用的是gb2312编码 果断文件-另存为-编码另存为 u ...
- C语言编译错误:Variably modified array at file scope
今天在编译一段C源程序时,遇到编译错误提示 error: variably modified 'data' at file scope.原因在于代码头部有这样几行: +; int data[maxsi ...
- c++模板函数声明定义分离编译错误详解
今天看到accelerated c++上有个简单的vector容器的实现Vec,就再vs2008上编译了下: ///// Vec.h #ifndef GUARD_VEC_H #define GUARD ...
- C++编译错误cannot have cv-qualifier
C++编译错误cannot have cv-qualifier 在C++中CV指const和volatile两个关键字.有两种情况不能使用CV限定. 一.非成员函数不能含有CV限定,即const和vo ...
- Android编译错误——undefined reference to
[错误描述] 未定义引用 提示如下:bootable/recovery/minzip/Zip.c:1122: error: undefined reference to 'selabel_lookup ...
- c++中,保证头文件只被编译一次,避免多重包含的方法
保证头文件只被编译一次 #pragma once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次. #pragma once是编译器相关的,有的编译器支 ...
随机推荐
- java hashmap的一些分析记录
最近朋友去面试被问了些hashmap相关的问题,hashmap的初始容量啊,什么操作最耗时等,之前看过hashmap的源码,正好这里也在总结下. 主要围绕下面几个点: HashMap是由数组+链表(j ...
- Linux安装网易云音乐
⒈下载最新版网易云音乐安装包 http://d1.music.126.net/dmusic/netease-cloud-music_1.2.0_amd64_ubuntu_20190424_1.deb ...
- MySQL1:客户端/服务器架构
一.MySQL的客户端/服务器架构 前言 之前对MySQL的认知只限于会写些SQL,本篇算是笔记,记录和整理下自己对MySQL不熟悉的地方. 大致逻辑: MySQL的服务器程序直接和我们存储的数据打交 ...
- linux 清空catalina.out日志 不需要重启tomcat(五种方法)【转】
1.重定向方法清空文件 [root@localhost logs]# du -h catalina.out 查看文件大小17M catalina.out[root@localhost logs] ...
- Django-F,Q查询,Templatetags,session,中间件
内容总览1.ORM的多对多的使用 1>语法与实例 2>聚合与分组 3>F与Q查询 4>事务2.模板之自定义 1>初始化 2>filter 3>si ...
- spring mybatis mysql 事务不起作用
之前框架事务应该是好的,不过这次做了些修改,不知如何竟然不好用了,整理了好半天,java框架配置就是吓人,有一点不熟悉的就可能暴露问题,好处是又深入的了解了配置原理. 开始以为是mysql不支持事务的 ...
- JUC--ConcurrentHashMap
HashMap HashTable HashTable锁住整个表 会存在复合操作上的问题“若不存则添加” “若存在则删除” 也是不安全的 效率低 ConcurrentHashMap:采用锁分段机制 ...
- ActiveMQ与spring整合
第一步:引用相关的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId&g ...
- Oracle中的substr()函数 详解及应用
注:本文来源于<Oracle中的substr()函数 详解及应用> 1)substr函数格式 (俗称:字符截取函数) 格式1: substr(string string, int a, ...
- call(),apply()和bind()的区别
javascript中的每一个Function对象都有一个apply()和一个call()方法,它们的语法分别是: /*apply()方法*/ function.apply(thisObj[, arg ...