[C++-sig] [Py++] Indexing suite 2: missing methods

Roman Yakovenko roman.yakovenko at gmail.com
Mon Feb 15 21:28:22 CET 2010


On Mon, Feb 15, 2010 at 1:30 PM, peoro <peoro.noob at gmail.com> wrote:
> On Sun, Feb 14, 2010 at 8:39 PM, Roman Yakovenko
>> Can you create small and complete example? ( C++ code, Py++ script and
>> Py++ generated code )?
>>
>> Thanks
>>
>
> Sure:
>
> ##### main.cpp
> #include <set>
> std::set<int> f( ) {
>        return std::set<int>();
> }
>
> ##### export.py
> import os
> from pyplusplus import module_builder
> here = os.path.abspath( r"." )
> mb = module_builder.module_builder_t( [here + r"/main.cpp"],
> working_directory=here, indexing_suite_version=2 )
> mb.build_code_creator( module_name='set_test_len' )
> mb.write_module( here + r'/bindings.cpp' )
>
> ##### set_test_len.py
> from set_test_len import *
> x = f()
> len( x )
>

Look, I am not sure what is going wrong. I verified the example you
gave and it works as expected(
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1825&view=rev )

The functionality you are talking about is pretty fundamental and used
in other projects too.

The following is the code generated by Py++ to expose std::set<int>:
    { //::std::set< int >
        typedef bp::class_< std::set< int > > set_less__int__greater__exposer_t;
        set_less__int__greater__exposer_t
set_less__int__greater__exposer = set_less__int__greater__exposer_t(
"set_less__int__greater_", "documentation" );
        bp::scope set_less__int__greater__scope(
set_less__int__greater__exposer );
        set_less__int__greater__exposer.def( bp::indexing::set_suite<
std::set< int > >() );
    }

Does your generated code look the same?

-- 
Roman Yakovenko
C++ Python language binding
http://www.language-binding.net/


More information about the Cplusplus-sig mailing list