Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error: 'string_view' is not a member of 'std'

i am new to c++. i compiled my code in visual-studio-code in windows10, with 2 variables of type string and string_view. string variable is fine, but string_view is giving errors.I also enable c++17 extension in configuration.json and edit configuration/ui file in vscode.

Here is my code:=

#include<iostream>
#include<string_view>
using namespace std;
int main(){
      string str="hello";
      cout<<str<<endl;
      std::string_view sv=" world";
      auto result=str+sv.data();

      return 0;
}

errors are:=

main.cpp: In function 'int main()':
main.cpp:7:12: error: 'string_view' is not a member of 'std'
       std::string_view sv=" world";
            ^~~~~~~~~~~
main.cpp:7:12: note: 'std::string_view' is only available from C++17 onwards
main.cpp:8:23: error: 'sv' was not declared in this scope
       auto result=str+sv.data();
                       ^~
like image 383
Abhi38 Avatar asked Oct 04 '19 04:10

Abhi38


2 Answers

I didn't find any bug in your code. I compiled your code here (Copy your code there and select the language C++17 before compiling) and it is working as expected. Just check the compiler which you are running supports C++17 features. Because std::string_view is only available from C++17 onwards. To enable C++17 in Visual studio check here and in Visual studio code follow this .

Hope this will help you.

like image 127
Saurav Rai Avatar answered Oct 11 '22 08:10

Saurav Rai


I'm using gcc compiler for visual studio code. In C++17, gcc has made some changed, including integrating string_view and string together. I think that it seem more complicated now,as string will implicitly convert to string_view, in some case.

For more detail:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf

like image 21
Crazy shiba Avatar answered Oct 11 '22 09:10

Crazy shiba