Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/python/converter/pyobject_traits.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
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 #ifndef PYOBJECT_TRAITS_DWA2002720_HPP | |
6 # define PYOBJECT_TRAITS_DWA2002720_HPP | |
7 | |
8 # include <boost/python/detail/prefix.hpp> | |
9 # include <boost/python/converter/pyobject_type.hpp> | |
10 | |
11 namespace boost { namespace python { namespace converter { | |
12 | |
13 template <class> struct pyobject_traits; | |
14 | |
15 template <> | |
16 struct pyobject_traits<PyObject> | |
17 { | |
18 // All objects are convertible to PyObject | |
19 static bool check(PyObject*) { return true; } | |
20 static PyObject* checked_downcast(PyObject* x) { return x; } | |
21 #ifndef BOOST_PYTHON_NO_PY_SIGNATURES | |
22 static PyTypeObject const* get_pytype() { return 0; } | |
23 #endif | |
24 }; | |
25 | |
26 // | |
27 // Specializations | |
28 // | |
29 | |
30 # define BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(T) \ | |
31 template <> struct pyobject_traits<Py##T##Object> \ | |
32 : pyobject_type<Py##T##Object, &Py##T##_Type> {} | |
33 | |
34 // This is not an exhaustive list; should be expanded. | |
35 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(Type); | |
36 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(List); | |
37 #if PY_VERSION_HEX < 0x03000000 | |
38 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(Int); | |
39 #endif | |
40 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(Long); | |
41 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(Dict); | |
42 BOOST_PYTHON_BUILTIN_OBJECT_TRAITS(Tuple); | |
43 | |
44 }}} // namespace boost::python::converter | |
45 | |
46 #endif // PYOBJECT_TRAITS_DWA2002720_HPP |