On Sun, Nov 13, 2016 at 11:53:10PM -0500, Jason Merrill wrote: > On Wed, Nov 9, 2016 at 8:05 AM, Jakub Jelinek <ja...@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 <ja...@redhat.com> * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings. * g++.dg/cpp1z/feat-cxx1z.C: Test __cpp_structured_bindings macro. --- 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) Jakub