wxWidgets/include/wx/meta/removeref.h
Vadim Zeitlin 8f6bb2602b Disable wxEvtHandler::CallAfter() for VC6, it's too broken for it.
There is no clear way to implement wxRemoveRef() for VC6 so just disable it,
and CallAfter() as it relies on it, for this compiler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-24 00:17:15 +00:00

38 lines
1.0 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: wx/meta/removeref.h
// Purpose: Allows to remove a reference from a type.
// Author: Vadim Zeitlin
// Created: 2012-10-21
// RCS-ID: $Id$
// Copyright: (c) 2012 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_META_REMOVEREF_H_
#define _WX_META_REMOVEREF_H_
// wxRemoveRef<> is similar to C++11 std::remove_reference<> but works with all
// compilers (but, to compensate for this, doesn't work with rvalue references).
// Except that it doesn't work with VC++ 6 as there doesn't seem to be any way
// to partially specialize a template for references with it.
#ifndef __VISUALC6__
template <typename T>
struct wxRemoveRef
{
typedef T type;
};
template <typename T>
struct wxRemoveRef<T&>
{
typedef T type;
};
#define wxHAS_REMOVEREF
#endif // !__VISUALC6__
#endif // _WX_META_REMOVEREF_H_