2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-22 05:22:45 +00:00

implemented a arg_from_python converter that converts py3k unicode to const char*, not an ideal solution, just experimenting.

[SVN r53653]
This commit is contained in:
Haoyu Bai
2009-06-05 12:19:00 +00:00
parent caf661cfeb
commit e33ce235a8

View File

@@ -62,6 +62,35 @@ struct arg_from_python<PyObject* const&>
PyObject* m_source;
};
#if PY_VERSION_HEX >= 0x03000000
// specialization for const char *, experimenting
template <>
struct arg_from_python<const char*>
{
typedef const char* result_type;
arg_from_python(PyObject* p) : m_source(p), intermediate(0) {}
bool convertible() const
{
return PyUnicode_Check(m_source);
}
const char* operator()()
{
const char* result;
intermediate = PyUnicode_AsUTF8String(m_source);
result = PyBytes_AsString(intermediate);
return result;
}
~arg_from_python()
{
Py_DECREF(intermediate);
}
private:
PyObject* m_source;
PyObject* intermediate;
};
#endif
//
// implementations
//