我正在尝试学习C++17的新特性/花招,但是当我遇到std::byte时,由于某种未知的原因,我似乎无法编译甚至最基本的“hello world”类型的程序。
整个程序:
#include <cstddef>
int main(int argc, char* argv[])
{
std::byte byte;
return 0;
}
编译命令:
g++ ./main.cpp
但输出总是:
./main.cpp: In function ‘int main(int, char**)’:
./main.cpp:4:10: error: ‘byte’ is not a member of ‘std’
std::byte byte;
我在Ubuntu 18.04上使用gcc 7.4.0进行工作。我已经检查了"/usr/include/c++/7.4.0/",头文件cstddef在那里,并且byte似乎被定义了。
我还尝试使用clang:
clang++ ./main.cpp
但结果是一样的。在这一点上,我只能认为cstddef被损坏/有bug了。有没有什么解决办法?
g++ -std=c++17 ./main.cpp
了吗? - πάντα ῥεῖ