|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-05-22 13:18:41
The serialization library seems to blatantly violate Boost header
placement conventions.
1. Normally detail namespaces are for implementation details that
should never be touched by a user of the library, but Serialization
puts several framework classes designed to be used by archive
authors inside of detail subnamespaces.
2. Also, the top-level boost/ directory is supposed to be reserved for
non-implementation details, i.e. files with documented purposes
that expose the interfaces of accepted libraries, yet
boost/pfto.hpp is clearly an implementation detail of the
serialization library. It is not a header I would bet any other
Boost library would use, but if I'm wrong about that, it should at
least be pushed into boost/detail, where common implementation
details live.
The conundrum of item 2 is partly the from a mistaken organization.
boost/archive/ and boost/serialization/ are segments of the same
library, and they should have been organized as such. An obvious
organization would've been boost/serialization/archive and, e.g.,
boost/serialization/streaming. Then boost/pfto.hpp could've been
boost/serialization/detail/pfto.hpp
These unconventional moves are at best confusing for users and other
maintainers. The Boost source base is hard enough to control without
library authors inventing their own new rules for organizing things.
I realize that these problems can't be repaired all at once, but they
should be fixed. I'd start by pushing boost/pfto.hpp into
boost/detail, for example.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk