![]() |
“This Filesystem Library is dedicated to my wife, Sonda, who provided the support necessary to see both a trial implementation and the proposal itself through to completion. She gave me the strength to continue after a difficult year of cancer treatment in the middle of it all.” — Beman Dawes
The Filesystem Library was designed and implemented by Beman Dawes. The original
directory_iterator and filesystem_error classes were based on
prior work from Dietmar Kühl, as modified by Jan Langer. Thomas Witt was
a particular help in later stages of initial development. Peter Dimov, and
Rob Stewart made many useful suggestions and comments over a long period
of time. Howard Hinnant helped with internationalization issues.
Key design requirements and design realities were developed during extensive discussions on the Boost mailing list, followed by comments on the initial implementation. Numerous helpful comments were then received during the Formal Review. Participants included:
A lengthy discussion on the C++ committee's library reflector illuminated the "illusion of portability" problem, particularly in postings by PJ Plauger and Pete Becker.
Walter Landry provided much help illuminating symbolic link use cases for version 1.31.0.
The create_directories,
extension, basename, and replace_extension
functions were developed by Vladimir Prus. The temp_directory_path
function was contributed by Jeff Flinn. David Svoboda suggested the canonical function and provided pseudo-code.
So many people have contributed comments and bug reports that it isn't any longer possible to acknowledge them individually. That said, Peter Dimov and Rob Stewart need to be specially thanked for their many constructive criticisms and suggestions. Terence Wilson and Chris Frey contributed timing programs which helped illuminate performance issues. Howard Hinnant and John Maddock reviewed a draft of the version 2 proposal, and identified a number of mistakes or weaknesses, resulting in a more polished final document.
Peter Dimov suggested the idea of a single path class that could cope with
multiple character types and encodings rather than a basic_path
class template. That idea was the basis for the Version 3 redesign. Walter
Landry contributed both the design and implementation of the copy_any, copy_directory,
copy_symlink, and read_symlink functions.
Thanks for comments from Robert Stewart, Zach Laine, Peter Dimov, Gregory Peele, Scott McMurray, John Bytheway, Jeff Flinn, Jeffery Bosboom.