[atomic] Header rearrangement

Hi, Before merging Boost.Atomic to release I would like to propose to rearrange library headers a bit: 1. The current boost/atomic/config.hpp and platform.hpp seem to be not intended for public use as they don't provide any public components. I propose to move them to boost/atomic/detail. 2. The boost/atomic.hpp header defines the atomic<> template. I propose to move its contents to boost/atomic/atomic.hpp. The boost/atomic.hpp will be left as the "include all" header and will only include boost/atomic/atomic.hpp for now. The motivation for the proposal is to cleanup the public library interface (header layout) and simplify extension later. For instance, function-style interface can be added as a new header in boost/atomic, it would fit naturally in the proposed layout. Also, with the upcoming transition to git it seems that all library headers should reside in the library's own subdirectory and not directly in boost/. AFAICT, the change will not affect any other libraries since only boost/atomic.hpp is included currently. If noone objects (Tim, I would very much like to hear from you on this), I can do the necessary changes.

hi andrey.
1. The current boost/atomic/config.hpp and platform.hpp seem to be not intended for public use as they don't provide any public components. I propose to move them to boost/atomic/detail. 2. The boost/atomic.hpp header defines the atomic<> template. I propose to move its contents to boost/atomic/atomic.hpp. The boost/atomic.hpp will be left as the "include all" header and will only include boost/atomic/atomic.hpp for now.
all this sounds good and reasonable to me, so please go ahead! thanks, tim

2012/12/11 Andrey Semashev <andrey.semashev@gmail.com>
Hi,
Before merging Boost.Atomic to release I would like to propose to rearrange library headers a bit:
1. The current boost/atomic/config.hpp and platform.hpp seem to be not intended for public use as they don't provide any public components. I propose to move them to boost/atomic/detail. 2. The boost/atomic.hpp header defines the atomic<> template. I propose to move its contents to boost/atomic/atomic.hpp. The boost/atomic.hpp will be left as the "include all" header and will only include boost/atomic/atomic.hpp for now.
The motivation for the proposal is to cleanup the public library interface (header layout) and simplify extension later. For instance, function-style interface can be added as a new header in boost/atomic, it would fit naturally in the proposed layout. Also, with the upcoming transition to git it seems that all library headers should reside in the library's own subdirectory and not directly in boost/.
It is true that, after the modularization, all header files will be found in the appropriate library's folder. However, it will allways be possible for a library to provide header files "as if" they were directly in boost/. After the modularization, it will be possible in princible that two modules both provide a file with the same name, which may lead to unexpected results. Currently this is technically impossible. AFAICT, the change will not affect any other libraries since only
boost/atomic.hpp is included currently. If noone objects (Tim, I would very much like to hear from you on this), I can do the necessary changes.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (3)
-
Andrey Semashev
-
Daniel Pfeifer
-
Tim Blechmann