* Constrain distance function using is_iterator type trait
* Add enable_if include
* Fix template syntax in distance function
* Fix syntax issue in distance enable_if
* Test which overload of distance is called
Added a test for custom distance function using Foo struct.
* Fix wrong spelling of std::ptrdiff_t
* Move Foo struct to global scope
* Andrey magic
* Fix headers, add copyright
* Constrain advance to iterators
* Test contraint of advance function with int overload
Added overload for advance function to handle integers.
* Fix enable_if condition for advance function
* Fix template syntax in advance constraint
* Fix advance test
* Remove constexpr specifier
* Make advance overload require conversion in parameter
* Explain choice of type long for n parameter