27 #ifndef MLN_CORE_ALIAS_POINT1D_HH
28 # define MLN_CORE_ALIAS_POINT1D_HH
35 # include <mln/core/def/coord.hh>
36 # include <mln/core/def/coordf.hh>
37 # include <mln/core/point.hh>
39 # include <mln/core/concept/site_proxy.hh>
40 # include <mln/core/internal/force_exact.hh>
54 typedef point<grid::tick, def::coord>
point1d;
65 typedef point<grid::tick, def::coordf> point1df;
75 template <
typename C,
typename E>
81 typedef const C& ind_t;
84 const C& operator[](
unsigned i)
const;
85 const C& last_coord()
const;
87 const E& exact_()
const;
94 template <
typename C,
typename E>
104 using super_::operator[];
105 C& operator[](
unsigned i);
110 # ifndef MLN_INCLUDE_ONLY
114 template <
typename C,
typename E>
119 return exact_().get_subject().ind();
122 template <
typename C,
typename E>
127 mln_precondition(i == 0);
129 return exact_().get_subject()[0];
132 template <
typename C,
typename E>
137 return internal::force_exact<const E>(*this);
142 template <
typename C,
typename E>
147 return exact_().get_subject().ind();
150 template <
typename C,
typename E>
155 mln_precondition(i == 0);
157 return exact_().get_subject()[0];
160 # endif // ! MLN_INCLUDE_ONLY
167 # include <mln/core/alias/dpoint1d.hh>
170 #endif // ! MLN_CORE_ALIAS_POINT1D_HH