10#ifndef TEUCHOS_EXPAND_SCALAR_TYPE_MACROS_HPP 
   11#define TEUCHOS_EXPAND_SCALAR_TYPE_MACROS_HPP 
   22#ifdef HAVE_TEUCHOS_INST_FLOAT 
   23#  define TEUCHOS_MACRO_EXPAND_FLOAT(INSTANT_MACRO)\ 
   26#  define TEUCHOS_MACRO_EXPAND_FLOAT(INSTANT_MACRO) 
   30#define TEUCHOS_MACRO_EXPAND_DOUBLE(INSTANT_MACRO)\ 
   33#ifdef HAVE_TEUCHOS_INST_COMPLEX_FLOAT 
   34#  define TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(INSTANT_MACRO)\ 
   35     INSTANT_MACRO(std::complex<float>) 
   37#  define TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(INSTANT_MACRO) 
   41#ifdef HAVE_TEUCHOS_INST_COMPLEX_DOUBLE 
   42#  define TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(INSTANT_MACRO)\ 
   43     INSTANT_MACRO(std::complex<double>) 
   45#  define TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(INSTANT_MACRO) 
   48#ifdef HAVE_TEUCHOS_LONG_DOUBLE 
   49#  define TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(INSTANT_MACRO)\ 
   50     INSTANT_MACRO(long double) 
   52#  define TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(INSTANT_MACRO) 
   59#define TEUCHOS_MACRO_EXPAND_REAL_SCALAR_TYPES(MACRONAME) \ 
   60  TEUCHOS_MACRO_EXPAND_FLOAT(MACRONAME) \ 
   61  TEUCHOS_MACRO_EXPAND_DOUBLE(MACRONAME) 
   67#define TEUCHOS_MACRO_EXPAND_SCALAR_TYPES(MACRONAME)\ 
   68  TEUCHOS_MACRO_EXPAND_FLOAT(MACRONAME) \ 
   69  TEUCHOS_MACRO_EXPAND_DOUBLE(MACRONAME) \ 
   70  TEUCHOS_MACRO_EXPAND_COMPLEX_FLOAT(MACRONAME) \ 
   71  TEUCHOS_MACRO_EXPAND_COMPLEX_DOUBLE(MACRONAME) \ 
   72  TEUCHOS_MACRO_EXPAND_LONG_DOUBLE(MACRONAME) 
Macros for helping to templated classes create explicit instantiations.