23#ifndef KJK_STRINGZ_ITERATOR_H_
24#define KJK_STRINGZ_ITERATOR_H_
31 template<
class Type,
class Traits = std::
char_traits<Type> >
class stringz_iterator;
33 template<
class CharT> stringz_iterator<CharT>
stringz_begin(
const CharT *);
34 template<
class Traits,
class CharT> stringz_iterator<CharT, Traits>
stringz_begin(
const CharT *);
36 template<
class CharT> stringz_iterator<CharT>
stringz_end(
const CharT *);
37 template<
class Traits,
class CharT> stringz_iterator<CharT, Traits>
stringz_end(
const CharT *);
39 template<
class Type,
class Traits>
40 class stringz_iterator:
public std::iterator<std::forward_iterator_tag, Type, std::ptrdiff_t, const Type *, const Type&>
57 if(
p != 0 && Traits::eq_int_type(Traits::to_int_type(*
p), 0))
103 template<
class CharT>
109 template<
class Traits,
class CharT>
115 template<
class CharT>
121 template<
class Traits,
class CharT>
friend stringz_iterator< CharT2, Traits2 > stringz_begin(const CharT2 *)
bool operator==(const stringz_iterator &That) const
const stringz_iterator & operator++()
stringz_iterator operator++(int)
const stringz_iterator & operator=(const stringz_iterator &That)
reference_ operator*() const
friend stringz_iterator< CharT2, Traits2 > stringz_end(const CharT2 *)
stringz_iterator(const stringz_iterator &That)
friend stringz_iterator< CharT2 > stringz_begin(const CharT2 *)
static pointer_ set_pointer(pointer_ p)
friend stringz_iterator< CharT2 > stringz_end(const CharT2 *)
bool operator!=(const stringz_iterator &That) const
stringz_iterator(pointer_ p)
stringz_iterator< CharT > stringz_begin(const CharT *)
stringz_iterator< CharT > stringz_end(const CharT *)