static int_type not_eof(const int_type& c); // C++03
static constexpr int_type not_eof(int_type c) noexcept; // C++11
概要
文字がファイル終端文字(EOF)ではないかを判定する。
戻り値
eq_int_type(c, eof()) == false
の場合はc
を返す。そうでない場合は、eq_int_type(f, eof()) == false
となるような値f
を返す。
つまり、EOF以外の値が渡されたら渡された値を返し、EOFが渡されたらEOF以外の値を返す。
計算量
定数時間
例
#include <iostream>
#include <string>
int main()
{
using traits = std::char_traits<char>;
std::cout << std::boolalpha;
// EOFではない値を渡すと、渡した値が返される
{
int a = traits::to_int_type('a');
int result = traits::not_eof(a);
std::cout << (a == result) << std::endl;
}
// EOFを渡すと、EOF以外の値が返される
{
int result = traits::not_eof(traits::eof());
std::cout << (result != traits::eof()) << std::endl;
}
}
出力例
true
true