namespace std {
template<class CharT, class Traits>
basic_ostream<CharT, Traits>& endl(basic_ostream<CharT, Traits>& os);
}
概要
改行を出力し、バッファをフラッシュする。
C++のストリームには行バッファリングの機能がないため、行バッファリングの模倣としてendl
が多用される。
効果
戻り値
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