# operator<<(std::basic_string_view)

< cpp‎ | string‎ | basic string view

定义于头文件 `<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); |  | (C++17 起)

表现为有格式输出函数 (FormattedOutputFunction) 。构造并检查 sentry 对象后，以下列方式确定输出格式填充：

  a) 若 `v.size()` 不小于 `os.width()` ，则原态使用 `[v.begin(), v.end())` ；
  b) 否则，若 (os.flags() & ios_base::adjustfield) == ios_base::left ，则将 `os.fill()` 字符的 `os.width()-v.size()` 份副本置于字符序列前；
  c) 否则，将 `os.fill()` 字符的 `os.width()-v.size()` 份副本置于字符序列后。

然后如同通过调用 os.rdbuf()->sputn(seq, n) ，存储每个来自结果序列（ `v` 的内容加上填充）于输出流 `os` ，其中 n=std::max(os.width(), str.size()) 。

最后，调用 os.width(0) 以取消 std::setw 的效果，若存在。

### 异常

若输出时抛异常，则可能抛出 std::ios_base::failure 。

### 参数

os | - | 字符输出流
v | - | 要插入的视图

### 返回值

`os`

### 参阅

operator<<operator>> | 执行字符串的流输入与输出 (函数模板)