[C++-sig] Re: Problem with Extract conversion
Dmitri Mouromtsev
dimour at mail.ru
Wed Jun 4 09:14:05 CEST 2003
>> Hello all!
>> I am embedding Python in my application by using BOOST.PYTHON. I tried
>> to compile in MSVC 7.0 the example with extract<> conversion:
>>
>> boost::python::str test_str("test");
>> char const* c_str = extract<char const*>(test_str);
>>
>> If I run this code an unhandled exception rise when the function
>> throw_no_lvalue_from_python compose error message "No registered
converter
>> was able to extract a C++...".
>>
>> What I need to do and what is my mistake.
>
>Please post a small, complete program which reproduces your problem.
Here is test program reproducing my problem (or bug):
#include "Python.h"
#include "boost\python.hpp"
#include <iostream>
using namespace boost::python;
int main()
{
Py_Initialize();
boost::python::str test_str("test");
char const* c_str = extract<char const*>(test_str);
std::cout << c_str << '\n';
return 0;
}
The exception rise in the same point as I describe blow.
If I use another conversoin:
char const* c_str = PyString_AsString(test_str.ptr());
it's all right.
And when I build this program I've got warning "'argument' : conversion from
'size_t' to 'int', possible loss of data" to line
BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::string,
PyString_FromStringAndSize(x.c_str(),x.size()))
in the file builtin_converters.hpp.
More information about the Cplusplus-sig
mailing list