///////////////////////////////////////////////////////////////////////////// // Name: wx/meta/if.h // Purpose: declares wxIf<> metaprogramming construct // Author: Vaclav Slavik // Created: 2008-01-22 // Copyright: (c) 2008 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_META_IF_H_ #define _WX_META_IF_H_ #include "wx/defs.h" namespace wxPrivate { template struct wxIfImpl; // specialization for true: template <> struct wxIfImpl { template struct Result { typedef TTrue value; }; }; // specialization for false: template<> struct wxIfImpl { template struct Result { typedef TFalse value; }; }; } // namespace wxPrivate // wxIf<> template defines nested type "value" which is the same as // TTrue if the condition Cond (boolean compile-time constant) was met and // TFalse if it wasn't. // // See wxVector in vector.h for usage example template struct wxIf { typedef typename wxPrivate::wxIfImpl ::template Result::value value; }; #endif // _WX_META_IF_H_