# operator<<(std::basic_string_view)

From cppreference.com
< cpp‎ | string‎ | basic string view

Defined in header `<string_view>` |  |
template <class CharT, class Traits> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, std::basic_string_view <CharT, Traits> v); |  | (since C++17)

Behaves as a FormattedOutputFunction. After constructing and checking the sentry object, determines the output format padding as follows:

  a) If `v.size()` is not less than `os.width()`, uses the range `[v.begin(), v.end())` as-is
  b) Otherwise, if (os.flags() & ios_base::adjustfield) == ios_base::left, places `os.width()-v.size()` copies of the `os.fill()` character after the character sequence
  c) Otherwise, places `os.width()-v.size()` copies of the `os.fill()` character before the character sequence

Then stores each character from the resulting sequence (the contents of `v` plus padding) to the output stream `os` as if by calling os.rdbuf()->sputn(seq, n), where n=std::max(os.width(), str.size())

Finally, calls os.width(0) to cancel the effects of std::setw, if any.

### Exceptions

May throw std::ios_base::failure if an exception is thrown during output.

### Parameters

os | - | a character output stream
v | - | the view to be inserted

### Return value

`os`

### See also

operator<<operator>> | performs stream input and output on strings (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string_view/operator_ltlt&oldid=105476"