• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <print>

    std::println

    namespace std {
      template <class... Args>
      void println(format_string<Args...> fmt,
                   Args&&... args);             // (1) C++23
    
      void println();                           // (2) C++26
    
      template <class... Args>
      void println(FILE* stream,
                   format_string<Args...> fmt,
                   Args&&... args);             // (3) C++23
    
      void println(FILE* stream);               // (4) C++26
    }
    

    概要

    書式指定で出力する。この関数は、出力の末尾に改行コードが自動で付加される。

    書式はstd::format()関数のページを参照。

    この関数は、std::printf()関数ライクな書式指定で引数を文字列化して出力する。

    • (1) : 標準出力に、書式指定で出力する
    • (2) : 標準出力に改行コードを出力する
    • (3) : 指定されたFILEに、書式指定で出力する
    • (4) : 指定されたFILEに、改行コードを出力する

    この関数は、末尾に改行コードが付くことに注意。改行コードが不要な場合は、std::print()関数を使用すること。

    std::ostreamから派生したクラスオブジェクトに対して出力したい場合は、<ostream>ヘッダのstd::println()関数を使用すること。

    効果

    • (1) : 以下と等価:

      println(stdout, fmt, std::forward<Args>(args)...);
      

    • (2) : 以下と等価:

      println(stdout);
      

    • (3) : 以下と等価:

      print(stream, "{}\n", format(fmt, std::forward<Args>(args)...));
      

    • (4) : 以下と等価:

      print(stream, "\n");
      

    基本的な使い方

    #include <print>
    
    int main()
    {
      std::println("Hello {} World", 42);
    
      // 出力先を指定
      std::println(stdout, "Hello {} World", 42); // 標準出力に出力
      std::println(stderr, "Hello {} World", 42); // 標準エラーに出力
    }
    

    出力

    Hello 42 World
    Hello 42 World
    Hello 42 World
    

    モジュールをインポートする例

    import std;
    #include <cstdio>
    
    int main()
    {
      std::println("Hello {} World", 42);
    
      // stdout / stderrはマクロとして定義される。
      // モジュールはマクロをエクスポートしないので、
      // stdout / stderrを使用する場合は<cstdio>をインクルードする必要がある
      std::println(stdout, "Hello {} World", 42);
    }
    

    出力

    Hello 42 World
    Hello 42 World
    

    実行時の書式文字列を使用する (C++26)

    #include <print>
    
    int main()
    {
      std::string fmt = "{}";
      std::println(std::runtime_format(fmt), "Hello");
    }
    

    出力

    Hello
    

    改行コードを出力する (C++26)

    #include <print>
    
    int main()
    {
      std::print("abc");
      std::println(); // 改行コードのみを出力する
      std::print("{}", 123);
      std::println();
    }
    

    出力

    abc
    123
    

    バージョン

    言語

    • C++23

    処理系

    関連項目

    参照