std :: byte не является членом 'std' - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь изучить новые функции / уловки c ++ 17, но потом я попал в std :: byte, и по какой-то неизвестной причине я не могу скомпилировать даже самый простой «привет мир»наберите программу с типом.

вся программа:

#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 там, и байт, кажется, определен.

Я также пытался использовать clang:

clang++ ./main.cpp

Но результат был тот же.На данный момент я могу только думать, что cstddef поврежден / прослушивается.Есть ли какие-то решения для этого?

1 Ответ

2 голосов
/ 02 июля 2019

Как указано πάντα ῥεῖ в комментарии, мне не хватало флага компиляции c ++ 17. Правильная команда компиляции:

g++ -std=c++17 ./main.cpp
...