// Copyright David Abrahams 2002. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef REGISTERED_DWA2002710_HPP # define REGISTERED_DWA2002710_HPP # include # include # include # include # include # include namespace boost { namespace python { namespace converter { struct registration; namespace detail { template struct registered_base { static registration const& converters; }; } template struct registered : detail::registered_base< typename add_reference< typename add_cv::type >::type > { }; # if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ && !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) // collapses a few more types to the same static instance. MSVC7.1 // fails to strip cv-qualification from array types in typeid. For // some reason we can't use this collapse there or array converters // will not be found. template struct registered : registered {}; # endif // // implementations // namespace detail { template registration const& registered_base::converters = registry::lookup(type_id()); } }}} // namespace boost::python::converter #endif // REGISTERED_DWA2002710_HPP