mirror of
https://github.com/boostorg/python.git
synced 2026-01-19 16:32:16 +00:00
Large patch from Ulrich Eckhardt to fix support for EVC++ 4.
[SVN r30670]
This commit is contained in:
@@ -29,14 +29,14 @@
|
||||
# endif
|
||||
|
||||
# if defined(BOOST_MSVC)
|
||||
# if _MSC_VER <= 1200
|
||||
# if _MSC_VER < 1300
|
||||
# define BOOST_MSVC6_OR_EARLIER 1
|
||||
# endif
|
||||
|
||||
# pragma warning (disable : 4786) // disable truncated debug symbols
|
||||
# pragma warning (disable : 4251) // disable exported dll function
|
||||
# pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
|
||||
# pragma warning (disable : 4275) // non dll-interface class
|
||||
# pragma warning (disable : 4786) // disable truncated debug symbols
|
||||
# pragma warning (disable : 4251) // disable exported dll function
|
||||
# pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
|
||||
# pragma warning (disable : 4275) // non dll-interface class
|
||||
|
||||
# elif defined(__ICL) && __ICL < 600 // Intel C++ 5
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace boost { namespace python { namespace detail {
|
||||
// Allows us to force the argument to be instantiated without
|
||||
// incurring unused variable warnings
|
||||
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC == 1200 || _MSC_FULL_VER > 13102196
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC < 1300 || _MSC_FULL_VER > 13102196
|
||||
|
||||
template <class T>
|
||||
inline void force_instantiate(T const&) {}
|
||||
|
||||
@@ -87,7 +87,7 @@ class handle
|
||||
return *this;
|
||||
}
|
||||
|
||||
#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
|
||||
#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300)
|
||||
|
||||
template<typename Y>
|
||||
handle& operator=(handle<Y> const & r) // never throws
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# include <boost/ref.hpp>
|
||||
# include <boost/python/detail/value_arg.hpp>
|
||||
# include <boost/python/detail/copy_ctor_mutates_rhs.hpp>
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||
# include <boost/type_traits/is_enum.hpp>
|
||||
# include <boost/mpl/and.hpp>
|
||||
# include <boost/mpl/not.hpp>
|
||||
@@ -42,7 +42,7 @@ struct reference_to_value
|
||||
template <class T>
|
||||
struct forward
|
||||
: mpl::if_<
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||
// vc6 chokes on unforwarding enums nested in classes
|
||||
mpl::and_<
|
||||
is_scalar<T>
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace api
|
||||
class object_operators : public def_visitor<U>
|
||||
{
|
||||
protected:
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC > 1200
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
|
||||
typedef object const& object_cref;
|
||||
# else
|
||||
typedef object object_cref;
|
||||
@@ -300,7 +300,7 @@ namespace api
|
||||
template <class T>
|
||||
explicit object(
|
||||
T const& x
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||
// use some SFINAE to un-confuse MSVC about its
|
||||
// copy-initialization ambiguity claim.
|
||||
, typename mpl::if_<is_proxy<T>,int&,int>::type* = 0
|
||||
@@ -331,7 +331,7 @@ namespace api
|
||||
inline explicit derived(python::detail::new_non_null_reference p) \
|
||||
: base(p) {}
|
||||
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC > 1200
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
|
||||
# define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_
|
||||
# else
|
||||
// MSVC6 has a bug which causes an explicit template constructor to
|
||||
|
||||
@@ -15,7 +15,7 @@ class proxy : public object_operators<proxy<Policies> >
|
||||
{
|
||||
typedef typename Policies::key_type key_type;
|
||||
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC > 1200
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
|
||||
typedef proxy const& assignment_self;
|
||||
# else
|
||||
typedef proxy assignment_self;
|
||||
|
||||
@@ -125,7 +125,7 @@ namespace boost { namespace python {
|
||||
typedef detail::container_element<Container, Index, DerivedPolicies>
|
||||
container_element_t;
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||
struct return_policy : return_internal_reference<> {};
|
||||
#else
|
||||
typedef return_internal_reference<> return_policy;
|
||||
|
||||
Reference in New Issue
Block a user