C++ header-only Ranges and LINQ template library