In boost v1.47, filesystem\v3\src\path.cpp, inside function m_path_iterator_increment, on line 654,
It should be:
it.m_element.m_pathname = preferred_separator;
Instead of
it.m_element.m_pathname = separator;
Reason:
In below sample code
boost::filesystem::path new_path;
for (fs::path::iterator i=path.begin();i!=path.end();i++)
new_path/=(*i);
On windows when iterating a path using above code, line 654 incorrectly appends / instead of \ after drive letter.
For example,
D:\path\file
Becomes,
D:/path\file
SG