00001 00015 /***************************************************************************** 00016 ** Defines 00017 *****************************************************************************/ 00018 00019 #ifndef ECL_UTILITIES_VOID_HPP_ 00020 #define ECL_UTILITIES_VOID_HPP_ 00021 00022 /***************************************************************************** 00023 ** Namespaces 00024 *****************************************************************************/ 00025 00026 namespace ecl { 00027 00028 /***************************************************************************** 00029 ** Typedefs 00030 *****************************************************************************/ 00044 typedef void (*VoidFunction)(); 00045 00046 /***************************************************************************** 00047 ** Classes 00048 *****************************************************************************/ 00057 class Void { 00058 public: 00059 template <typename OutputStream> 00060 friend OutputStream& operator << (OutputStream& ostream, const Void void_object); 00061 00062 virtual ~Void() {} 00063 }; 00064 00075 template <typename OutputStream> 00076 OutputStream& operator << (OutputStream& ostream, const Void void_object) { return ostream; } 00077 00078 }; // Namespace ecl 00079 00080 00081 00082 #endif /*ECL_UTILITIES_VOID_HPP_*/