
On Feb 21, 2011, at 1:06 PM, gast128 wrote:
Robert Ramey <ramey <at> rrsd.com> writes:
what's the problem with putting that file into boost/filesystem ... like the other types do?
If u put it the other way around, one gets Boost.Serialization included if using Boost.Filesystem (technically this may depend on the actual headers include, but from a conceptual point of view). Imho Boost.Filesystem is a basic concept, representing a path (instead of using raw std::string's), so I can imagine in time that e.g. iostream and Boost.Serialization uses Boost.Filesystem when a path is used in its interface.
Same argument goes for Boost.DateTime (as being a representation of a c++ date time).
That's why Robert proposes to put it into a separate header, e.g. boost/filesystem/serialization/path.hpp so that you only include Boost.Serialization if you ned it.
there is already a dependency from Serialization on external libraries such as on shared_ptr).
This is an exception case - it was just too hard for anyone else to do.
Agree, but it wasn't put in the smart pointer library for good reason?
Yes, archives need to explicitly support smart pointers, which is not the case for filesystem. Matthias