According to GCC reference, C17
is actually a bug-fix version of the C11
standard with DR resolutions integrated.
C17, a bug-fix version of the C11 standard with DR [Defect Report] resolutions
integrated, will soon go to ballot. This patch adds corresponding
options -std=c17
, -std=gnu17
(new default version, replacing
-std=gnu11
as the default), -std=iso9899:2017
. As a bug-fix version
of the standard, there is no need for flag_isoc17
or any options for
compatibility warnings; however, there is a new __STDC_VERSION__
value, so new cpplib languages CLK_GNUC17
and CLK_STDC17
are added to
support using that new value with the new options. (If the standard
ends up being published in 2018 and being known as C18
, option aliases
can be added. Note however that -std=iso9899:199409
corresponds to a
__STDC_VERSION__
value rather than a publication date.)
(There are a couple of DR resolutions needing implementing in GCC, but
that's independent of the new options.)
So, there are no new features included in C17.
The Cppreference (History of C) says:
Future development
C17 Next minor C language standard revision, will include all accepted C11 defect reports, but no new features.
UPDATE:
- 2018: C17 (ISO/IEC 9899:2018) (ISO Store) (Final draft) Includes the deprecation of
ATOMIC_VAR_INIT
and the fixes to the
following defect reports:
[DR 400], [DR 401], [DR 402], [DR 403],
[DR 404], [DR 405], [DR 406], [DR 407],
[DR 410], [DR 412], [DR 414], [DR 415],
[DR 416], [DR 417], [DR 419], [DR 423],
[DR 426], [DR 428], [DR 429], [DR 430],
[DR 431], [DR 433], [DR 434], [DR 436],
[DR 437], [DR 438], [DR 439], [DR 441],
[DR 444], [DR 445], [DR 447], [DR 448],
[DR 450], [DR 452], [DR 453], [DR 457],
[DR 458], [DR 459], [DR 460], [DR 462],
[DR 464], [DR 465], [DR 468], [DR 470],
[DR 471], [DR 472], [DR 473], [DR 475],
[DR 477], [DR 480], [DR 481], [DR 485],
[DR 487], [DR 491]