Re: [pygccxml-development] Problem calling base class template method from class wrapper
Brought to you by:
mbaas,
roman_yakovenko
From: Roman Y. <rom...@gm...> - 2010-06-25 18:53:27
|
On Thu, Jun 24, 2010 at 3:13 PM, Benoit Leveau <ben...@mo...> wrote: > ok thanks for the explanation! > As i said in my additional note, I don't really have to fix this problem as > I'm supposed to exclude these methods in the first place, but > thanks for the explanation! Good to know. > Also, I'm curious. If I call rename(new_name) at some point on some class > declarations, do I need to call the run_query_optimizer too? Can it affect > the generated code if I don't do it? Yes. Internally py++ does a lot of searches. For example, it tries to understand from the class name ( std::vector< int > ) the "item" type. It parses the name and then executes a lot of searches to find the declaration. I follow the principle "the error should not pass silently", so it is possible that some internal detail of py++ will change and your code will stop working. You'd better run the code optimizer one more time. > I've just implemented an easy workaround which creates one > module_builder.module_builder_t, extracts all the readme strings into a > dict, then deletes this module_builder_t > and creates a new one to do all the binding. When I want to access a readme > string, I just use the dict instead. :-), nice work around. I will try to find some time next week and resolve the bug. > >> May I suggest you something? Can you create a single file, which >> includes all other files and pass it to py++? >> The proposed mode has few advantages, over the current one: >> * much faster >> * doesn't contain known bugs :-) >> >> Can you try to switch to it? > > I'm already using this approach (don't exactly remember why but I had to at > some point), ie. I dynamically creates a temporary file which #include all > the header files I want to bind. And the problem with "readme" still exists? Strange. The tests you gave, uses the opposite approach: "parse each file and then merge the declarations tree into a single one". Can you confirm this? I would like to deprecate "parse each file and then merge the declarations tree into a single one" method, since it introduces more problems, then solves. So there is no motivation to fix bugs in that code, but if you say that you don't use it and still has the "buggy" behavior, than the bug will be found and fixed. -- Roman Yakovenko C++ Python language binding http://www.language-binding.net/ |