On Fri, May 29, 2009 at 1:20 PM, Werner Joergensen
<wjoergen...@yahoo.com> wrote:
>
> How can I process such a file classA.hpp using a code generator like 
> http://www.language-binding.net/pyplusplus/documentation/tutorials/module_builder/generate_code.py.html?
>
> ----------8<---- classA.hpp ------
> class B;
>
> class A{
> public:
>  B& dontCareAboutB(){ /*return C::getB();*/ };
>  void doSomething(){};
> };
> ----------8<----------
>
> This class compiles fine with just "g++ -c classA.hpp", but applying the 
> pyplusplus code generator followed by bjam throws several errors:
> ...
> /opt/boost_1_39_0/boost/python/type_id.hpp:89: error: invalid use of 
> incomplete type ‘struct B’
> ./classA.hpp:1: error: forward declaration of ‘struct B’
> ...
>
> If I replace the first line with "class B{}", making B a comple, empty class, 
> this example succeeds. But then I run into more troubles if I add the actual 
> definition of the real class B from another header file to the python module.
>
> Does a solution with pyplusplus exist, where I don't need to modify the 
> classA.hpp header file?

I think, the solution exists. First of all you should understand, that
Boost.Python really needs to know( see definition ) of class B. So you
will have to include it "before" the generated code.

What you can do is to add the "B" header file to class A generate
code:  
http://language-binding.net/pyplusplus/documentation/inserting_code.html#header-files

HTH





-- 
Roman Yakovenko
C++ Python language binding
http://www.language-binding.net/
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to