>>751
安易にマクロを使うのはお勧めできない。
定数は const を使って定義することをまず考えたほうがいい。

ただし、この場合は
 std::istream::traits_type::int_type const SEOF = std::istream::traits_type::eof();
となり、かなり冗長な定義になることや、
eof() が関数であることを考えるとマクロで書いた場合に比べて
インライン展開が効かないことによって非効率なコードになるかもしれない。

iostream ライブラリではファイルの終端は
bool eof() で判定するように設計されている。
その他のエラーも考慮して、
 while((c=ifs.get())&&ifs.good())
とするのが正解だろう。