• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2017 Rene Rivera
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt or copy at
4# http://www.boost.org/LICENSE_1_0.txt)
5
6import feature ;
7
8#| tag::doc[]
9
10[[bbv2.builtin.features.cxxstd]]`cxxstd`::
11*Allowed values*: `98`, `03`, `0x`, `11`, `1y`, `14`, `1z`, `17`, `2a`, `20`,
12`latest`.
13+
14Specifies the version of the C++ Standard Language to build with. All the
15official versions of the standard since "98" are included.  It is also possible
16to specify using the experimental, work in progress, `latest` version. Some
17compilers specified intermediate versions for the experimental versions leading
18up to the released standard version. Those are included following the GNU
19nomenclature as `0x`, `1y`, `1z`, and `2a`. Depending on the compiler `latest`
20would map to one of those.
21
22NOTE: This is an `optional` feature. Hence when not specified the compiler
23default behaviour is used.
24
25NOTE: Please consult the toolset specific documentation for which `cxxstd`
26is supported.
27
28|# # end::doc[]
29
30feature.feature cxxstd
31    : 98 03 0x 11 1y 14 1z 17 2a 20 latest
32    : optional composite propagated ;
33
34#| tag::doc[]
35
36[[bbv2.builtin.features.cxxstd-dialect]]`cxxstd-dialect`::
37*Subfeature of* `cxxstd`
38+
39*Allowed values*: `iso`, `gnu`, `ms`.
40+
41Indicates if a non-standard dialect should be used. These usually have
42either/or extensions or platform specific functionality. Not specifying the
43dialect will default to 'iso' which will attempt to use ISO C++ Standard
44conformance to the best of the compiler's ability.
45
46|# # end::doc[]
47
48feature.subfeature cxxstd : dialect
49    : iso gnu ms
50    : composite propagated ;
51