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

履歴 編集

function template
<ostream>

std::endl

namespace std {
  template<class CharT, class Traits>
  basic_ostream<CharT, Traits>& endl(basic_ostream<CharT, Traits>& os);
}

概要

改行を出力し、バッファをフラッシュする。

C++のストリームには行バッファリングの機能がないため、行バッファリングの模倣としてendlが多用される。

効果

  1. os.put(os.widen('\n'))を呼び出す。
  2. os.flush()を呼び出す。

戻り値

os

備考

本関数は、直接呼ぶのではなく、マニピュレータ関数へのポインタを引数に取る出力演算子(operator<<、挿入演算子、インサータとも呼ばれる)を通じて呼び出されるのが一般的である。

#include <iostream>

int main() {
  std::cout << "Kamaboko";
  std::endl(std::cout);                 // 直接呼出し(あまり一般的では無い)
  std::cout << "cpprefjp" << std::endl; // operator<< を通じた間接的な呼び出し(より一般的)
}

出力

Kamaboko
cpprefjp

実装例

namespace std {
  template<class CharT, class Traits>
  basic_ostream<CharT, Traits>& endl(basic_ostream<CharT, Traits>& os) {
    return os.put(os.widen('\n')).flush();
  }
}

バージョン

言語

  • C++98

参照