00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 #ifndef MLN_TRAIT_ACCUMULATORS_HH
00027 # define MLN_TRAIT_ACCUMULATORS_HH
00028 
00032 
00033 # include <mln/trait/accumulator/props.hh>
00034 # include <mln/trait/undef.hh>
00035 
00036 
00038 # define mln_trait_accumulator_has_untake(A) typename mln::trait::accumulator_< A >::has_untake
00039 
00041 # define mln_trait_accumulator_has_set_value(A) typename mln::trait::accumulator_< A >::has_set_value
00042 
00044 # define mln_trait_accumulator_has_stop(A) typename mln::trait::accumulator_< A >::has_stop
00045 
00048 # define mln_trait_accumulator_when_pix(A) typename mln::trait::accumulator_< A >::when_pix
00049 
00050 
00051 
00052 namespace mln
00053 {
00054 
00055   namespace trait
00056   {
00057 
00058     template <typename A>
00059     struct undefined_accumulator_
00060     {
00061       typedef undef has_untake;
00062       typedef undef has_stop;
00063       typedef undef has_set_value;
00064       typedef accumulator::when_pix::not_ok when_pix;
00065     };
00066 
00067     template <typename A>
00068     struct accumulator_ : undefined_accumulator_<A>
00069     {
00070     };
00071 
00072 
00073   } 
00074 
00075 } 
00076 
00077 
00078 # include <mln/trait/accumulator/print.hh>
00079 
00080 
00081 #endif // ! MLN_TRAIT_ACCUMULATORS_HH