首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否应在` `alignas(X)`之前使用主表达式?

是否应在` `alignas(X)`之前使用主表达式?
EN

Stack Overflow用户
提问于 2017-03-15 12:29:05
回答 2查看 466关注 0票数 0

我想测试一下alignas()的用法,所以我写下了这些代码:

代码语言:javascript
复制
#include <vector>

using namespace std;

template<typename X> 
void user(const vector<X>& vx)
{
    constexpr int bufmax = 1024;
    alignas(X) buffer[bufmax];

    const int max = min(vx.size(), bufmax / sizeof(X));
    uninitialized_copy(vx.begin(), vx.begin()+max, buffer);
}

然而,当我用g++编译它时,编译器输出了一个错误:“alignas(X)之前期望的主表达式”。谁能解释这一点?我不知道alignas()的确切用法。

EN

回答 2

Stack Overflow用户

发布于 2017-03-15 12:53:43

alignas(X)是一个对齐说明符,应用于类型。您的错误发生是因为您没有在此处指定类型。

从其余代码可以看出,您可能需要创建字符的对齐缓冲区:alignas(X) char buffer[bufmax];

票数 0
EN

Stack Overflow用户

发布于 2017-12-26 21:15:51

将以下数据类型添加到代码中

代码语言:javascript
复制
char alignas(X) buffer[bufmax];

alignas(X) char buffer[bufmax];

我在读这本书的时候也碰到了同样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42801118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档