From 3042e708510cd4cce1c8faae7883a87ce3e12575 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Wed, 6 Jul 2016 21:07:57 +0300 Subject: [PATCH] Add a new header for diagnosing the use of C++17 facilities in pre-C++17 modes. From-SVN: r238058 --- libstdc++-v3/ChangeLog | 6 ++++ libstdc++-v3/include/bits/c++17_warning.h | 37 +++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 libstdc++-v3/include/bits/c++17_warning.h diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 46f7f748f65..edbe06a6e21 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2016-07-06 Ville Voutilainen + + Add a new header for diagnosing the use of C++17 facilities + in pre-C++17 modes. + * include/bits/c++17_warning.h: New. + 2016-07-06 Ville Voutilainen Implement LWG 2451, optional should 'forward' T's diff --git a/libstdc++-v3/include/bits/c++17_warning.h b/libstdc++-v3/include/bits/c++17_warning.h new file mode 100644 index 00000000000..66ac1966bdc --- /dev/null +++ b/libstdc++-v3/include/bits/c++17_warning.h @@ -0,0 +1,37 @@ +// Copyright (C) 2016 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file bits/c++17_warning.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{iosfwd} + */ + +#ifndef _CXX17_WARNING_H +#define _CXX17_WARNING_H 1 + +#if __cplusplus <= 201402L +#error This file requires compiler and library support \ +for the ISO C++ 2017 standard. This support must be enabled \ +with the -std=c++17 or -std=gnu++17 compiler options. +#endif + +#endif