42 #ifndef TEUCHOS_EXPAND_SCALAR_TYPE_MACROS_HPP
43 #define TEUCHOS_EXPAND_SCALAR_TYPE_MACROS_HPP
54 #ifdef HAVE_TEUCHOS_INST_FLOAT
55 # define TEUCHOS_MACRO_EXPAND_FLOAT(INSTANT_MACRO)\
58 # define TEUCHOS_MACRO_EXPAND_FLOAT(INSTANT_MACRO)
62 #define TEUCHOS_MACRO_EXPAND_DOUBLE(INSTANT_MACRO)\
65 #ifdef HAVE_TEUCHOS_INST_COMPLEX_FLOAT
66 # define TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(INSTANT_MACRO)\
67 INSTANT_MACRO(std::complex<float>)
69 # define TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(INSTANT_MACRO)
73 #ifdef HAVE_TEUCHOS_INST_COMPLEX_DOUBLE
74 # define TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(INSTANT_MACRO)\
75 INSTANT_MACRO(std::complex<double>)
77 # define TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(INSTANT_MACRO)
80 #ifdef HAVE_TEUCHOS_LONG_DOUBLE
81 # define TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(INSTANT_MACRO)\
82 INSTANT_MACRO(long double)
84 # define TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(INSTANT_MACRO)
91 #define TEUCHOS_MACRO_EXPAND_REAL_SCALAR_TYPES(MACRONAME) \
92 TEUCHOS_MACRO_EXPAND_FLOAT(MACRONAME) \
93 TEUCHOS_MACRO_EXPAND_DOUBLE(MACRONAME)
99 #define TEUCHOS_MACRO_EXPAND_SCALAR_TYPES(MACRONAME)\
100 TEUCHOS_MACRO_EXPAND_FLOAT(MACRONAME) \
101 TEUCHOS_MACRO_EXPAND_DOUBLE(MACRONAME) \
102 TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(MACRONAME) \
103 TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(MACRONAME) \
104 TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(MACRONAME)
107 #endif // TEUCHOS_EXPAND_SCALAR_TYPE_MACROS_HPP
Macros for helping to templated classes create explicit instantiations.