"HellcatV HellcatV" <[EMAIL PROTECTED]> writes: > I've been struggling to port boost v1 to boost v2 and I haven't > located a nice sort of documentation for it--
What's wrong with http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/boost/boost/libs/python/doc/index.html? ?? We worked very hard on it! > luckily i have almost finished figuring it out...and just need to > figure out how to register from_python > > I have tried and failed to contact the mailing list What did you try to do? Instructions are at http://www.python.org/sigs/c++-sig/ > so I'm hoping you can help me, Dave :-) > or point me to where I cna find infos See above. > so I'm trying to get boost v2 to work with my new project at LBL > > my test code appears to be 100% working ( to_python converted to that > big macro, Huh? That big macro? > sloppy casts of "member" functions that included something > that casted to the true member function has been removed) I'm still confused, but it sound like you're saying things have improved. > but I get a type error when trying to call a function with a tuple > that really takes a Vector. > struct Vector { > float i; float j; float k; > }; > > This is because I have not figured out how to properly define a > from_python operator in boost v2... I have scoured google and all the > docs and have only encountered half-debates on what convention to use > and no solid rules--and I cannot appear to make anything I have tried > work. http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/boost/boost/libs/python/doc/v2/faq.html#question2 Ralf also works at Berkeley Labs, so you have the expert on-site. > can you point me to some documentation on which functioN I should make > that takes in a PyObject * and return a Vector so that I can call > functions that take a Vector as an argument? > > my old from_python method is as follows: > inline Vector from_python(PyObject *p,boost::python::type<Vector>) { > Vector vec(0,0,0); > PyArg_ParseTuple(p,"fff",&vec.i,&vec.j,&vec.k); > return vec; > } > error checking is not required :-) > > if anyone can help me get this function to work in v2 I believe the > rest of my code will magically work (because > > the only functions currently failing involve taking IN > vectors...returning them is accomplished with > BOOST_PYTHON_TO_PYTHON_BY_VALUE(QVector, > boost::python::to_python_value<boost::python::tuple> ()(bo\ > ost::python::make_tuple((double)x.i,(double)x.j,(double)x.k))); Ahh, that macro is an implementation detail; I'm not sure that you should be using it. I probably should be #undef ing it at the end of the header. static void* QVector_convertible(PyObject* p) { return PyTuple_Check(p); } static void QVector_construct(PyObject* source, rvalue_from_python_stage1_data* data) { void* const storage = ((converter::rvalue_from_python_storage<QVector>*)data)->storage.bytes; new (storage) QVector(); // Fill in QVector values from source tuple here // details left to reader. data->convertible = storage; } ... boost::python::converter::registry::insert(QVector_convertible, QVector_construct, type_id<QVector>()); > is the above calling syntax going to be portable to newer versions of > boost? or am I going to have to scour through millions of header files > for version 1.30? Scouring headers is never a good idea. I recommend reading the docs, then asking questions. > anyhow thanks for a great library.... You're welcome! > unfortunately only boost v1 compiles on my macintosh with gcc-3.1 > it appears there is a preprocessing error with gcc-3.1 :-( and I'm not > sure what to do about it... > > it says: (postprocessed) > > template < typename 0 = mpl::void_ , typename B1 = mpl::void_ , > typename B2 = mpl::void_ , typena\ > me B3 = mpl::void_ , typename B4 = mpl::void_ , typename B5 = > mpl::void_ , typename B6 = mpl::void_\ > , typename B7 = mpl::void_ , typename B8 = mpl::void_ , typename B9 = > mpl::void_ > > struct bases : detail::type_list< B0 , B1 , B2 , B3 , B4 , B5 , B6 , > B7 , B8 , B9 >::type > {}; > > where I think it means B0 instead of just plain ole 0.... Ouch! Yes, that's right. > I think it's a gcc-3.1 b0rken sign but I don't know how to get around > it :-/ GCC-3.2.1? -- David Abrahams [EMAIL PROTECTED] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost