
Gennadiy Rozental wrote:
I've taken Richard Johnson's glob_iterator that he posted to the list back in January and re-written it completely, using Boost.Spirit to transform the input 'glob' into an equivalent regex. The result is a 'boost::glob' function that I believe is fully POSIX-conformant.
Example usage:
fs::path const starting_directory("."); std::list<fs::path> const matches = boost::glob("../te?t/foo*bar", starting_directory);
This look way too inefficient. Why would you want to copy list of complex objects?
Maybe, we can just decide that all reasonable compilers support NRVO, and stop worring about returning vectors/list by value? At least, when I write function which returns a vector, I start it with vector<...> result; so NRVO would surely work. The primary reason for 'result' is that I like all functions to have a single return, but as a side effect it make NRVO always working. - Volodya