[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-04-20 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

Jonathan Wakely  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-04-20 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Jakub Jelinek  ---
Author: ville
Date: Mon Apr  3 15:57:06 2017
New Revision: 246651

URL: https://gcc.gnu.org/viewcvs?rev=246651=gcc=rev
Log:
Implement std::is_aggregate.
* include/std/type_traits (is_aggregate, is_aggregate_v): New.
* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
New.
* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_aggregate/value.cc: Likewise.

Added:
trunk/libstdc++-v3/testsuite/20_util/is_aggregate/
trunk/libstdc++-v3/testsuite/20_util/is_aggregate/requirements/
   
trunk/libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
trunk/libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
trunk/libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/std/type_traits

[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-03-31 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

--- Comment #4 from Jakub Jelinek  ---
Author: jakub
Date: Fri Mar 31 06:40:39 2017
New Revision: 246609

URL: https://gcc.gnu.org/viewcvs?rev=246609=gcc=rev
Log:
PR libstdc++/80251
c-family/
* c-common.h (enum rid): Add RID_IS_AGGREGATE.
* c-common.c (c_common_reswords): Add __is_aggregate trait.
cp/
* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_AGGREGATE.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_AGGREGATE.
* semantics.c (trait_expr_value): Handle CPTK_IS_AGGREGATE.
Remove extraneous parens.
(finish_trait_expr): Handle CPTK_IS_AGGREGATE.
* parser.c (cp_parser_primary_expression): Handle RID_IS_AGGREGATE.
(cp_parser_trait_expr): Likewise.
testsuite/
* g++.dg/ext/is_aggregate.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ext/is_aggregate.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cxx-pretty-print.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog

[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-03-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Created attachment 41090
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41090=edit
gcc7-pr80251.patch

The compiler side (untested so far, except for make check-c++-all
RUNTESTFLAGS=dg.exp=is_aggr*).

[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-03-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

--- Comment #2 from Jonathan Wakely  ---
It's only existed for less than a month,. and it requires a new intrinsic from
the compiler which doesn't exist yet.

[Bug libstdc++/80251] Is the is_aggregate meta function missing?

2017-03-29 Thread gcc-bugs at marehr dot dialup.fu-berlin.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80251

--- Comment #1 from gcc-bugs at marehr dot dialup.fu-berlin.de ---
I'm sorry for the inconvenience! I didn't see that is_aggregate was just a
recent addition to the standard [1]. I just wanted to see if I can check at
compile time if my data structure is an aggregate type, like I can do with
is_pod. And I just happened to find such a function on cppreference, but I
didn't realize that this  was added quite recently.

[1] http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/p0625r0.html#2911