1 // Copyright David Abrahams 2002. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #include <boost/python/converter/object_manager.hpp> 6 #include <boost/python/borrowed.hpp> 7 #include <boost/static_assert.hpp> 8 #include <boost/python/handle.hpp> 9 10 using namespace boost::python; 11 using namespace boost::python::converter; 12 13 struct X {}; 14 main()15 int main() 16 { 17 BOOST_STATIC_ASSERT(is_object_manager<handle<> >::value); 18 BOOST_STATIC_ASSERT(!is_object_manager<int>::value); 19 BOOST_STATIC_ASSERT(!is_object_manager<X>::value); 20 21 BOOST_STATIC_ASSERT(is_reference_to_object_manager<handle<>&>::value); 22 BOOST_STATIC_ASSERT(is_reference_to_object_manager<handle<> const&>::value); 23 BOOST_STATIC_ASSERT(is_reference_to_object_manager<handle<> volatile&>::value); 24 BOOST_STATIC_ASSERT(is_reference_to_object_manager<handle<> const volatile&>::value); 25 26 BOOST_STATIC_ASSERT(!is_reference_to_object_manager<handle<> >::value); 27 BOOST_STATIC_ASSERT(!is_reference_to_object_manager<X>::value); 28 BOOST_STATIC_ASSERT(!is_reference_to_object_manager<X&>::value); 29 BOOST_STATIC_ASSERT(!is_reference_to_object_manager<X const&>::value); 30 31 return 0; 32 } 33 34