Reloading a macro that uses STL map

Hello,

I presume this is a basic a question but I don’t seem to be able to find what the problem is.
I have the following macro :

[code]#include
#include
#include

using namespace std;

void testMacroReload(map<string, float> lastValues)
{
cout << “HELLO FROM MACRO” << endl;
}
[/code]

I can use it :

[quote]root [0] gROOT->LoadMacro(“testMacroReload.C”)
(Int_t)0
root [1] map<string,float> m
root [2] testMacroReload(m)
HELLO FROM MACRO
[/quote]

But I can’t reload it :

[quote]root [3] gROOT->LoadMacro(“testMacroReload.C”)
reloading /afs/cern.ch/user/b/bvonhall/root_dev/./testMacroReload.C 0
Error: Redefinition of default template argument /opt/root-5.34.30/cint/cint/stl/_map:22:
Error: Redefinition of default template argument /opt/root-5.34.30/cint/cint/stl/_map:22:
reloading map 0
reloading _map 0
reloading map.dll 0
reloading /opt/root-5.34.30/lib/libmapDict.so 0
reloading /opt/root-5.34.30/cint/cint/stl/map.dll 0
reloading /opt/root-5.34.30/lib/libXMLParser.so 0
reloading /opt/root-5.34.30/lib/libThread.so 0
reloading /opt/root-5.34.30/lib/libRIO.so 0
reloading /opt/root-5.34.30/lib/libGeom.so 0
reloading /opt/root-5.34.30/lib/libMatrix.so 0
reloading /opt/root-5.34.30/lib/libHist.so 0
reloading /opt/root-5.34.30/lib/libGraf.so 0
reloading /opt/root-5.34.30/lib/libGpad.so 0
reloading /opt/root-5.34.30/lib/libGraf3d.so 0
reloading /opt/root-5.34.30/lib/libEG.so 0
reloading /opt/root-5.34.30/lib/libVMC.so 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualPad/P010_TPad.C 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualX/P010_TGX11.C 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualX/P020_TGX11TTF.C 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualX/P030_TGWin32.C 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualX/P040_TGQt.C 0
reloading /opt/root-5.34.30/etc/plugins/TVirtualX/P050_TGQuartz.C 0
reloading /opt/root-5.34.30/lib/libGX11.so 0
reloading /opt/root-5.34.30/etc/plugins/TGuiFactory/P010_TRootGuiFactory.C 0
reloading /opt/root-5.34.30/etc/plugins/TGuiFactory/P020_TQtRootGuiFactory.C 0
reloading /opt/root-5.34.30/lib/libGui.so 0
reloading /opt/root-5.34.30/lib/libGX11TTF.so 0
reloading /opt/root-5.34.30/lib/libNet.so 0
reloading /opt/root-5.34.30/lib/libTree.so 0
reloading /opt/root-5.34.30/lib/libMinuit.so 0
reloading /opt/root-5.34.30/lib/libGenVector.so 0
reloading /opt/root-5.34.30/lib/libPhysics.so 0
reloading /opt/aliroot/lib/libSTEERBase.so 0
reloading /opt/aliroot/lib/libESD.so 0
reloading /opt/aliroot/lib/libRAWDatabase.so 0
reloading /opt/root-5.34.30/lib/libTreePlayer.so 0
reloading /opt/aliroot/lib/libRAWDatarec.so 0
reloading /opt/aliroot/lib/libCDB.so 0
reloading /opt/root-5.34.30/lib/libProof.so 0
reloading /opt/root-5.34.30/lib/libGeomPainter.so 0
reloading /opt/aliroot/lib/libAliHLTHOMER.so 0
reloading /opt/aliroot/lib/libHLTbase.so 0
reloading /opt/aliroot/lib/libANALYSIS.so 0
reloading /opt/aliroot/lib/libSTEER.so 0
reloading /opt/aliroot/lib/libTRDbase.so 0
reloading map2.dll 0
reloading /opt/root-5.34.30/lib/libmap2Dict.so 0
reloading _multimap 0
Warning: template pair duplicate definition /opt/root-5.34.30/cint/cint/stl/_pair.h:31:
Warning: template reverse_iterator duplicate definition /opt/root-5.34.30/cint/cint/stl/_iterator.h:269:
Warning: template multimap duplicate definition /opt/root-5.34.30/cint/cint/stl/_multimap.h:36:
reloading multimap.dll 0
reloading /opt/root-5.34.30/lib/libmultimapDict.so 0
reloading multimap2.dll 0
reloading /opt/root-5.34.30/lib/libmultimap2Dict.so 0
reloading _multimap.h 0
reloading defalloc.h 0
reloading new.h 0
reloading stdio.h 0
reloading stdfunc.dll 0
reloading stddef.h 0
reloading stdlib.h 0
reloading limits.h 0
reloading algobase.h 0
reloading _pair.h 0
reloading _iterator 0
reloading _iterator.h 0
reloading tree.h 0
reloading function.h 0
reloading projectn.h 0
reloading /opt/root-5.34.30/cint/cint/stl/vectorbool.dll 0
reloading /opt/root-5.34.30/cint/cint/stl/vector.dll 0
reloading /opt/root-5.34.30/lib/libvectorDict.so 0

