// Purpose: declares wxIf<> metaprogramming construct
// Author: Vaclav Slavik
// Created: 2008-01-22
-// RCS-ID: $Id$
// Copyright: (c) 2008 Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// without this skeleton it doesn't recognize Result as a class at all below
#if defined(__VISUALC__) && !wxCHECK_VISUALC_VERSION(7)
{
- template<typename TTrue, typename TFalse> struct Result
- {
- // intentionally don't define value here, this shouldn't be actually
- // used, it's here just to work around a compiler bug
- };
+ template<typename TTrue, typename TFalse> struct Result {};
}
#endif // VC++ <= 6
;
} // namespace wxPrivate
-// wxIf<> template defines nested type "value" which is the same as
+// 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<T> in vector.h for usage example
template<bool Cond, typename TTrue, typename TFalse>
-struct wxIf : wxPrivate::wxIfImpl<Cond>::template Result<TTrue, TFalse>
+struct wxIf
{
+ typedef typename wxPrivate::wxIfImpl<Cond>
+ ::template Result<TTrue, TFalse>::value
+ value;
};
#endif // _WX_META_IF_H_