I've just run into an interesting problem with boost::filesystem::path and thought I would raise it somewhere.
When I run the following code, compiled with MSVC7.1, on windows XP I get an exception thrown when calling some_path_function.
The exception is causes by boost::filesystem::path's implicit conversion constructor constructing a path from a string using the posix path matching rules. Obviously I can correct the problem by always using the native path checker argument, and that is fine, but the fact that this is an implicit conversion makes it hard to spot and I (and my colleagues) are not always that awake :).
So I suppose the question is a) can the default path checking function be changed in such a way that on windows platforms it validates the path using windows rules and on posix platforms using posix rules, or b) should the constructor at fault here be made explicit since it can really catch you out.
#include