[英]Expected primary-expression before `alignas(X)`?
我想测试一下alignas()
的使用,所以我写下这些代码:
#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()
的确切用法。
alignas(X)
是一个对齐说明符,应用于类型。 您的错误发生是因为您没有在此处指定类型。
从其余的代码来看,您可能想要创建对齐的字符缓冲区: alignas(X) char buffer[bufmax];
将以下数据类型添加到您的代码中
char alignas(X) buffer[bufmax];
alignas(X) char buffer[bufmax];
我在看书时也遇到了同样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.