@@ -82,16 +82,16 @@ namespace detail
8282
8383// Specialize converters for signed and unsigned T to Python Int
8484# define BOOST_PYTHON_TO_INT (T ) \
85- BOOST_PYTHON_TO_PYTHON_BY_VALUE (signed T, PyInt_FromLong(x)) \
85+ BOOST_PYTHON_TO_PYTHON_BY_VALUE (signed T, :: PyInt_FromLong(x)) \
8686 BOOST_PYTHON_TO_PYTHON_BY_VALUE ( \
8787 unsigned T \
8888 , static_cast <unsigned long >(x) > static_cast <unsigned long >( \
8989 std::numeric_limits<long >::max()) \
90- ? PyLong_FromUnsignedLong(x) \
91- : PyInt_FromLong(x))
90+ ? :: PyLong_FromUnsignedLong(x) \
91+ : :: PyInt_FromLong(x))
9292
9393// Bool is not signed.
94- BOOST_PYTHON_TO_PYTHON_BY_VALUE (bool , PyInt_FromLong(x))
94+ BOOST_PYTHON_TO_PYTHON_BY_VALUE (bool , :: PyInt_FromLong(x))
9595
9696// note: handles signed char and unsigned char, but not char (see below)
9797BOOST_PYTHON_TO_INT(char )
@@ -103,23 +103,29 @@ BOOST_PYTHON_TO_INT(long)
103103// using Python's macro instead of Boost's - we don't seem to get the
104104// config right all the time.
105105# ifdef HAVE_LONG_LONG
106- BOOST_PYTHON_TO_PYTHON_BY_VALUE (signed BOOST_PYTHON_LONG_LONG, PyLong_FromLongLong(x))
107- BOOST_PYTHON_TO_PYTHON_BY_VALUE(unsigned BOOST_PYTHON_LONG_LONG, PyLong_FromUnsignedLongLong(x))
106+ BOOST_PYTHON_TO_PYTHON_BY_VALUE (signed BOOST_PYTHON_LONG_LONG, :: PyLong_FromLongLong(x))
107+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(unsigned BOOST_PYTHON_LONG_LONG, :: PyLong_FromUnsignedLongLong(x))
108108# endif
109109
110110# undef BOOST_TO_PYTHON_INT
111111
112112BOOST_PYTHON_TO_PYTHON_BY_VALUE (char , converter::do_return_to_python(x))
113113BOOST_PYTHON_TO_PYTHON_BY_VALUE(char const *, converter::do_return_to_python(x))
114- BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::string, PyString_FromStringAndSize(x.c_str(),x.size()))
115- BOOST_PYTHON_TO_PYTHON_BY_VALUE(float , PyFloat_FromDouble(x))
116- BOOST_PYTHON_TO_PYTHON_BY_VALUE(double , PyFloat_FromDouble(x))
117- BOOST_PYTHON_TO_PYTHON_BY_VALUE(long double , PyFloat_FromDouble(x))
114+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::string, ::PyString_FromStringAndSize(x.data(),x.size()))
115+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::wstring, ::PyUnicode_FromWideChar(x.data(),x.size()))
116+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(float , ::PyFloat_FromDouble(x))
117+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(double , ::PyFloat_FromDouble(x))
118+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(long double , ::PyFloat_FromDouble(x))
118119BOOST_PYTHON_RETURN_TO_PYTHON_BY_VALUE(PyObject*, converter::do_return_to_python(x))
119- BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <float >, PyComplex_FromDoubles(x.real(), x.imag()))
120- BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <double >, PyComplex_FromDoubles(x.real(), x.imag()))
121- BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <long double >, PyComplex_FromDoubles(x.real(), x.imag()))
122-
120+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <float >, ::PyComplex_FromDoubles(x.real(), x.imag()))
121+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <double >, ::PyComplex_FromDoubles(x.real(), x.imag()))
122+ BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::complex <long double >, ::PyComplex_FromDoubles(x.real(), x.imag()))
123+
124+ # undef BOOST_PYTHON_RETURN_TO_PYTHON_BY_VALUE
125+ # undef BOOST_PYTHON_ARG_TO_PYTHON_BY_VALUE
126+ # undef BOOST_PYTHON_TO_PYTHON_BY_VALUE
127+ # undef BOOST_PYTHON_TO_INT
128+
123129namespace converter
124130{
125131
0 commit comments