Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-5730

STLttypes are defined with inconsistent enums in TClassEdit and TStreamerElement,resulting in incorrect include statement generation when using MakeProject

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: 5.34/00
    • Fix Version/s: None
    • Component/s: Core Libraries, I/O
    • Labels:
      None
    • Environment:

      Linux

      Description

      In TClassEdit and TDictionary there are enums which define Multimap=5 and Set=6. In TStreamerElement these are reversed. The result of this is that when saving a set<> object to a tree the stltype is incorrectly set. This results in MakeProject generating a #inclde multimap line instead of #include set. ( Incidentally, for a multimap stl object the correct include would anyway be #include map). I have fixed it by making all the enums consistent. I did this by reversing the definitions of set and multimap in TStreamerElement.h, but I don't know if that might have other consequences. This appears to be new in patch 10 of v 5.34 where the code in TStreamerInfo::Build() has been modified to use a new constructor in TStreamerSTL which uses a TVirtualCollectionProxy.

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              afinch Alex Finch
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: