Namespaces
Variants

operator<<(std::basic_string_view)

ja.cppreference.net より
 
 
 
 
ヘッダ <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 オブジェクトを構築および確認した後、出力フォーマットのパディングを決定します。

その後、結果のシーケンスseq(vの内容にパディングを施したもの)の各文字を、osを呼び出すかのように出力ストリームos.rdbuf()->sputn(seq, n)に格納します。ここでnはstd::max(os.width(), str.size())です。

最後に、os.width(0)を呼び出して、もしあればstd::setwの影響を取り消します。

例外

出力中に例外が発生した場合、 std::ios_base::failure をスローする可能性があります。

パラメータ

os - 文字出力ストリーム
v - 挿入するビュー

戻り値

os

例

#include <iomanip>
#include <iostream>
#include <string_view>
int main()
{
    constexpr std::string_view s{"abc"};
    constexpr int width{5};
    // fill/left/rightプロパティは変更されるまで保持される
    std::cout << std::setfill('-');
    std::cout << std::left;
    std::cout << '[' << std::setw(width) << s << "]\n";
    std::cout << '[' << std::setw(width) << s << "]\n";
    std::cout << std::right;
    std::cout << '[' << std::setw(width) << s << "]\n";
    // widthは各呼び出し後にリセットされる
    std::cout << '[' << s << "]\n";
}

出力:

[abc--]
[abc--]
[--abc]
[abc]

関連項目

文字列に対するストリーム入出力を実行する
(関数テンプレート)