guys. I know it might be a very stupid question, but i need to implement my own iterator_traits and i've decided to do this via inheritance from std::iterator.
I've searched a lot of info but still can't figure out how to do this right.
If it might matter, i'm making own STL_containers and the task requires traits too. Would be very grateful for help ^^
#ifndef ITERATOR_TRAITS_HPP
#define ITERATOR_TRAITS_HPP
#include <iostream>
#include <iomanip>
#include <exception>
#include <iterator>
namespace ft
{
template <class Iterator = std::iterator<std::random_access_iterator_tag, Iterator, std::ptrdiff_t, Iterator*,Iterator>>
struct iterator_traits
{
typedef Iterator::difference_type difference_type;
typedef Iterator::value_type value_type;
typedef Iterator::pointer pointer;
typedef Iterator::reference reference;
typedef Itertator::iterator_category iterator_category;
};
template <class T>
struct iterator_traits <T*>
{
typedef std::ptrdiff_t difference_type;
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef std::random_access_iterator_tag iterator_category;
};
template <class T>
struct iterator_traits <const T*>
{
typedef std::ptrdiff_t difference_type;
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef std::random_access_iterator_tag iterator_category;
};
} // namespace ft
#endif