C++ Ranges, done with property sets