All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
AIDA_visibility_hack.cpp
Go to the documentation of this file.
1 /*
2  * AIDA_visibility_hack.cpp
3  *
4  * Created on: Jan 27, 2009
5  * Author: Marco Clemencic
6  */
7 
8 #ifdef __ICC
9 // disable icc remark #177: declared but never referenced
10 #pragma warning(disable:177)
11 #elif __clang__
12 #pragma clang diagnostic ignored "-Wunused-variable"
13 #endif
14 
15 // For the GAUDI_API macro
16 #include "GaudiKernel/Kernel.h"
17 
18 // To avoid breaking STL
19 #include <string>
20 #include <vector>
21 
22 // Force visibility of the classes
23 #ifdef __clang__
24 #pragma clang diagnostic push
25 #pragma clang diagnostic ignored "-Wkeyword-macro"
26 #endif
27 #define class class GAUDI_API
28 #ifdef __clang__
29 #pragma clang diagnostic pop
30 #endif
31 #include <AIDA/IBaseHistogram.h>
32 #include <AIDA/IHistogram1D.h>
33 #include <AIDA/IHistogram2D.h>
34 #include <AIDA/IHistogram3D.h>
35 #include <AIDA/IProfile1D.h>
36 #include <AIDA/IProfile2D.h>
37 #include <AIDA/IAnnotation.h>
38 #include <AIDA/IAxis.h>
39 #undef class
40 
41 #include <typeinfo>
42 
43 using namespace AIDA;
44 
45 #define TI(x) const std::type_info& x##Info = typeid(x)
46 namespace {
47  TI(IBaseHistogram);
48  TI(IHistogram);
49  TI(IHistogram1D);
50  TI(IHistogram2D);
51  TI(IHistogram3D);
52  TI(IProfile);
53  TI(IProfile1D);
54  TI(IProfile2D);
55  TI(IAnnotation);
56  TI(IAxis);
57 }
#define TI(x)
GaudiKernel.
Definition: Fill.h:8