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();
^~
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With