gpt4 book ai didi

c++ - 英特尔编译器 - 错误 : identifier "alignof" is undefined

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:22 24 4
gpt4 key购买 nike

我正在尝试运行 alignof 运算符的示例。

#include <iostream>

struct Empty {};

struct Foo {
int f2;
float f1;
char c;
};

int main()
{
std::cout << "alignment of empty class: " << alignof(Empty) << '\n'
<< "alignment of pointer : " << alignof(int*) << '\n'
<< "alignment of char : " << alignof(char) << '\n'
<< "alignment of Foo : " << alignof(Foo) << '\n' ;
}

当我用 gcc (g++ -std=c++11 alignof.cpp) 编译它时,我没有得到任何错误。但是当我用 icc (icpc -std=c++11 alignof.cpp) 编译它时,我得到以下错误,我不知道为什么:

cenas.cpp(13): error: type name is not allowed
std::cout << "alignment of empty class: " << alignof(Empty) << '\n'
^

cenas.cpp(13): error: identifier "alignof" is undefined
std::cout << "alignment of empty class: " << alignof(Empty) << '\n'
^

cenas.cpp(14): error: type name is not allowed
<< "alignment of pointer : " << alignof(int*) << '\n'
^

cenas.cpp(14): error: expected an expression
<< "alignment of pointer : " << alignof(int*) << '\n'
^

cenas.cpp(15): error: type name is not allowed
<< "alignment of char : " << alignof(char) << '\n'
^

cenas.cpp(16): error: type name is not allowed
<< "alignment of Foo : " << alignof(Foo) << '\n' ;

我在同一台机器上运行代码,并使用 module 命令更改编译器。alignof 运算符怎么可能未定义?

最佳答案

不同的编译器对 2011 年引入的新语言特性有不同的支持。

根据 this table , Intel 的编译器还不支持alignof

关于c++ - 英特尔编译器 - 错误 : identifier "alignof" is undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com