From c75fcc040a0da3afd16d69501ce59db8de968d7f Mon Sep 17 00:00:00 2001
From: scott snyder <scott.snyder@cern.ch>
Date: Thu, 15 Nov 2018 21:04:27 +0100
Subject: [PATCH] AtlasSTLAddReflex: Tweak selection rules for gcc 8.2.1.

In gcc 8.2.1, std::pair derives from std::__pair_base.
Tweak selection rules so that we generate dictionaries for both, if present.
Avoids root streamer warnings about missing dictionaries.


Former-commit-id: c90342448198e27890dc0684159714e9c90d9b99
---
 .../AtlasSTLAddReflex/AtlasSTLAddReflexDict.h      | 10 ++++++++--
 .../AtlasSTLAddReflex/selection.xml                | 14 +++++++-------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/AtlasSTLAddReflexDict.h b/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/AtlasSTLAddReflexDict.h
index 4cb635362bd..0824bc453b6 100755
--- a/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/AtlasSTLAddReflexDict.h
+++ b/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/AtlasSTLAddReflexDict.h
@@ -1,7 +1,7 @@
 // dear emacs, this is -*- C++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 // Some common classes for general use in ATLAS
@@ -17,4 +17,10 @@
 #include <boost/array.hpp>
 
 
-
+template struct std::pair<unsigned int, unsigned int>;
+template struct std::pair<std::string, unsigned int>;
+template struct std::pair<std::string, std::vector<int> >;
+template struct std::pair<std::string, std::vector<double> >;
+template struct std::pair<std::pair<std::string, unsigned int>, std::pair<std::string, unsigned int> >;
+template struct std::pair<unsigned int, std::vector<float> >;
+template struct std::pair<unsigned int, std::vector<unsigned int> >;
diff --git a/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/selection.xml b/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/selection.xml
index 49b4807ffbf..140dff74f6b 100755
--- a/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/selection.xml
+++ b/Database/AtlasSTLAddReflex/AtlasSTLAddReflex/selection.xml
@@ -1,13 +1,13 @@
 <lcgdict>
 
-  <class name="std::pair<unsigned int, unsigned int>" />
-  <class name="std::pair<std::string, unsigned int>" />
-  <class name="std::pair<std::string, std::vector<int> >"/>
-  <class name="std::pair<std::string, std::vector<double> >"/>
+  <class pattern="std::*pair*<unsigned int, unsigned int>" />
+  <class pattern="std::*pair*<std::string, unsigned*" />
+  <class pattern="std::*pair*<*string*vector<int*"/>
+  <class pattern="std::*pair*<*string*vector<double*"/>
   
-  <class name="std::pair<std::pair<std::string, unsigned int>, std::pair<std::string, unsigned int> >"/>
-  <class name="std::pair<unsigned int, std::vector<float> >"/>
-  <class name="std::pair<unsigned int, std::vector<unsigned int> >"/>
+  <class pattern="std::*pair*<std::pair<std::string, unsigned int>, std::pair<std::string, unsigned int> >"/>
+  <class pattern="std::*pair*<unsigned int, std::vector<float*"/>
+  <class pattern="std::*pair*<unsigned int, std::vector<unsigned int*"/>
   
   <class name="std::vector<long long>"/>
   <class name="std::vector<unsigned long long>"/>
-- 
GitLab