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_FUN_META_INTY_HH
00027 # define MLN_FUN_META_INTY_HH
00028
00032
00033 # include <mln/value/hsi.hh>
00034 # include <mln/fun/meta/impl.hh>
00035
00036 namespace mln
00037 {
00038
00039 namespace meta
00040 {
00041
00042 template <class H>
00043 struct inty : impl< inty<H> >
00044 {
00045 typedef H value;
00046 };
00047
00048 }
00049
00050
00051 template <class H, class S, class I>
00052 struct function< meta::inty< value::hsi_<H, S, I> > >
00053 : public Function_v2v<function< meta::inty < value::hsi_<H, S, I> > > >
00054 {
00055 typedef value::hsi_<H, S, I> value;
00056
00057 typedef H result;
00058 H read(const value& h);
00059
00060 typedef H& lresult;
00061 H& write(value& h);
00062 };
00063
00064
00065 # ifndef MLN_INCLUDE_ONLY
00066
00067 template <class H, class S, class I>
00068 inline
00069 H
00070 function< meta::inty< value::hsi_<H, S, I> > >::read(const value& h)
00071 {
00072 return h.inty();
00073 }
00074
00075 template <class H, class S, class I>
00076 inline
00077 H&
00078 function< meta::inty< value::hsi_<H, S, I> > >::write(value& h)
00079 {
00080 return h.inty();
00081 }
00082
00083 # endif // ! MLN_INCLUDE_ONLY
00084
00085
00086 }
00087
00088 #endif // ! MLN_FUN_META_INTY_HH