Компиляция кода C ++ 14 с помощью терминала Mac - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь кодировать BST ADT, и спецификация, которую мы дали, требует использования 'auto', который включен только в C ++ 14. Я пытаюсь скомпилировать, но получаю ошибки, что «auto» включено только в C ++ 14, поэтому мне просто интересно, есть ли другой способ компилировать код, чтобы он включал C ++ 14? В каждом предыдущем проекте (за последние три семестра) я смог скомпилировать файл (скажем, с именем main.cpp), просто используя код:

g++ -o main main.cpp

Я пыталсяследующий код компиляции

g++ -std=c++14 -o main main.cpp

, но когда я это делаю, я получаю около 100 ошибок, которые выглядят как

/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:1002:86: error: member reference base type 'std::__1::basic_string::__self_view' (aka 'int') is not a structure or union
              append(const _Tp& __t) { __self_view __sv = __t; return append(__sv.data(), __sv.size()); }

/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:1002:99: error: member reference base type 'std::__1::basic_string::__self_view' (aka 'int') is not a structure or union
              append(const _Tp& __t) { __self_view __sv = __t; return append(__sv.data(), __sv.size()); }

Что они вообще означают?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Я выяснил причины ошибок (оказалось, что они являются шаблонными ошибками), но в итоге компиляция с g++ -std=c++14 -o main main.cpp работает. Я до сих пор не очень разбираюсь в компиляции, поэтому, если кто-то сможет немного объяснить / дать ссылку, я буду признателен

0 голосов
/ 20 октября 2019

(это не ответ, но слишком длинный комментарий)

Откуда вы взяли g++? На большинстве современных установок Mac OS это символическая ссылка для clang++. Что печатает g++ --version?

Конечно, вы используете libc ++, а не libstdc ++. __1 в именах типов - это дешевая распродажа, вместе с путем к <string>.

И сообщением об ошибке ('std::__1::basic_string::__self_view' (aka 'int') тоже странно. basic_string::__self_view это string_view, а неint.

...