I\'ve been trying to make a custom type fit the requirement of being a range. In the c++ standard a range is defined as following:
template< class T > c