Revert "[iter] Add hb_iter_of_t<>"

This reverts commit d6cbe96e2fc7bc8f1c10e631b52b1ef31ff9a6f5.

Isn't useful, as duplicate inheritance of same type results in ambiguity
errors...
This commit is contained in:
Behdad Esfahbod 2019-01-04 11:22:32 -05:00
parent c132cda9d9
commit cb5011d364
1 changed files with 6 additions and 8 deletions

View File

@ -48,11 +48,9 @@
* Base classes for iterators.
*/
template <typename Item> struct hb_iter_of_t {};
/* Base class for all iterators. */
template <typename Iter, typename Item = typename Iter::__item_type__>
struct hb_iter_t : hb_iter_of_t<Item>
struct hb_iter_t
{
typedef Iter iter_t;
typedef Item item_t;
@ -163,11 +161,11 @@ struct hb_is_iterable { enum { value = _hb_is_iterable<T, hb_true_t>::value }; }
/* hb_is_iterator() / hb_is_sorted_iterator() */
template<typename Item = void> char _hb_is_iterator (...) { return 0; };
template<typename Item> int _hb_is_iterator (hb_iter_of_t<Item> *) { return 0; };
template<typename Item> int _hb_is_iterator (hb_iter_of_t<const Item> *) { return 0; };
template<typename Item> int _hb_is_iterator (hb_iter_of_t<Item&> *) { return 0; };
template<typename Item> int _hb_is_iterator (hb_iter_of_t<const Item&> *) { return 0; };
template<typename Iter = void, typename Item = void> char _hb_is_iterator (...) { return 0; };
template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, Item> *) { return 0; };
template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, const Item> *) { return 0; };
template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, Item&> *) { return 0; };
template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, const Item&> *) { return 0; };
static_assert (sizeof (char) != sizeof (int), "");
template<typename Iter, typename Item>
struct hb_is_iterator { enum {