On 8/29/18 10:02 AM, Olaf van der Spek via Boost wrote:
On Wed, Aug 29, 2018 at 6:35 PM, Robert Ramey via Boost
wrote: a) since the user would be compiling everything with his own favorite compiler
Not if he's using package management (Linux, vcpkg @ Windows).
Hmmm - I don't really know what vcpkg actually does. Basically if we distribute only source and no binary then we're not responsible for all the stupid stuff that people do with it.
with the -std setting he desires,
Are you sure about that? Even if he has projects with different -std settings?
LOL - if he has projects with different -std settings - e.g. a dll and an application which calls the dll, he has problems that we can't solve. By not distributing binaries, we avoid burdening people who do know what they're doing with silent ABI inconsistencies which can cause almost impossible to find bugs.
There would be no ABI issues.
b) LOL - It's been stated numerous times that the the Boost policy is that a library must only be compatible with the currently release C++ standard.
Apparently that's not documented properly. Where is it documented anyway?
I don't know. I'm sure it's documented somewhere. There are several well known library which illustrate its veracity. And it's stated on this list about every 6 months or so. It's been stated several times in this thread. Regardless of where it's documented, or even if its not, it happens to be true.
And where's the list of supported compilers listed?
That would depend on the particular library. All boost library are supposed to work with the current standard (at least when approved). So any compiler which implements the current standard should be guaranteed to be able to build and use the library. Of course this is complicated by the fact that there is no C++ compiler and standard library which actually correctly implements the standard. This in turn is complicated by the fact that there is no universal agreement on what the standard actually means in many places. This in turn is complicated by the fact it is very popular to add features (initialization) that no one can really figure them out. Alas - I'm off topic.
Are you sure 'we' are not expecting libs to work with non-C++17 compilers?
Hmmm I don't know that I can speak for "we". But I expect that a Boost library will work with any compiler conforming the the standard existing at the time the library was approved. Since C++ strives to maintain backward compatibility, I expect that that library will be compatible with all subsequent C++ compilers. Of course this is not strictly true. Any boost library using std::auto had to be tweaked when auto was dropped. But in practice it's true enough for government work. Robert Ramey