00001
00002
00003 #include "AthContainers/UserDataStore.h"
00004 #include "AthContainers/AuxTypeRegistry.h"
00005 #include "AthContainers/AuxVectorData.h"
00006 #include "AthContainers/AuxVectorBase.h"
00007 #include "AthContainers/AuxElement.h"
00008 #include "AthContainersInterfaces/IAuxElement.h"
00009 #include "AthContainersInterfaces/IAuxStore.h"
00010 #include "AthContainersInterfaces/IConstAuxStore.h"
00011 #include "AthContainersInterfaces/IAuxStoreIO.h"
00012 #include "AthContainersInterfaces/IAuxStoreHolder.h"
00013 #include "AthContainersInterfaces/IAuxSetOption.h"
00014 #include "AthContainers/AuxStoreInternal.h"
00015 #include "AthContainers/OwnershipPolicy.h"
00016 #include "AthContainers/PackedParameters.h"
00017 #include "AthContainers/PackedContainer.h"
00018 #include "AthLinks/DataLink.h"
00019
00020
00021 struct AthContainersInstan
00022 {
00023 std::pair<SG::auxid_set_t::iterator, bool> p1;
00024 std::pair<SG::auxid_set_t::const_iterator, bool> p2;
00025 };
00026
00027
00028 inline bool
00029 operator!=(const CxxUtils_Internal::hashtable_iterator<unsigned long, true, false>& x,
00030 const CxxUtils_Internal::hashtable_iterator<unsigned long, true, false>& y)
00031 {
00032 typedef CxxUtils_Internal::hashtable_iterator_base<unsigned long, false> base;
00033 return static_cast<const base&>(x) != static_cast<const base&>(y);
00034 }
00035
00036 inline bool
00037 operator!=(const CxxUtils_Internal::hashtable_const_iterator<unsigned long, true, false>& x,
00038 const CxxUtils_Internal::hashtable_const_iterator<unsigned long, true, false>& y)
00039 {
00040 typedef CxxUtils_Internal::hashtable_iterator_base<unsigned long, false> base;
00041 return static_cast<const base&>(x) != static_cast<const base&>(y);
00042 }
00043
00044
00045 inline bool
00046 operator==(const CxxUtils_Internal::hashtable_iterator<unsigned long, true, false>& x,
00047 const CxxUtils_Internal::hashtable_iterator<unsigned long, true, false>& y)
00048 {
00049 typedef CxxUtils_Internal::hashtable_iterator_base<unsigned long, false> base;
00050 return static_cast<const base&>(x) == static_cast<const base&>(y);
00051 }
00052
00053 inline bool
00054 operator==(const CxxUtils_Internal::hashtable_const_iterator<unsigned long, true, false>& x,
00055 const CxxUtils_Internal::hashtable_const_iterator<unsigned long, true, false>& y)
00056 {
00057 typedef CxxUtils_Internal::hashtable_iterator_base<unsigned long, false> base;
00058 return static_cast<const base&>(x) == static_cast<const base&>(y);
00059 }
00060
00061
00062 namespace {
00063 struct GCCXML_DUMMY_INSTANTIATION_ATHCONTAINERS {
00064 DataLink<SG::IConstAuxStore> dummy1;
00065
00066 SG::PackedContainer<char> pchar;
00067 SG::PackedContainer<unsigned char> puchar;
00068 SG::PackedContainer<short> pshort;
00069 SG::PackedContainer<unsigned short> pushort;
00070 SG::PackedContainer<int> pint;
00071 SG::PackedContainer<unsigned int> puint;
00072 SG::PackedContainer<float> pfloat;
00073 SG::PackedContainer<double> pdouble;
00074
00075 SG::PackedContainer<std::vector<char> > pvchar;
00076 SG::PackedContainer<std::vector<unsigned char> > pvuchar;
00077 SG::PackedContainer<std::vector<short> > pvshort;
00078 SG::PackedContainer<std::vector<unsigned short> > pvushort;
00079 SG::PackedContainer<std::vector<int> > pvint;
00080 SG::PackedContainer<std::vector<unsigned int> > pvuint;
00081 SG::PackedContainer<std::vector<float> > pvfloat;
00082 SG::PackedContainer<std::vector<double> > pvdouble;
00083
00084 SG::PackedContainer<std::vector<std::vector<char> > > pvvchar;
00085 SG::PackedContainer<std::vector<std::vector<unsigned char> > > pvvuchar;
00086 SG::PackedContainer<std::vector<std::vector<short> > > pvvshort;
00087 SG::PackedContainer<std::vector<std::vector<unsigned short> > > pvvushort;
00088 SG::PackedContainer<std::vector<std::vector<int> > > pvvint;
00089 SG::PackedContainer<std::vector<std::vector<unsigned int> > > pvvuint;
00090 SG::PackedContainer<std::vector<std::vector<float> > > pvvfloat;
00091 SG::PackedContainer<std::vector<std::vector<double> > > pvvdouble;
00092 };
00093 }
00094
00095 #define ARGS1 (const std::string&)
00096 #define ARGS2 (const std::string&, const std::string&)
00097 #define INSTAN_TYPE(TYP) \
00098 template class SG::AuxElement::ConstAccessor<TYP>; \
00099 template class SG::AuxElement::Accessor<TYP>; \
00100 template class SG::AuxElement::Decorator<TYP>; \
00101 template TYP& SG::AuxElement::auxdata<TYP> ARGS1; \
00102 template TYP& SG::AuxElement::auxdata<TYP> ARGS2; \
00103 template const TYP& SG::AuxElement::auxdata<TYP> ARGS1 const; \
00104 template const TYP& SG::AuxElement::auxdata<TYP> ARGS2 const; \
00105 template const TYP& SG::AuxElement::auxdataConst<TYP> ARGS1 const; \
00106 template const TYP& SG::AuxElement::auxdataConst<TYP> ARGS2 const; \
00107 template TYP& SG::AuxElement::auxdecor<TYP> ARGS1 const; \
00108 template TYP& SG::AuxElement::auxdecor<TYP> ARGS2 const
00109
00110 INSTAN_TYPE(char);
00111 INSTAN_TYPE(unsigned char);
00112 INSTAN_TYPE(int);
00113 INSTAN_TYPE(short);
00114 INSTAN_TYPE(long);
00115 INSTAN_TYPE(unsigned int);
00116 INSTAN_TYPE(unsigned short);
00117 INSTAN_TYPE(unsigned long);
00118 INSTAN_TYPE(unsigned long long);
00119 INSTAN_TYPE(float);
00120 INSTAN_TYPE(double);
00121 INSTAN_TYPE(bool);
00122 INSTAN_TYPE(std::string);
00123
00124 INSTAN_TYPE(std::vector<char>);
00125 INSTAN_TYPE(std::vector<unsigned char>);
00126 INSTAN_TYPE(std::vector<int>);
00127 INSTAN_TYPE(std::vector<short>);
00128 INSTAN_TYPE(std::vector<long>);
00129 INSTAN_TYPE(std::vector<unsigned int>);
00130 INSTAN_TYPE(std::vector<unsigned short>);
00131 INSTAN_TYPE(std::vector<unsigned long>);
00132 INSTAN_TYPE(std::vector<unsigned long long>);
00133 INSTAN_TYPE(std::vector<float>);
00134 INSTAN_TYPE(std::vector<double>);
00135 INSTAN_TYPE(std::vector<bool>);
00136 INSTAN_TYPE(std::vector<std::string>);
00137
00138 #undef ARGS1
00139 #undef ARGS2
00140 #undef INSTAN_TYPE