Config library public or not?

Hi! The documentation says the lib is not intended for users of boost, but only to aid implementing boost itself. I asked the question some time ago (long before 1.32) and the consensus was that it was in fact public and the documentation was wrong/outdated, but even with this release it didn't change. What's the deal? Did I miss anything? Uli

The documentation says the lib is not intended for users of boost, but only to aid implementing boost itself. I asked the question some time ago (long before 1.32) and the consensus was that it was in fact public and the documentation was wrong/outdated, but even with this release it didn't change. What's the deal? Did I miss anything?
OK I changed the wording of the help file to read as follows: " Boost library implementations access configuration macros via #include <boost/config.hpp>. Boost library users are never required to #include <boost/config.hpp> directly, unless they are using the Boost informational or helper macros which are designed for use by Boost users as well as for our own internal use. However, note that while all the Boost configuration macros are documented here, the feature test and defect test macros are designed for internal use by Boost libraries. If you write code that depends upon these you should be aware that they are subject to the needs of Boost library developers, and while we will try to avoid gratuitous changes, subtle breaking changes are not entirely unknown. " Is that clear enough? John.

John Maddock wrote:
" Boost library implementations access configuration macros via #include <boost/config.hpp>. Boost library users are never required to #include <boost/config.hpp> directly, unless they are using the Boost informational or helper macros which are designed for use by Boost users as well as for our own internal use. However, note that while all the Boost configuration macros are documented here, the feature test and defect test macros are designed for internal use by Boost libraries. If you write code that depends upon these you should be aware that they are subject to the needs of Boost library developers, and while we will try to avoid gratuitous changes, subtle breaking changes are not entirely unknown. "
I think the last sentence is a bit awkward, esp. "subtle breaking changes" and "not entirely unknown." I'd prefer: "If you write code that depends upon these macros, you should be aware that because they are subject to the needs of Boost library developers, small changes are occassionally made which could affect your code. The best way to keep up to date is to monitor discussions on the Boost devlopers list." Jonathan

From: "Jonathan Turkanis" <technews@kangaroologic.com>
John Maddock wrote:
" Boost library implementations access configuration macros via #include <boost/config.hpp>. Boost library users are never required to #include <boost/config.hpp> directly, unless they are using the Boost informational or helper macros which are designed for use by Boost users as well as for our own internal use. However, note that while all the Boost configuration macros are documented here, the feature test and defect test macros are designed for internal use by Boost libraries. If you write code that depends upon these you should be aware that they are subject to the needs of Boost library developers, and while we will try to avoid gratuitous changes, subtle breaking changes are not entirely unknown. "
I think the last sentence is a bit awkward, esp. "subtle breaking changes" and "not entirely unknown."
I'd prefer:
"If you write code that depends upon these macros, you should be aware that because they are subject to the needs of Boost library developers, small changes are occassionally made which could affect your code. The best way to keep up to date is to monitor discussions on the Boost devlopers list."
I quite dislike "up to date," and can offer various other changes: Boost libraries are implemented using various configuration macros defined in boost/config.hpp. While Boost library users are not required to include that file directly, or use those configuration macros, such use is acceptable. The configuration macros are well documented as to their purpose, usage, and limitations which makes them easy to use by both Boost library and user code. Note, however, that the configuration macros are written expressly for the needs of the Boost libraries, not user code, so they can change at any time (though no gratuitous changes are made to them). Boost library problems resulting from changes to the configuration macros are caught by the Boost regression tests, so the Boost libraries are updated to account for those changes. By contrast, Boost library user code can be adversely affected by changes to the macros without warning. The best way to keep abreast of changes to the macros used in user code is to monitor the discussions on the Boost developers list. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;

"If you write code that depends upon these macros, you should be aware that because they are subject to the needs of Boost library developers, small changes are occassionally made which could affect your code. The best way to keep up to date is to monitor discussions on the Boost devlopers list."
I quite dislike "up to date," and can offer various other changes:
Boost libraries are implemented using various configuration macros defined in boost/config.hpp. While Boost library users are not required to include that file directly, or use those configuration macros, such use is acceptable. The configuration macros are well documented as to their purpose, usage, and limitations which makes them easy to use by both Boost library and user code.
Note, however, that the configuration macros are written expressly for the needs of the Boost libraries, not user code, so they can change at any time (though no gratuitous changes are made to them). Boost library problems resulting from changes to the configuration macros are caught by the Boost regression tests, so the Boost libraries are updated to account for those changes. By contrast, Boost library user code can be adversely affected by changes to the macros without warning. The best way to keep abreast of changes to the macros used in user code is to monitor the discussions on the Boost developers list.
I like all of those suggestions, cvs will be updated soon, Thanks! John.
participants (4)
-
John Maddock
-
Jonathan Turkanis
-
Rob Stewart
-
Ulrich Eckhardt