- ostream[meta header]
- std[meta namespace]
- function template[meta id-type]
namespace std {
template<class CharT, class Traits>
basic_ostream<CharT, Traits>& endl(basic_ostream<CharT, Traits>& os);
}
- basic_ostream[link basic_ostream.md]
改行を出力し、バッファをフラッシュする。
C++のストリームには行バッファリングの機能がないため、行バッファリングの模倣としてendl
が多用される。
os
本関数は、直接呼ぶのではなく、マニピュレータ関数へのポインタを引数に取る出力演算子(operator<<
、挿入演算子、インサータとも呼ばれる)を通じて呼び出されるのが一般的である。
#include <iostream>
int main() {
std::cout << "Kamaboko";
std::endl(std::cout); // 直接呼出し(あまり一般的では無い)
std::cout << "cpprefjp" << std::endl; // operator<< を通じた間接的な呼び出し(より一般的)
}
- std::endl[color ff0000]
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();
}
}
- basic_ostream[link basic_ostream.md]
- put[link basic_ostream/put.md]
- flush[link basic_ostream/flush.md]
- widen[link ../ios/basic_ios/widen.md]
- C++98