-
Notifications
You must be signed in to change notification settings - Fork 122
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refs #4204. Make the old/new python interfaces will blissfully coexist.
The ticket is the best place to look for the reason why this is so convoluted. Please also read 'PythonAPI/src/why_is_boost_python_here.txt'.
- Loading branch information
1 parent
ae20295
commit be5e887
Showing
248 changed files
with
27,314 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
76 changes: 76 additions & 0 deletions
76
Code/Mantid/Framework/PythonAPI/inc/boost/python/arg_from_python.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
// 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 ARG_FROM_PYTHON_DWA2002128_HPP | ||
# define ARG_FROM_PYTHON_DWA2002128_HPP | ||
|
||
# include <boost/python/detail/prefix.hpp> | ||
# include <boost/python/converter/arg_from_python.hpp> | ||
# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ | ||
|| BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) | ||
# include <boost/type_traits/remove_cv.hpp> | ||
#endif | ||
|
||
namespace boost { namespace python { | ||
|
||
template <class T> | ||
struct arg_from_python | ||
: converter::select_arg_from_python< | ||
# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ | ||
|| BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) | ||
typename boost::remove_cv<T>::type | ||
# else | ||
T | ||
# endif | ||
>::type | ||
{ | ||
typedef typename converter::select_arg_from_python< | ||
# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ | ||
|| BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) | ||
typename boost::remove_cv<T>::type | ||
# else | ||
T | ||
# endif | ||
>::type base; | ||
|
||
arg_from_python(PyObject*); | ||
}; | ||
|
||
// specialization for PyObject* | ||
template <> | ||
struct arg_from_python<PyObject*> | ||
{ | ||
typedef PyObject* result_type; | ||
|
||
arg_from_python(PyObject* p) : m_source(p) {} | ||
bool convertible() const { return true; } | ||
PyObject* operator()() const { return m_source; } | ||
private: | ||
PyObject* m_source; | ||
}; | ||
|
||
template <> | ||
struct arg_from_python<PyObject* const&> | ||
{ | ||
typedef PyObject* const& result_type; | ||
|
||
arg_from_python(PyObject* p) : m_source(p) {} | ||
bool convertible() const { return true; } | ||
PyObject*const& operator()() const { return m_source; } | ||
private: | ||
PyObject* m_source; | ||
}; | ||
|
||
// | ||
// implementations | ||
// | ||
template <class T> | ||
inline arg_from_python<T>::arg_from_python(PyObject* source) | ||
: base(source) | ||
{ | ||
} | ||
|
||
}} // namespace boost::python | ||
|
||
#endif // ARG_FROM_PYTHON_DWA2002128_HPP |
Oops, something went wrong.