synaps/arithm/traits.h

00001 #ifndef ARITHM_TRAITS_H
00002 #define ARITHM_TRAITS_H
00003 
00004 #include <synaps/init.h>
00005 #include <synaps/base/type.h>
00006 #include <synaps/arithm/let.h>
00007 #include <complex>
00008 __BEGIN_NAMESPACE_SYNAPS
00009 
00010 #define simple_trait(name,default)\
00011 template< typename X > struct name##_ { typedef default T; };\
00012 template< typename X > struct name { typedef typename name##_< typename type::ucstref<X>::T >::T T; };\
00013 
00014 namespace arithm {  using namespace type; };
00015 using namespace arithm;
00016 
00017 
00018 __END_NAMESPACE_SYNAPS
00019 
00020 #include "traits/structureof.h"
00021 #include "traits/kernelof.h"
00022 #include "traits/issubsetof.h"
00023 #include "traits/sup.h"
00024 #include "traits/ringof.h"
00025 #include "traits/fieldof.h"
00026 
00027 #include "traits/isring.h"
00028 #include "traits/isfield.h"
00029 #include "traits/isexact.h"
00030 
00031 #include "traits/isinteger.h"
00032 #include "traits/isrational.h"
00033 #include "traits/isfloating.h"
00034 #include "traits/isieee.h"
00035 
00036 #include "traits/integerof.h"
00037 #include "traits/rationalof.h"
00038 #include "traits/floatingof.h"
00039 #include "traits/ieeeof.h"
00040 #include "traits/realof.h"
00041 
00042 #include "traits/hasfunction.h"
00043 #include "traits/hasproperty.h"
00044 
00045 
00046 
00047  
00048 
00049 #endif
00050 

SYNAPS DOCUMENTATION
logo