add explicit conversion to params (size_t -> point_type) when instantiate range_type.
replace boost::function with std::function.
fix a compiling error at line 193. (may boost or compiler bug? whatever)