diff mbox

[WIP,C++] P0217R3 - C++17 structured bindings

Message ID 20161114145134.GY3541@tucnak.redhat.com
State New
Headers show

Commit Message

Jakub Jelinek Nov. 14, 2016, 2:51 p.m. UTC
On Sun, Nov 13, 2016 at 11:53:10PM -0500, Jason Merrill wrote:
> On Wed, Nov 9, 2016 at 8:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> > On Wed, Nov 09, 2016 at 01:24:22PM +0100, Jakub Jelinek wrote:
> >> The following patch is a WIP on P0217R3 - decomposition declarations.
> >> It contains various FIXMEs, Jason, do you think you could finish it up?
> 
> Here's what I'm checking in, as a delta from from your patch.  More
> testcases would still be welcome.

Do we want to check this in (tested on x86_64-linux)?  Or are some further
changes needed before that (e.g. has inline, constexpr, extern, static
etc. been allowed for decompositions in Issaquah or not)?

Are you going to update https://gcc.gnu.org/projects/cxx-status.html ?
Seems during the C++ meeting clang added:

Matching template template parameters to compatible arguments 	P0522R0
Removing deprecated dynamic exception specifications 	P0003R5
Pack expansions in using-declarations 	P0195R2

rows to their table too, are you going to add those as well (to the table
and/or GCC 7)?

2016-11-14  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.

	* g++.dg/cpp1z/feat-cxx1z.C: Test __cpp_structured_bindings macro.



	Jakub

Comments

Jason Merrill Nov. 14, 2016, 3:16 p.m. UTC | #1
On Mon, Nov 14, 2016 at 9:51 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Sun, Nov 13, 2016 at 11:53:10PM -0500, Jason Merrill wrote:
>> On Wed, Nov 9, 2016 at 8:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> > On Wed, Nov 09, 2016 at 01:24:22PM +0100, Jakub Jelinek wrote:
>> >> The following patch is a WIP on P0217R3 - decomposition declarations.
>> >> It contains various FIXMEs, Jason, do you think you could finish it up?
>>
>> Here's what I'm checking in, as a delta from from your patch.  More
>> testcases would still be welcome.
>
> Do we want to check this in (tested on x86_64-linux)?

Yes, thanks, I keep forgetting the macros.

> Or are some further
> changes needed before that (e.g. has inline, constexpr, extern, static
> etc. been allowed for decompositions in Issaquah or not)?

These haven't been considered yet.

> Are you going to update https://gcc.gnu.org/projects/cxx-status.html ?
> Seems during the C++ meeting clang added:
>
> Matching template template parameters to compatible arguments   P0522R0
> Removing deprecated dynamic exception specifications    P0003R5
> Pack expansions in using-declarations   P0195R2
>
> rows to their table too, are you going to add those as well (to the table
> and/or GCC 7)?

I will.

Jason
diff mbox

Patch

--- gcc/c-family/c-cppbuiltin.c.jj	2016-11-09 23:55:12.000000000 +0100
+++ gcc/c-family/c-cppbuiltin.c	2016-11-14 15:21:56.814759245 +0100
@@ -943,6 +943,7 @@  c_cpp_builtins (cpp_reader *pfile)
 	  cpp_define (pfile, "__cpp_deduction_guides=201606");
 	  cpp_define (pfile, "__cpp_noexcept_function_type=201510");
 	  cpp_define (pfile, "__cpp_template_auto=201606");
+	  cpp_define (pfile, "__cpp_structured_bindings=201606");
 	}
       if (flag_concepts)
 	cpp_define (pfile, "__cpp_concepts=201507");
--- gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C.jj	2016-11-09 23:55:14.000000000 +0100
+++ gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C	2016-11-14 15:26:13.459539622 +0100
@@ -392,6 +392,12 @@ 
 #  error "__cpp_noexcept_function_type != 201510"
 #endif
 
+#ifndef __cpp_structured_bindings
+#  error "__cpp_structured_bindings"
+#elif __cpp_structured_bindings != 201606
+#  error "__cpp_structured_bindings != 201606"
+#endif
+
 #ifdef __has_cpp_attribute
 
 #  if ! __has_cpp_attribute(maybe_unused)