mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 00:59:44 -06:00
Import r67258 of the wxWidgets trunk, which I expect will before
long become wxWidgets 2.9.2, which in turn is expected to be the last 2.9 release before the 3.0 stable release. Since the full wxWidgets distribution is rather large, I have imported only the parts that we use, on a subdirectory basis: art include/wx/*.* include/wx/aui include/wx/cocoa include/wx/generic include/wx/gtk include/wx/meta include/wx/msw include/wx/osx include/wx/persist include/wx/private include/wx/protocol include/wx/unix src/aui src/common src/generic src/gtk src/msw src/osx src/unix git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7380 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
73
Externals/wxWidgets3/include/wx/meta/if.h
vendored
Normal file
73
Externals/wxWidgets3/include/wx/meta/if.h
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/meta/if.h
|
||||
// Purpose: declares wxIf<> metaprogramming construct
|
||||
// Author: Vaclav Slavik
|
||||
// Created: 2008-01-22
|
||||
// RCS-ID: $Id: if.h 61724 2009-08-21 10:41:26Z VZ $
|
||||
// Copyright: (c) 2008 Vaclav Slavik
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_META_IF_H_
|
||||
#define _WX_META_IF_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
// NB: This code is intentionally written without partial templates
|
||||
// specialization, because some older compilers (notably VC6) don't
|
||||
// support it.
|
||||
|
||||
namespace wxPrivate
|
||||
{
|
||||
|
||||
template <bool Cond>
|
||||
struct wxIfImpl
|
||||
|
||||
// broken VC6 needs not just an incomplete template class declaration but a
|
||||
// "skeleton" declaration of the specialized versions below as it apparently
|
||||
// tries to look up the types in the generic template definition at some moment
|
||||
// even though it ends up by using the correct specialization in the end -- but
|
||||
// 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 {};
|
||||
}
|
||||
#endif // VC++ <= 6
|
||||
;
|
||||
|
||||
// specialization for true:
|
||||
template <>
|
||||
struct wxIfImpl<true>
|
||||
{
|
||||
template<typename TTrue, typename TFalse> struct Result
|
||||
{
|
||||
typedef TTrue value;
|
||||
};
|
||||
};
|
||||
|
||||
// specialization for false:
|
||||
template<>
|
||||
struct wxIfImpl<false>
|
||||
{
|
||||
template<typename TTrue, typename TFalse> 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<T> in vector.h for usage example
|
||||
template<bool Cond, typename TTrue, typename TFalse>
|
||||
struct wxIf
|
||||
{
|
||||
typedef typename wxPrivate::wxIfImpl<Cond>
|
||||
::template Result<TTrue, TFalse>::value
|
||||
value;
|
||||
};
|
||||
|
||||
#endif // _WX_META_IF_H_
|
Reference in New Issue
Block a user