00001 // $Id: TypeWrapper.h,v 1.2 2008/08/01 10:36:27 ibelyaev Exp $ 00002 // ============================================================================ 00003 #ifndef LHCBMATH_TYPEWRAPPER_H 00004 #define LHCBMATH_TYPEWRAPPER_H 1 00005 // ============================================================================ 00006 // STD & STL 00007 // ============================================================================ 00008 #include <functional> 00009 // ============================================================================ 00010 // Boost 00011 // ============================================================================ 00012 #include "boost/call_traits.hpp" 00013 // ============================================================================ 00014 namespace Gaudi 00015 { 00016 namespace Math 00017 { 00018 namespace detail 00019 { 00020 // ====================================================================== 00026 struct Null { enum { value = 0 } ; } ; 00027 // ====================================================================== 00033 template <class TYPE,class TYPE2 = bool> 00034 struct Null_ : public std::unary_function<TYPE,TYPE2> 00035 { 00036 // ==================================================================== 00038 typedef typename boost::call_traits<TYPE>::param_type argument ; 00039 // ==================================================================== 00041 inline TYPE2 operator() ( argument /* a */ ) const { return 0 ; } 00042 // ==================================================================== 00043 } ; 00044 // ====================================================================== 00045 } 00046 // ======================================================================== 00052 template <typename T> 00053 struct TypeWrapper 00054 { 00055 typedef T value_type; 00056 } ; 00057 // ======================================================================== 00058 } // end of namespace Gaudi::Math 00059 // ========================================================================== 00060 } // end of namespace Gaudi 00061 // ============================================================================ 00062 // The END 00063 // ============================================================================ 00064 #endif // LHCBMATH_TYPEWRAPPER_H 00065 // ============================================================================