*** Break *** segmentation violation

===========================================================
There was a crash.
This is the entire stack trace of all threads:

#0 0x00000035062ac61e in waitpid () from /lib64/libc.so.6
#1 0x000000350623e609 in do_system () from /lib64/libc.so.6
#2 0x00007f9f94227328 in TUnixSystem::StackTrace() () from /opt/root-5.34.30/lib/libCore.so.5.34
#3 0x00007f9f942261a3 in TUnixSystem::DispatchSignals(ESignals) () from /opt/root-5.34.30/lib/libCore.so.5.34
#4
#5 0x00007f9f9343c09e in Cint::G__MethodInfo::InterfaceMethod() () from /opt/root-5.34.30/lib/libCint.so.5.34
#6 0x00007f9f941e3739 in TCint::MethodInfo_InterfaceMethod(void*) const () from /opt/root-5.34.30/lib/libCore.so.5.34
#7 0x00007f9f941ecdfd in TCint::UpdateListOfGlobalFunctions() () from /opt/root-5.34.30/lib/libCore.so.5.34
#8 0x00007f9f941916a7 in TROOT::LoadMacro(char const*, int*, bool) () from /opt/root-5.34.30/lib/libCore.so.5.34
#9 0x00007f9f943cd00b in G__G__Base2_296_0_104(G__value*, char const*, G__param*, int) () from /opt/root-5.34.30/lib/libCore.so.5.34
#10 0x00007f9f93431b99 in Cint::G__ExceptionWrapper(int ()(G__value, char const*, G__param*, int), G__value*, char*, G__param*, int) () from /opt/root-5.34.30/lib/libCint.so.5.34
#11 0x00007f9f934db141 in G__execute_call () from /opt/root-5.34.30/lib/libCint.so.5.34
#12 0x00007f9f934dbf82 in G__call_cppfunc () from /opt/root-5.34.30/lib/libCint.so.5.34
#13 0x00007f9f934ba988 in G__interpret_func () from /opt/root-5.34.30/lib/libCint.so.5.34
#14 0x00007f9f934a86dc in G__getfunction () from /opt/root-5.34.30/lib/libCint.so.5.34
#15 0x00007f9f9358daca in G__getstructmem(int, G__FastAllocString&, char*, int, char*, int*, G__var_array*, int) () from /opt/root-5.34.30/lib/libCint.so.5.34
#16 0x00007f9f9358629e in G__getvariable () from /opt/root-5.34.30/lib/libCint.so.5.34
#17 0x00007f9f934868ed in G__getitem () from /opt/root-5.34.30/lib/libCint.so.5.34
#18 0x00007f9f9348bbe8 in G__getexpr () from /opt/root-5.34.30/lib/libCint.so.5.34
#19 0x00007f9f93507bc7 in G__exec_statement () from /opt/root-5.34.30/lib/libCint.so.5.34
#20 0x00007f9f93473651 in G__exec_tempfile_core () from /opt/root-5.34.30/lib/libCint.so.5.34
#21 0x00007f9f9347394e in G__exec_tempfile_fp () from /opt/root-5.34.30/lib/libCint.so.5.34
#22 0x00007f9f935136b9 in G__process_cmd () from /opt/root-5.34.30/lib/libCint.so.5.34
#23 0x00007f9f941e7ee6 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /opt/root-5.34.30/lib/libCore.so.5.34
#24 0x00007f9f9414d9c0 in TApplication::ProcessLine(char const*, bool, int*) () from /opt/root-5.34.30/lib/libCore.so.5.34
#25 0x00007f9f93d9afcb in TRint::HandleTermInput() () from /opt/root-5.34.30/lib/libRint.so.5.34
#26 0x00007f9f9422483e in TUnixSystem::CheckDescriptors() () from /opt/root-5.34.30/lib/libCore.so.5.34
#27 0x00007f9f94224b23 in TUnixSystem::DispatchOneEvent(bool) () from /opt/root-5.34.30/lib/libCore.so.5.34
#28 0x00007f9f941a6e46 in TSystem::InnerLoop() () from /opt/root-5.34.30/lib/libCore.so.5.34
#29 0x00007f9f941a88cb in TSystem::Run() () from /opt/root-5.34.30/lib/libCore.so.5.34
#30 0x00007f9f9414ac8f in TApplication::Run(bool) () from /opt/root-5.34.30/lib/libCore.so.5.34
#31 0x00007f9f93d9c534 in TRint::Run(bool) () from /opt/root-5.34.30/lib/libRint.so.5.34
#32 0x000000000040103c in main ()

The crash is most likely caused by a problem in your script.
Try to compile it (.L myscript.C+g) and fix any errors.
If that does not help then please submit a bug report at
root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.

[/quote]

Why is that ?

Thank you
Barth

EDIT: I use ROOT 5

bump

Same question (3 years old, for "#include ") here: “[url=https://root-forum.cern.ch/t/template-pair-reverse-iterator-vector-duplicate-definition/17357/1 pair, reverse_iterator, vector duplicate definition[/url]”