00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_STREAMS_END_OF_LINE_HPP_ 00013 #define ECL_STREAMS_END_OF_LINE_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include <ecl/config/macros.hpp> 00020 #include "../manipulators.hpp" 00021 #include "../text_stream.hpp" 00022 #include "../macros.hpp" 00023 00024 /***************************************************************************** 00025 ** Namespaces 00026 *****************************************************************************/ 00027 00028 namespace ecl { 00029 00030 /***************************************************************************** 00031 ** Interface [EndOfLine] 00032 *****************************************************************************/ 00043 class ecl_streams_PUBLIC EndOfLine : public Manipulator<EndOfLine> { 00044 public: 00054 template <typename ODevice> 00055 void action (interfaces::OutputTextStream<ODevice,true>& ostream) { 00056 ostream << "\n"; 00057 ostream.flush(); 00058 } 00059 00060 virtual ~EndOfLine() {} 00061 }; 00062 00063 /***************************************************************************** 00064 ** Global Variables 00065 *****************************************************************************/ 00066 00067 extern EndOfLine endl; 00068 00069 } // namespace ecl 00070 00071 #endif /* ECL_STREAMS_END_OF_LINE_HPP_ */