@@ -348,31 +348,14 @@ namespace api
348348 // Macros for forwarding constructors in classes derived from
349349 // object. Derived classes will usually want these as an
350350 // implementation detail
351- # define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_ (derived, base ) \
351+ # define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS (derived, base ) \
352352 inline explicit derived (::boost::python::detail::borrowed_reference p) \
353353 : base(p) {} \
354354 inline explicit derived (::boost::python::detail::new_reference p) \
355355 : base(p) {} \
356356 inline explicit derived (::boost::python::detail::new_non_null_reference p) \
357357 : base(p) {}
358358
359- # if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
360- # define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_
361- # else
362- // MSVC6 has a bug which causes an explicit template constructor to
363- // be preferred over an appropriate implicit conversion operator
364- // declared on the argument type. Normally, that would cause a
365- // runtime failure when using extract<T> to extract a type with a
366- // templated constructor. This additional constructor will turn that
367- // runtime failure into an ambiguity error at compile-time due to
368- // the lack of partial ordering, or at least a link-time error if no
369- // generalized template constructor is declared.
370- # define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS (derived, base ) \
371- BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_ (derived, base) \
372- template <class T> \
373- explicit derived(extract<T> const &);
374- # endif
375-
376359 //
377360 // object_initializer -- get the handle to construct the object with,
378361 // based on whether T is a proxy or derived from object
0 commit comments