Re: No cooperation between dictionaries from Cint and Reflex

From: <wlavrijsen_at_lbl.gov>
Date: Tue, 31 Jan 2012 10:58:43 -0800


Roel,

> And then in the list of generated classes:
> class std::pair<std::_Rb_tree_iterator<std::pair<const
> std::basic_string<char>,double> >,bool>

yes, but still what I'd argue is that the one needed is instead:

    class std::pair<std::_Rb_tree_iterator<std::pair<std::basic_string<char>,double> >,bool>

In C++, assignments (i.e. on return) between the former and latter work fine b/c the string always gets copied, so there's no issue with the difference in const-ness. I guess that's why the STL implementation chose to add the const in the iterator typedef for this case.

However, in the class-name parsing they end up being seen as different classes. And I believe correctly so. For example, any non-const operation (e.g. append()) would be not be allowed on iterator::first in the former case, whereas it would on the latter. Even (or especially so) in C++.

Now, I don't know how to convince Reflex to change the typedef that it found, but generating the dictionary for the class as suggested should hopefully work.

Best regards,

            Wim

-- 
WLavrijsen_at_lbl.gov    --    +1 (510) 486 6411    --    www.lavrijsen.net
Received on Tue Jan 31 2012 - 19:58:52 CET

This archive was generated by hypermail 2.2.0 : Tue Jan 31 2012 - 23:50:01 CET