Boost logo

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