00001 00012 #include "eleve/config.hpp" 00013 00014 #include "eleve/src/typing3.hpp" 00015 #include "eleve/src/typing1.hpp" 00016 00017 #include <boost/shared_ptr.hpp> 00018 00021 00031 00033 #define X_NULL0_FUNC2(x,y) x##_##y 00034 00036 #define X_NULL0_FUNC1(x,y) X_NULL0_FUNC2(x,y) 00037 00039 #define X_NULL0_FUNC(x) X_NULL0_FUNC1(x,__COUNTER__) 00040 00044 #define X_NULL0_PTR2(y,t) boost::shared_ptr<eepgwde::detail::null0< t > > y(new eepgwde::detail::null0< t >) 00045 00047 #define X_NULL0_PTR(y,x) \ 00048 eepgwde::detail::Renderer const * x = eepgwde::daemon::Q::instance().add( y.get() ) 00049 00051 #define X_NULL0_PTR3(y) X_NULL0_PTR(y,X_NULL0_FUNC(a)) 00052 00054 #define X_NULL0_PTR4(x, t) \ 00055 X_NULL0_PTR2(x, t); \ 00056 X_NULL0_PTR3(x) 00057 00058 #define X_NULL0_PTR1(t) X_NULL0_PTR4(X_NULL0_FUNC(b),t) 00059 00074 namespace null0_types { 00075 00079 00080 X_NULL0_PTR1(std::string); 00081 00082 X_NULL0_PTR1(char); 00083 X_NULL0_PTR1(unsigned char); 00084 X_NULL0_PTR1(short); 00085 X_NULL0_PTR1(unsigned short); 00086 00087 X_NULL0_PTR1(eepgwde::detail::usdate); 00088 X_NULL0_PTR1(eepgwde::detail::eudate); 00089 X_NULL0_PTR1(eepgwde::detail::posixdate); 00090 00091 X_NULL0_PTR1(int); 00092 X_NULL0_PTR1(unsigned long); 00093 X_NULL0_PTR1(long); 00094 X_NULL0_PTR1(long long); 00095 X_NULL0_PTR1(unsigned long long); 00096 00097 X_NULL0_PTR1(double); 00098 X_NULL0_PTR1(long double); 00099 X_NULL0_PTR1(float); 00100 00101 X_NULL0_PTR1(eepgwde::detail::rate); 00102 X_NULL0_PTR1(eepgwde::detail::bps); 00103 } 00104