This patch implements a new trait __is_same_as. This is foundational for future work on concepts in that it provides a mechanism for reasoning about type equivalences.
It also provides the correct preconditions for __is_convertible_to as required in meta.rel. 2013-07-26 Andrew Sutton <andrew.n.sut...@gmail.com> * gcc/cp/semantics.c (trait_expr_value): Evaluate __is_same_as. (finish_trait_expr): Check __is_same_as and __is_convertible_to. * gcc/cp/constraint.cc (diagnose_trait): Diagnose failures in __is_same_as. * gcc/cp/parser.c (cp_parser_primary_expression), (cp_parser_trait_expr): Parse __is_same_as. * gcc/cp/cp-tree.h (cp_trait_kind): Add CPTK_IS_SAME_AS. * gcc/cp/cxx-pretty-print.c (pp_cxx_trait_expression): Pretty print __is_same_as trait. Andrew
is-same-as.patch
Description: Binary data