Subject: [boost] Libraries and C++ compliance
From: Edward Diener (eldiener_at_[hidden])
Date: 2017-04-10 02:24:51
I would like to ask people who present new libraries to Boost, in
whatever stages they are, to please specify in the documentation to the
library and/or in messages regarding the library, what level of C++
compliance is needed to use the functionality of that library. This plea
is not being directed at any particular current library being mentioned
by anyone on the mailing list, but is a general plea regarding
developers and their efforts.
I realize it is a real pain that C++ as a language, and as it continues
to evolve, has a number of popular levels of C++ compliance. This is
largely because C++ is offered by a number of different vendors in a
number of different supported releases, each particular implementation
supporting a number of levels of C++ compliance and sometimes only
partially supporting a particular level of C++ compliance. But given
this sometimes difficult situation I do not see it as enough for library
docs/information to simply say "this library supports
some-vendor/some-release" because this is actually fairly meaningless to
me when I know that "some-vendor/some-release" supports a number of
levels of C++ compliance through some compiler parameter ( often
-std=something ). Therefore docs/information of "the library supports
"some-implementation" or "the library is compliant with "more than one
level of C++ compliance" tells me as much as if some one told me that
the moon is yellow. So I am begging, pleading, entreating library
authors to be specific about the C++ features or the C++ level of
compliance needed to use their library, even if it is just a one-liner
that succinctly explains what the end-user needs to know.
Furthermore, for any given library could we please have specific
information about what will happen if I use the library, or some feature
of the library, without the desired minimum level of C++ compliance.
While I would assume compile-time compiler errors as the norm another
possibility, especially given the excellent support in Boost Config to
compiler conformance, are more readable preprocessor errors. Finally a
library might offer some level of advanced C++ compliance but fall back
to a lower level if possible.
Please, please library authors this is important. No end-user or tester
of your library wants to spend extended time trying to figure out why
some compile fails when the answer turns out simply to be one of
inadequate C++ conformance level for a particular compiler
implementation being used with a particular level of conformance.