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