Boost logo

Boost :

From: pbristow_at_[hidden]
Date: 2020-02-11 09:56:03


https://boostorg.github.io/build/manual/develop/index.html#bbv2.overview.builtin
s.features

says

5.3. Builtin features

cxxstd Allowed values: 98, 03, 0x, 11, 1y, 14, 1z, 17, 2a, latest.

cxxstd-dialect Allowed values: iso, gnu, ms.

So these work as expected

  toolset=gcc cxxstd=2a cxxstd-dialect=gnu is OK
  toolset=gcc-9.2.0 cxxstd=2a cxxstd-dialect=gnu is OK too

But if I do NOT specify the cxxstd version - just

   toolset=gcc cxxstd-dialect=gnu

for example:

boost\libs\multiprecision\example>b2 float128_snips toolset=gcc-8.1.0
cxxstd-dialect=gnu address-model=64 release >
.mp_float128_snips_gcc810_14_gnu.log

Iboost/tools/build/src/build\feature.jam:1020: in feature.compress-subproperties
from module feature
error: assertion failure: [ set.equal "<cxxstd-dialect>gnu"
"<toolset-gcc:version>8.1.0" : "<toolset-gcc:version>8.1.0" ]
error: Expected: [ "true" ]
error: Got: [ ]

which had be puzzled for a while.

Probably the even more common case of only having one compiler, say gcc,
installed, and so not specifying toolset at all, confusingly behaves the same
way?

This is a perfectly reasonable behaviour, but this requirement might helpfully
be documented.

Or this more subtle than I understand?

Thanks

Paul


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk