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 00023 /***************************************************************************** 00024 ** Namespaces 00025 *****************************************************************************/ 00026 00027 namespace ecl { 00028 00029 /***************************************************************************** 00030 ** Interface [EndOfLine] 00031 *****************************************************************************/ 00042 class ECL_PUBLIC EndOfLine : public Manipulator<EndOfLine> { 00043 public: 00053 template <typename ODevice> 00054 void action (interfaces::OutputTextStream<ODevice,true>& ostream) { 00055 ostream << "\n"; 00056 ostream.flush(); 00057 } 00058 00059 virtual ~EndOfLine() {} 00060 }; 00061 00062 /***************************************************************************** 00063 ** Global Variables 00064 *****************************************************************************/ 00065 00066 extern EndOfLine endl; 00067 00068 } // namespace ecl 00069 00070 #endif /* ECL_STREAMS_END_OF_LINE_HPP_ */