00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_FUNCTORS_HH_
00019 # define VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_FUNCTORS_HH_
00020
00021 # include <functional>
00022 # include <vaucanson/automata/implementation/bmig/initial_value.hh>
00023
00024 namespace vcsn
00025 {
00026 namespace bmig
00027 {
00028 template<typename T>
00029 struct update_label;
00030
00031 template<typename HState, typename Series>
00032 struct update_label<InitialValue<HState, Series> >
00033 : public std::unary_function<InitialValue<HState, Series>, void>
00034 {
00035 update_label(const Series& i_);
00036 void operator()(InitialValue<HState, Series>& key);
00037
00038 Series i;
00039 };
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 template<typename HLabel>
00051 struct update_hlabel : public std::unary_function<HLabel, void>
00052 {
00053 update_hlabel(const HLabel& i_);
00054 void operator()(HLabel &key);
00055
00056 HLabel i;
00057 };
00058
00059 }
00060 }
00061
00062 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00063 # include <vaucanson/automata/implementation/bmig/bmig_functors.hxx>
00064 # endif // !VCSN_USE_INTERFACE_ONLY || VCSN_USE_LIB
00065
00066 #endif // !VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_FUNCTORS_HH_
00067