formatters.hpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009  ** Ifdefs
00010  *****************************************************************************/
00011 
00012 #ifndef ECL_CONTAINERS_STENCIL_FORMATTERS_HPP_
00013 #define ECL_CONTAINERS_STENCIL_FORMATTERS_HPP_
00014 
00015 /*****************************************************************************
00016  ** Includes
00017  *****************************************************************************/
00018 
00019 #include <cmath>
00020 #include <ecl/config/macros.hpp>
00021 #include <ecl/formatters/common.hpp>
00022 #include <ecl/formatters/number.hpp>
00023 #include <ecl/formatters/floats.hpp>
00024 #include <ecl/mpl/enable_if.hpp>
00025 #include <ecl/type_traits/fundamental_types.hpp>
00026 #include "../common/formatters.hpp"
00027 
00028 /*****************************************************************************
00029  ** Namespaces
00030  *****************************************************************************/
00031 
00032 namespace ecl
00033 {
00034 
00035 /*****************************************************************************
00036  ** Forward Declarations
00037  *****************************************************************************/
00038 
00039 template<typename Container>
00040   class Stencil;
00041 
00042 /*****************************************************************************
00043  ** Namespaces
00044  *****************************************************************************/
00045 
00046 namespace formatters
00047 {
00048 
00049 /*****************************************************************************
00050  ** Using
00051  *****************************************************************************/
00052 
00071 template<typename ValueType, typename Container, typename Enable = void>
00072 class ECL_PUBLIC StencilFormatter
00073 {
00074 public:
00075   virtual ~StencilFormatter()
00076   {}
00083   const ecl::Stencil< Container >& operator()(const ecl::Stencil< Container > &stencil) {
00084     return stencil;
00085   }
00086   //ecl::Stencil< Container >& operator()(const ecl::Stencil< Container > &stencil) { return stencil;} // this was the old version - couldn't do in place format(xxx.stencil()) commands
00087 };
00088 
00089 /*****************************************************************************
00090  ** Specialisations
00091  *****************************************************************************/
00092 
00102 template <typename ValueType, typename Container>
00103 class ECL_PUBLIC StencilFormatter< ValueType, Container, typename ecl::enable_if< ecl::is_float<ValueType> >::type > : public FloatContainerFormatter< ecl::Stencil< Container > >
00104 {
00105 public:
00114   StencilFormatter(const int p=2, const int w=-1) : FloatContainerFormatter< ecl::Stencil< Container > >(p,w) {};
00115   virtual ~StencilFormatter()
00116   {}
00117 };
00118 
00119 } // namespace formatters
00120 } // namespace ecl
00121 
00122 #endif /* ECL_CONTAINERS_STENCIL_FORMATTERS_HPP_ */


ecl_containers
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:25