00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TEUCHOS_EXPLICIT_INSTANTIATION_HELPERS_HPP
00030 #define TEUCHOS_EXPLICIT_INSTANTIATION_HELPERS_HPP
00031
00032
00039 #include "Teuchos_ConfigDefs.hpp"
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #define TEUCHOS_MACRO_TEMPLATE_INSTANT_FLOAT(INSTANT_MACRO)\
00054 INSTANT_MACRO(float)
00055 #define TEUCHOS_CLASS_TEMPLATE_INSTANT_FLOAT(CLASSNAME)\
00056 template class CLASSNAME<float>;
00057
00058 #define TEUCHOS_MACRO_TEMPLATE_INSTANT_DOUBLE(INSTANT_MACRO)\
00059 INSTANT_MACRO(double)
00060 #define TEUCHOS_CLASS_TEMPLATE_INSTANT_DOUBLE(CLASSNAME)\
00061 template class CLASSNAME<double>;
00062
00063 #ifdef HAVE_TEUCHOS_COMPLEX
00064
00065 # define TEUCHOS_MACRO_TEMPLATE_INSTANT_COMPLEX_FLOAT(INSTANT_MACRO)\
00066 INSTANT_MACRO(std::complex<float>)
00067 # define TEUCHOS_CLASS_TEMPLATE_INSTANT_COMPLEX_FLOAT(CLASSNAME)\
00068 template class CLASSNAME<std::complex<float> >;
00069
00070 # define TEUCHOS_MACRO_TEMPLATE_INSTANT_COMPLEX_DOUBLE(INSTANT_MACRO)\
00071 INSTANT_MACRO(std::complex<double>)
00072 # define TEUCHOS_CLASS_TEMPLATE_INSTANT_COMPLEX_DOUBLE(CLASSNAME)\
00073 template class CLASSNAME<std::complex<double> >;
00074
00075 #endif
00076
00077
00080 #define TEUCHOS_MACRO_TEMPLATE_INSTANT_SCALAR_TYPES(MACRONAME)\
00081 TEUCHOS_MACRO_TEMPLATE_INSTANT_FLOAT(MACRONAME) \
00082 TEUCHOS_MACRO_TEMPLATE_INSTANT_DOUBLE(MACRONAME) \
00083 TEUCHOS_MACRO_TEMPLATE_INSTANT_COMPLEX_FLOAT(MACRONAME) \
00084 TEUCHOS_MACRO_TEMPLATE_INSTANT_COMPLEX_DOUBLE(MACRONAME)
00085
00086
00089 #define TEUCHOS_CLASS_TEMPLATE_INSTANT_SCALAR_TYPES(CLASSNAME)\
00090 TEUCHOS_CLASS_TEMPLATE_INSTANT_FLOAT(CLASSNAME) \
00091 TEUCHOS_CLASS_TEMPLATE_INSTANT_DOUBLE(CLASSNAME) \
00092 TEUCHOS_CLASS_TEMPLATE_INSTANT_COMPLEX_FLOAT(CLASSNAME) \
00093 TEUCHOS_CLASS_TEMPLATE_INSTANT_COMPLEX_DOUBLE(CLASSNAME)
00094
00095
00096 #endif // TEUCHOS_EXPLICIT_INSTANTIATION_HELPERS_HPP