@@ -106,29 +106,34 @@ template <typename T>
106106inline constexpr T& NullValue (void )
107107 { return (*NullPointer<T>()); }
108108
109- // / Offsets an iterator
109+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
110+ // Offsets a pointer
110111template <typename T>
111- inline T advance (T i, ssize_t offset)
112+ inline T advance_ptr (T i, ptrdiff_t offset)
112113 { return (i + offset); }
113114
114- #ifndef DOXYGEN_SHOULD_SKIP_THIS
115- // / Offsets a void pointer
115+ // Offsets a void pointer
116116template <>
117- inline const void * advance (const void * p, ssize_t offset)
117+ inline const void * advance_ptr (const void * p, ptrdiff_t offset)
118118{
119119 assert (p || !offset);
120120 return (reinterpret_cast <const uint8_t *>(p) + offset);
121121}
122122
123- // / Offsets a void pointer
123+ // Offsets a void pointer
124124template <>
125- inline void * advance (void * p, ssize_t offset)
125+ inline void * advance_ptr (void * p, ptrdiff_t offset)
126126{
127127 assert (p || !offset);
128128 return (reinterpret_cast <uint8_t *>(p) + offset);
129129}
130130#endif
131131
132+ // / Offsets an iterator
133+ template <typename T, typename Distance>
134+ inline T advance (T i, Distance offset)
135+ { return (advance_ptr (i, offset)); }
136+
132137// / Returns the difference \p p1 - \p p2
133138template <typename T1, typename T2>
134139inline constexpr ptrdiff_t distance (T1 i1, T2 i2)
0 commit comments