1. 程式人生 > 實用技巧 >使用-std=c++14和-std=c++17衝突問題

使用-std=c++14和-std=c++17衝突問題

有程式碼如下:

 1 #include <iostream>
 2 #include <string_view>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     std::string_view term_shared_view;
 9     return 0;
10 }
View Code

直接使用g++編譯時:

user@devbox:~$ /toolchain/bin/x86_64-linux-gnu-g++ main.cpp

main.cpp: In function ‘int main()

’:

main.cpp:9:7: error: string_view’ is not a member of ‘std

std::string_view term_shared_view;

^~~~~~~~~~~

main.cpp:9:7: note: std::string_view’ is only available from C++17 onwards

user@devbox:~$

使用g++ -std=c++17編譯時,順利通過:

user@devbox:~$ /toolchain/bin/x86_64-linux-gnu-g++

-std=c++17main.cpp

user@devbox:~$

使用g++ -std=c++17 -std=c++14編譯時,編譯失敗,-std=c++17不生效:

user@devbox:~$ /toolchain/bin/x86_64-linux-gnu-g++-std=c++17 -std=c++14main.cpp

main.cpp:In function ‘int main()’:

main.cpp:9:7:error:string_view’ is not a member of ‘std

std::string_view

term_shared_view;

^~~~~~~~~~~

main.cpp:9:7:note:std::string_view’ is only available from C++17 onwards

user@devbox:~$