Re: ROOT / Athena standard problem with (nested) templates (map + set)

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Fri, 8 Jun 2012 11:14:06 -0500


Hi,

So the problem is that a partial dictionary for set<unsigned int> is loaded that interferes with the proper operations. You could to explicitly generate it before hand by doing:

      gInterpreter->GenerateDictionary("set<unsigned int>","set");

Cheers,
Philippe.

On 6/8/12 11:08 AM, Alexander Mann wrote:
>
> Hi Philippe,
>
> file is attached.
>
> (Actually, if you change the 2nd line in this file manually to
>
> > #include "set"
>
> and rerun, it works, but fails at a later stage when trying e.g.
>
> > ttest.var[0]->insert(3);)
>
> cu
> Alexander
>
>
> On 06/08/2012 05:48 PM, Philippe Canal wrote:
>> HI Alexander,
>>
>> I can not reproduce the problem.
>> What is the content of:
>>
>> AutoDict_map_unsigned_int_set_unsigned_int___less_unsigned_int__allocator_pair_const_unsigned_int_set_unsigned_int_______.cxx
>>
>>
>> ?
>>
>> Philippe.
>>
>> On 6/8/12 4:12 AM, Alexander Mann wrote:
>>>
>>> Hi,
>>>
>>> remind me, please: How can I use this in a ROOT macro:
>>>
>>> std::map<unsigned int, std::set<unsigned int>* > var;
>>>
>>> It works in ROOT 5.32.00, but as soon as Athena (17.5.0 -> ROOT:
>>> /afs/cern.ch/atlas/software/releases/17.5.0/LCGCMT/LCGCMT_62a/InstallArea/x86_64-slc5-gcc43-opt/bin/root)
>>> comes into the game, it spits out pages of error messages, starting with
>>>
>>> AutoDict_map_unsigned_int_set_unsigned_int___less_unsigned_int__allocator_pair_const_unsigned_int_set_unsigned_int_______.cxx:2:
>>> error: 'set' is not a template
>>> [...]
>>>
>>> Full example attached. Any help appreciated.
>>>
>>> cu
>>> Alexander
>>>
>>> PS: .L template_test.C+ works in both cases.
>
Received on Fri Jun 08 2012 - 18:14:14 CEST

This archive was generated by hypermail 2.2.0 : Fri Jun 08 2012 - 23:50:02 CEST