I'm in the process of creating a binding for a third party library using py++ but have encountered a problem whereby the partial_decl_string of function argument seems incorrect. The function full declaration string is...

'void ( *test_function_type )( ::__gnu_cxx::__normal_iterator<Imath::Vec3<int> const*, std::vector<Imath::Vec3<int>, std::allocator<Imath::Vec3<int> > > > &,::std::vector<Imath::Vec3<int>, std::allocator<Imath::Vec3<int> > > & )'

while the partial declaration string is

'void ( *test_function_type )( ::__gnu_cxx::__normal_iterator< Imath::Vec3< int >, std::vector< Imath::Vec3<int> > > &,::std::vector< Imath::Vec3<int> > & )'

note that the const* from the first argument is gone. Is this the correct behaviour ?

The generated cpp code seems to use the partial_decl_string and does not compile. I think this is because of the missing const*, which is being lost in the function pygccxml.declarations.class_declaration.get_partial_name.

from pygccxml.declarations import class_declaration
name = "'__normal_iterator<Imath::Vec3<int> const*, std::vector<Imath::Vec3<int>, std::allocator<Imath::Vec3<int> > > >"
print class_delaration.get_partial_name(name)
>>> '__normal_iterator< Imath::Vec3< int >, std::vector< Imath::Vec3<int> > >'

Is there anyway to use decl_string instead of the partial one when generating the code ?

thanks alot,