Create a C++ interface of funcs in range to allow the user to supply an implementation.
InputRange of functions the class is intended to wrap.
the name of the class.
namespace the class reside in
See Implementation
Create a C++ interface of funcs in range to allow the user to supply an implementation.