Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#12328 closed Feature Requests (fixed)

Clarify which Boost Config headers should not be included directly

Reported by: Tony Lewis <tonyelewis@…> Owned by: John Maddock
Milestone: To Be Determined Component: config
Version: Boost 1.61.0 Severity: Problem
Keywords: header, detail, dependency, implementation, interface, optional, config Cc: John Maddock

Description

In ticket:12142#comment:1, johnmaddock says:

No way should optional be including an internal Config header directly - that's just not supported.

So which headers are considered part of Boost Config's public interface? Just boost/config.hpp? At present, many other boost/config/ headers are included by other Boost libraries :

<boost/config/abi_prefix.hpp>        : archive, chrono, filesystem, iostreams, log, serialization, system, thread, timer, archive, chrono, filesystem, iostreams, log, serialization, system, thread, timer
<boost/config/auto_link.hpp>         : archive, atomic, chrono, container, context, coroutine, coroutine2, date_time, endian, filesystem, iostreams, locale, log, math, mpi, program_options, python, random, regex, serialization, signals, system, test, thread, timer, type_erasure, wave
<boost/config/no_tr1/cmath.hpp>      : accumulators, date_time, functional, gil, graph, interprocess, math, numeric, pending, random, spirit, test, tr1, units
<boost/config/no_tr1/complex.hpp>    : math
<boost/config/no_tr1/functional.hpp> : function, smart_ptr
<boost/config/no_tr1/memory.hpp>     : get_pointer smart_ptr
<boost/config/no_tr1/utility.hpp>    : fusion, tr1
<boost/config/requires_threads.hpp>  : thread
<boost/config/suffix.hpp>            : optional
<boost/config/warning_disable.hpp>   : icl, system, timer

If Boost Config has internal implementation headers, which users shouldn't directly include, please can they be put into a separate detail sub-directory to make this clear?

Change History (4)

comment:1 by John Maddock, 6 years ago

Resolution: fixed
Status: newclosed

Done.

comment:2 by Tony Lewis <TonyELewis@…>, 6 years ago

Great. Thanks very much.

Is this going to cause a lot of breakage for other Boost libraries that have been including Boost Config headers that they shouldn't have been? If so, are you able to notify them to give them a heads-up? On the developers' mailing list?

Again: thanks very much.

comment:3 by Tony Lewis <TonyELewis@…>, 6 years ago

For records, I presume that the relevant commit is 3fbf51f.

comment:4 by anonymous, 6 years ago

I don't believe there should be any issue here - I did a quick grep through develop for the moved headers and couldn't find any current uses.

Note: See TracTickets for help on using tickets.