1 /*
2 Copyright Rene Rivera 2008-2015
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7 
8 #ifndef BOOST_PREDEF_LIBRARY_STD_STDCPP3_H
9 #define BOOST_PREDEF_LIBRARY_STD_STDCPP3_H
10 
11 #include <boost/predef/library/std/_prefix.h>
12 
13 #include <boost/predef/version_number.h>
14 #include <boost/predef/make.h>
15 
16 /* tag::reference[]
17 = `BOOST_LIB_STD_GNU`
18 
19 https://gcc.gnu.org/onlinedocs/libstdc%2b%2b/[GNU libstdc++] Standard {CPP} library.
20 Version number available as year (from 1970), month, and day.
21 
22 [options="header"]
23 |===
24 | {predef_symbol} | {predef_version}
25 
26 | `+__GLIBCXX__+` | {predef_detection}
27 | `+__GLIBCPP__+` | {predef_detection}
28 
29 | `+__GLIBCXX__+` | V.R.P
30 | `+__GLIBCPP__+` | V.R.P
31 |===
32 */ // end::reference[]
33 
34 #define BOOST_LIB_STD_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE
35 
36 #if defined(__GLIBCPP__) || defined(__GLIBCXX__)
37 #   undef BOOST_LIB_STD_GNU
38 #   if defined(__GLIBCXX__)
39 #       define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__)
40 #   else
41 #       define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__)
42 #   endif
43 #endif
44 
45 #if BOOST_LIB_STD_GNU
46 #   define BOOST_LIB_STD_GNU_AVAILABLE
47 #endif
48 
49 #define BOOST_LIB_STD_GNU_NAME "GNU"
50 
51 #endif
52 
53 #include <boost/predef/detail/test.h>
54 BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_GNU,BOOST_LIB_STD_GNU_NAME)
55