<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Standards</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>Recent changes to Standards</description><atom:link href="https://sourceforge.net/p/predef/wiki/Standards/feed" rel="self"/><language>en</language><lastBuildDate>Sat, 13 Jun 2020 11:32:37 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/predef/wiki/Standards/feed" rel="self" type="application/rss+xml"/><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -11,6 +11,7 @@
 C94|`__STDC_VERSION__` = 199409L|ISO/IEC 9899-1:1994
 [C99](http://www.open-std.org/jtc1/sc22/wg14/)|`__STDC_VERSION__` = 199901L|ISO/IEC 9899:1999
 [C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
+[C18](https://en.wikipedia.org/wiki/C18_%28C_standard_revision%29)|`__STDC_VERSION__` = 201710L|ISO/IEC 9899:2018
 [C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199711L|ISO/IEC 14882:1998
 [C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|ISO/IEC 14882:2011
 [C++14](http://en.wikipedia.org/wiki/C%2B%2B14)|`__cplusplus` = 201402L|ISO/IEC 14882:2014
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Sat, 13 Jun 2020 11:32:37 -0000</pubDate><guid>https://sourceforge.net7c75023acb31303b0eb434e8bd82be03861f7328</guid></item><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v12
+++ v13
@@ -14,6 +14,7 @@
 [C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199711L|ISO/IEC 14882:1998
 [C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|ISO/IEC 14882:2011
 [C++14](http://en.wikipedia.org/wiki/C%2B%2B14)|`__cplusplus` = 201402L|ISO/IEC 14882:2014
+[C++17](http://en.wikipedia.org/wiki/C%2B%2B17)|`__cplusplus` = 201703L|ISO/IEC 14882:2017
 [C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|`__cplusplus_cli` = 200406L|ECMA-372
 [DSP-C](http://www.dsp-c.org)| |ISO/IEC JTC1/SC22 WG14/N854
 [EC++](http://www.caravan.net/ec2plus/)|`__embedded_cplusplus`|Embedded C++
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Sat, 18 May 2019 15:44:04 -0000</pubDate><guid>https://sourceforge.net15f909396fca596120d7a16f6165e9df92f138d7</guid></item><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v11
+++ v12
@@ -7,7 +7,7 @@
 Name | Macro | Standard
 ---|---|---
 C89|`__STDC__`|ANSI X3.159-1989
-C90|`__STDC_VERSION__`|ISO/IEC 9899:1990
+C90|`__STDC__`|ISO/IEC 9899:1990
 C94|`__STDC_VERSION__` = 199409L|ISO/IEC 9899-1:1994
 [C99](http://www.open-std.org/jtc1/sc22/wg14/)|`__STDC_VERSION__` = 199901L|ISO/IEC 9899:1999
 [C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
@@ -24,7 +24,6 @@
     #if defined(__STDC__)
     # define PREDEF_STANDARD_C_1989
     # if defined(__STDC_VERSION__)
-    #  define PREDEF_STANDARD_C_1990
     #  if (__STDC_VERSION__ &amp;gt;= 199409L)
     #   define PREDEF_STANDARD_C_1994
     #  endif
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Fri, 31 Oct 2014 07:28:04 -0000</pubDate><guid>https://sourceforge.net80dcede36b1aa239b8776d4e3a68e7c56afcad8a</guid></item><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -13,6 +13,7 @@
 [C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
 [C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199711L|ISO/IEC 14882:1998
 [C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|ISO/IEC 14882:2011
+[C++14](http://en.wikipedia.org/wiki/C%2B%2B14)|`__cplusplus` = 201402L|ISO/IEC 14882:2014
 [C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|`__cplusplus_cli` = 200406L|ECMA-372
 [DSP-C](http://www.dsp-c.org)| |ISO/IEC JTC1/SC22 WG14/N854
 [EC++](http://www.caravan.net/ec2plus/)|`__embedded_cplusplus`|Embedded C++
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Wed, 17 Sep 2014 10:24:39 -0000</pubDate><guid>https://sourceforge.nete96804bc1adcf5a1508ce38a0d0f12420a0ddb7f</guid></item><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -12,7 +12,7 @@
 [C99](http://www.open-std.org/jtc1/sc22/wg14/)|`__STDC_VERSION__` = 199901L|ISO/IEC 9899:1999
 [C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
 [C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199711L|ISO/IEC 14882:1998
-[C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|Draft
+[C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|ISO/IEC 14882:2011
 [C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|`__cplusplus_cli` = 200406L|ECMA-372
 [DSP-C](http://www.dsp-c.org)| |ISO/IEC JTC1/SC22 WG14/N854
 [EC++](http://www.caravan.net/ec2plus/)|`__embedded_cplusplus`|Embedded C++
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Thu, 24 Oct 2013 09:35:15 -0000</pubDate><guid>https://sourceforge.net63ff287afb8b1f1269ab601712133371e2ed24b2</guid></item><item><title>Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -49,6 +49,8 @@

 ## Unix Standards ##

+There are several related Unix standards, such as [POSIX](http://en.wikipedia.org/wiki/POSIX), [X/Open](http://en.wikipedia.org/wiki/X/Open), and [LSB](http://en.wikipedia.org/wiki/Linux_Standard_Base).
+
 Unix standards require the existence macros in the `` header file.

 Name | Macro | Standard
@@ -66,6 +68,7 @@
 [SUSv2](http://www.opengroup.org/onlinepubs/7908799/toc.htm)|`_XOPEN_VERSION` = 500|X/Open Single UNIX Specification, Version 2 (UNIX98)
 [SUSv3](http://www.opengroup.org/onlinepubs/007904975/nfindex.html)|`_XOPEN_VERSION` = 600|Open Group Single UNIX Specification, Version 3 (UNIX03)
 [SUSv4](http://pubs.opengroup.org/onlinepubs/9699919799/)|`_XOPEN_VERSION` = 700|Open Group Single UNIX Specification, Version 4
+LSB|`__LSB_VERSION__` = VR|Linux Standards Base&lt;br /&gt;&lt;br /&gt;V = Version&lt;br /&gt;R = Revision

 ##### Example: Unix Standards #####

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Sun, 15 Sep 2013 11:01:33 -0000</pubDate><guid>https://sourceforge.net19c36c0aea312136d413ac32f994313b2af91fd9</guid></item><item><title>WikiPage Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;pre&gt;--- v7
+++ v8
@@ -11,7 +11,7 @@
 C94|`__STDC_VERSION__` = 199409L|ISO/IEC 9899-1:1994
 [C99](http://www.open-std.org/jtc1/sc22/wg14/)|`__STDC_VERSION__` = 199901L|ISO/IEC 9899:1999
 [C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
-[C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199707L|ISO/IEC 14882:1998
+[C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199711L|ISO/IEC 14882:1998
 [C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|Draft
 [C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|`__cplusplus_cli` = 200406L|ECMA-372
 [DSP-C](http://www.dsp-c.org)| |ISO/IEC JTC1/SC22 WG14/N854
@@ -34,6 +34,8 @@
     #endif
 
 Notice that not all compliant compilers provides the correct pre-defined macros. For example, Microsoft Visual C++ does not define `__STDC__`, or Sun Workshop 4.2 supports C94 without setting `__STDC_VERSION__` to the proper value. Extra checks for such compilers must be added.
+
+Notice that some compilers, such as the [HP aC++](http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=4b080055abe021100055abe02110275d6e10RCRD), use the value 199707L to indicate the C++98 standard. This value was used in an earlier proposal of the C++98 standard.
 
 ##### Example: Pre-C89 #####
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Tue, 09 Oct 2012 18:01:20 -0000</pubDate><guid>https://sourceforge.net72c6a7c7e74f26731097d6513ba97788e4d372f4</guid></item><item><title>WikiPage Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;pre&gt;--- v6
+++ v7
@@ -1,3 +1,5 @@
+Please send updates/corrections to [predef-contribute](mailto:predef-contribute@lists.sourceforge.net).
+
 ## Language Standards ##
 
 Language standards requires the existence of pre-defined macros.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Wed, 08 Aug 2012 09:08:39 -0000</pubDate><guid>https://sourceforge.net503c2d9335098f164673c7438602c48a7e941ae3</guid></item><item><title>WikiPage Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;pre&gt;--- v5
+++ v6
@@ -31,7 +31,7 @@
     # endif
     #endif
 
-Please notice that not all compliant compilers provides the correct pre-defined macros. For example, Microsoft Visual C++ does not define `__STDC__`, or Sun Workshop 4.2 supports C94 without setting `__STDC_VERSION__` to the proper value. Extra checks for such compilers must be added.
+Notice that not all compliant compilers provides the correct pre-defined macros. For example, Microsoft Visual C++ does not define `__STDC__`, or Sun Workshop 4.2 supports C94 without setting `__STDC_VERSION__` to the proper value. Extra checks for such compilers must be added.
 
 ##### Example: Pre-C89 #####
 
@@ -95,4 +95,4 @@
     # endif
     #endif
 
-Please note that not all compliant compilers provides the correct pre-defined macros. For example, IBM xlC supports Unix without setting any of the `__unix__` macros. Extra checks for such compilers must be added.
+Notice that not all compliant compilers provides the correct pre-defined macros. For example, IBM xlC supports Unix without setting any of the `__unix__` macros. Extra checks for such compilers must be added.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Wed, 08 Aug 2012 09:04:39 -0000</pubDate><guid>https://sourceforge.net134152000f9ba7cb43fbe3262691f18303a20a56</guid></item><item><title>WikiPage Standards modified by Bjorn Reese</title><link>https://sourceforge.net/p/predef/wiki/Standards/</link><description>&lt;pre&gt;--- v4
+++ v5
@@ -4,16 +4,16 @@
 
 Name | Macro | Standard
 ---|---|---
-C89|\_\_STDC\_\_|ANSI X3.159-1989
-C90|\_\_STDC_VERSION\_\_|ISO/IEC 9899:1990
-C94|\_\_STDC_VERSION\_\_ = 199409L|ISO/IEC 9899-1:1994
-[C99](http://www.open-std.org/jtc1/sc22/wg14/)|\_\_STDC_VERSION\_\_ = 199901L|ISO/IEC 9899:1999
-[C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|\_\_STDC_VERSION\_\_ = 201112L|ISO/IEC 9899:2011
-[C++98](http://www.open-std.org/jtc1/sc22/wg21/)|\_\_cplusplus = 199707L|ISO/IEC 14882:1998
-[C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|\_\_cplusplus = 201103L|Draft
-[C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|\_\_cplusplus_cli = 200406L|ECMA-372
+C89|`__STDC__`|ANSI X3.159-1989
+C90|`__STDC_VERSION__`|ISO/IEC 9899:1990
+C94|`__STDC_VERSION__` = 199409L|ISO/IEC 9899-1:1994
+[C99](http://www.open-std.org/jtc1/sc22/wg14/)|`__STDC_VERSION__` = 199901L|ISO/IEC 9899:1999
+[C11](http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29)|`__STDC_VERSION__` = 201112L|ISO/IEC 9899:2011
+[C++98](http://www.open-std.org/jtc1/sc22/wg21/)|`__cplusplus` = 199707L|ISO/IEC 14882:1998
+[C++11](http://en.wikipedia.org/wiki/C%2B%2B11)|`__cplusplus` = 201103L|Draft
+[C++/CLI](http://www.ecma-international.org/publications/standards/Ecma-372.htm)|`__cplusplus_cli` = 200406L|ECMA-372
 [DSP-C](http://www.dsp-c.org)| |ISO/IEC JTC1/SC22 WG14/N854
-[EC++](http://www.caravan.net/ec2plus/)|\_\_embedded_cplusplus|Embedded C++
+[EC++](http://www.caravan.net/ec2plus/)|`__embedded_cplusplus`|Embedded C++
 
 ##### Example: C Standards #####
 
@@ -31,7 +31,7 @@
     # endif
     #endif
 
-Please notice that not all compliant compilers provides the correct pre-defined macros. For example, Microsoft Visual C++ does not define \_\_STDC\_\_, or Sun Workshop 4.2 supports C94 without setting \_\_STDC_VERSION\_\_ to the proper value. Extra checks for such compilers must be added.
+Please notice that not all compliant compilers provides the correct pre-defined macros. For example, Microsoft Visual C++ does not define `__STDC__`, or Sun Workshop 4.2 supports C94 without setting `__STDC_VERSION__` to the proper value. Extra checks for such compilers must be added.
 
 ##### Example: Pre-C89 #####
 
@@ -42,3 +42,57 @@
     # define const
     # define volatile
     #endif
+
+## Unix Standards ##
+
+Unix standards require the existence macros in the `&lt;unistd.h&gt;` header file.
+
+Name | Macro | Standard
+---|---|---
+POSIX.1-1988|`_POSIX_VERSION` = 198808L|
+POSIX.1-1990|`_POSIX_VERSION` = 199009L|ISO/IEC 9945-1:1990
+POSIX.2|`_POSIX2_C_VERSION` = 199209L|ISO/IEC 9945-2:1993
+POSIX.1b-1993|`_POSIX_VERSION` = 199309L|IEEE 1003.1b-1993
+POSIX.1-1996|`_POSIX_VERSION` = 199506L|IEEE 1003.1-1996
+POSIX.1-2001|`_POSIX_VERSION` = 200112L|IEEE 1003.1-2001
+[POSIX.1-2008](http://pubs.opengroup.org/onlinepubs/9699919799/)|`_POSIX_VERSION` = 200809L|IEEE 1003.1-2008
+XPG3|`_XOPEN_VERSION` = 3|X/Open Portability Guide 3 (1989)
+XPG4|`_XOPEN_VERSION` = 4|X/Open Portability Guide 4 (1992)
+SUS|`_XOPEN_VERSION` = 4 `&amp;&amp;` `_XOPEN_UNIX`|X/Open Single UNIX Specification (UNIX95)
+[SUSv2](http://www.opengroup.org/onlinepubs/7908799/toc.htm)|`_XOPEN_VERSION` = 500|X/Open Single UNIX Specification, Version 2 (UNIX98)
+[SUSv3](http://www.opengroup.org/onlinepubs/007904975/nfindex.html)|`_XOPEN_VERSION` = 600|Open Group Single UNIX Specification, Version 3 (UNIX03)
+[SUSv4](http://pubs.opengroup.org/onlinepubs/9699919799/)|`_XOPEN_VERSION` = 700|Open Group Single UNIX Specification, Version 4
+
+##### Example: Unix Standards #####
+
+The following examples assumes the definition of these macros.
+
+    :::c
+    #if defined(unix) || defined(__unix__) || defined(__unix)
+    # define PREDEF_PLATFORM_UNIX
+    #endif
+    #if defined(PREDEF_PLATFORM_UNIX)
+    # include &lt;unistd.h&gt;
+    # if defined(_XOPEN_VERSION)
+    #  if (_XOPEN_VERSION &gt;= 3)
+    #   define PREDEF_STANDARD_XOPEN_1989
+    #  endif
+    #  if (_XOPEN_VERSION &gt;= 4)
+    #   define PREDEF_STANDARD_XOPEN_1992
+    #  endif
+    #  if (_XOPEN_VERSION &gt;= 4) &amp;&amp; defined(_XOPEN_UNIX)
+    #   define PREDEF_STANDARD_XOPEN_1995
+    #  endif
+    #  if (_XOPEN_VERSION &gt;= 500)
+    #   define PREDEF_STANDARD_XOPEN_1998
+    #  endif
+    #  if (_XOPEN_VERSION &gt;= 600)
+    #   define PREDEF_STANDARD_XOPEN_2003
+    #  endif
+    #  if (_XOPEN_VERSION &gt;= 700)
+    #   define PREDEF_STANDARD_XOPEN_2008
+    #  endif
+    # endif
+    #endif
+
+Please note that not all compliant compilers provides the correct pre-defined macros. For example, IBM xlC supports Unix without setting any of the `__unix__` macros. Extra checks for such compilers must be added.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bjorn Reese</dc:creator><pubDate>Sun, 29 Jul 2012 11:04:34 -0000</pubDate><guid>https://sourceforge.net5f4ff8c68829f45619551fb9aed12f25f83d599b</guid></item></channel></rss>