Is a std::string_view
parameter better than a const char*
one in the code below?
void func( const std::string_view str )
{
std::istringstream iss( str.data( ) ); // str is passed to the ctor of istringstream
std::size_t pos { };
int num { std::stoi( str.data( ), &pos, 10 ) }; // and here it's passed to std::stoi
}
int main()
{
std::array<char, 20> buffer { };
std::cin.getline( buffer.data( ), 20 );
func( buffer.data( ) );
}
Both std::istringstream
ctor and std::stoi
require a const std::string&
as their parameter. But I pass them a std::string_view
object using its data()
member function. Is this bad practice? Should I revert back to const char*
?