Próbuję skompilować kod przy użyciu składni tylko C++ 11 w Kliencie JetBrains, więc chcę wyłączyć tryb C++ 98. Postępowałem zgodnie z instrukcjami zgodnymi z this StackOverflow question, ale nie mogę go uruchomić.Klawisz CLION wyłącza tryb C++ 98 na rzecz C++ 11
Aby osiągnąć ten cel, udałem się do ALT + SHIFT + F10 i przekazałem argument -std=c++11
w Argumenty programowe.
Po ponownym zbudowaniu tryb C++ 98 nadal wydaje się być włączony.
/cygdrive/c/Users/Zarthus/Documents/test/command.cpp: In constructor 'Command::Command(std::vector<std::basic_string<char> >)':
/cygdrive/c/Users/Zarthus/Documents/test/command.cpp:25:32: error: range-based 'for' loops are not allowed in C++98 mode
for (std::string command : commands)
^
w kodzie
Command::Command(std::vector<std::string> cmds)
{
for (std::string command : cmds)
{
addCommand(command);
}
}
Chociaż jestem prawie pewien, że problem nie leży w moim kodzie (IdeoneC++11 kontra IdeoneC++98 (4.8.1))
Obrazek: CLion Interface
co ja wyobraź sobie łańcuch kompilacji (na komentarze):
C:\cygwin64\bin\cmake.exe --build C:\Users\Zarthus\.clion10\system\cmake\generated\6dd8bed\6dd8bed\Debug --target testProject -- -j 4
Wygląda na to, że nie zawiera mojej zawartości.
Nie mam dużego doświadczenia z innymi IDE JetBrains, ale z tego, co mogłem powiedzieć, są one w większości takie same.
Czy ktoś jest w stanie to odtworzyć? Czy powinienem wysłać opinię do JetBrains, że to może nie działać w 100% (nadal jest to kompilacja wczesnego wydania)? Czy mogę po prostu spartaczyć i czy jest tu błąd użytkownika?
Dzięki!
Nigdy nie używałeś CLion, ale czy istnieje sposób sprawdzenia, co właściwie robi kompilator g ++, tj. Tryb "gadatliwy"? W ten sposób można sprawdzić, czy argumenty są zbierane, ale ignorowane, nigdy nie są pobierane itp. – PaulMcKenzie
@PaulMcKenzie Dodałem ciąg C: \ cygwin64 \ bin \ cmake.exe - nie jestem pewien, czy to jest dokładnie to, co Ty szukam, ale to najlepsze, co mogłem znaleźć. Jeśli chodzi o dodatkowe informacje debugowania - nie mogłem znaleźć takiej opcji. – Zarthus
IDE zwykle ma okno lub niektóre środki, dzięki czemu można zobaczyć cały ciąg wiersza polecenia, którego używa kompilator. W przeciwnym razie kompilujesz na ślepo. 'Cmake' używa pliku, a wewnątrz tego pliku znajduje się ciąg poleceń używany przez kompilator. Zasadniczo, musisz znaleźć dokładny ciąg poleceń używany przez kompilator, a następnie pracować z tego miejsca. – PaulMcKenzie