typing3.hpp File Reference

#include "eleve/config.hpp"
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits.hpp>
#include <boost/date_time/gregorian/formatters.hpp>
#include "eleve/src/typing0.hpp"

Go to the source code of this file.

Namespaces

namespace  eepgwde
namespace  eepgwde::detail
namespace  eepgwde::detail::i0

Functions

template<typename U>
enable_if
< boost::is_arithmetic< U >, U >
::type 
eepgwde::detail::i0::null1 (dummy< 0 >=0)
 Any numeric types: use the system minimum.
template<typename U>
disable_if_c
< boost::is_base_of
< boost::any, U >::value||boost::is_arithmetic
< U >::value||boost::is_arithmetic
< typename U::value_type >
::value||boost::is_base_of
< std::string, U >::value||!(boost::has_trivial_default_constructor
< U >::value), U >::type 
eepgwde::detail::i0::null1 (dummy< 1 >=1)
template<typename U>
std::string eepgwde::detail::i0::ys (typename enable_if< boost::is_base_of< boost::any, U >, U >::type, const boost::any &o, dummy< 0 >=0) throw (std::domain_error &)
 Double dispatch.
template<typename U>
std::string eepgwde::detail::i0::ys (typename enable_if< boost::is_arithmetic< U >, U >::type, const boost::any &o, dummy< 0 >=0) throw (std::domain_error &)
template<typename U>
std::string eepgwde::detail::i0::ys (typename enable_if< boost::is_arithmetic< typename U::value_type >, U >::type, const boost::any &o, dummy< 0 >=0) throw (std::domain_error &)
template<typename U>
std::string eepgwde::detail::i0::ys (typename enable_if_c< boost::is_base_of< boost::gregorian::date, U >::value &&!(boost::is_same< boost::gregorian::date, U >::value), U >::type, const boost::any &o, dummy< 0 >=0) throw (std::domain_error &)
template<typename U>
enable_if
< boost::is_arithmetic
< typename U::scaling_type >
, dummy< 0 > >::type 
eepgwde::detail::i0::scale0 (U &u)
template<typename U>
eepgwde::detail::i0::xs (typename enable_if< boost::is_base_of< is_Numeric, U >, U >::type, const std::string &s, dummy< 0 >=1) throw (std::domain_error &)
 A visitor method - prototype for dummy<0> in typing1.hpp.
template<typename U>
eepgwde::detail::i0::xs (typename enable_if< boost::is_arithmetic< U >, U >::type, const std::string &s, dummy< 0 >=1) throw (std::domain_error &)
 A visitor method - prototype for dummy<0> in typing1.hpp.
template<typename U>
eepgwde::detail::i0::xs (typename enable_if< boost::is_base_of< std::string, U >, U >::type, const std::string &s, dummy< 0 >=1) throw (std::domain_error &)
 A visitor method - prototype for dummy<0> in typing1.hpp.
template<typename U>
eepgwde::detail::i0::xs (typename enable_if< boost::is_same< boost::any, U >, U >::type, const std::string &s, dummy< 0 >=1) throw (std::domain_error &)
 A visitor method - prototype for dummy<0> in typing1.hpp.
template<typename U>
eepgwde::detail::i0::xs (typename enable_if< boost::is_base_of< boost::gregorian::date, U >, U >::type, const std::string &s, dummy< 0 >=1) throw (std::domain_error &)
 A visitor method - prototype for dummy<0> in typing1.hpp.


Detailed Description

Author:
typing3.hpp
Implementation templates for null1(), ys() and xs() functions. These are all rused by the as() and null0 methods and classes.

This is the difficult bit. See scalt5.cpp for how extra classes are added. You add a null1 function, a to string function ys and a from string function xs.

The definitions here should not get in your way. They should all be template specializations. If you do get issues, you can make your own copy of this header file and use that.

Then you would define your own null1, ys and xs methods. Then load typing1.hpp to define your versions of the methods.

Definition in file typing3.hpp.


Generated on Thu Feb 18 21:30:12 2010 for eleve by  doxygen 1.5.6