r213924 - in /branches/c++-concepts: ChangeLog....

asutton@gcc.gnu.org asutton@gcc.gnu.org
Wed Aug 13 19:46:00 GMT 2014


Author: asutton
Date: Wed Aug 13 19:46:34 2014
New Revision: 213924

URL: https://gcc.gnu.org/viewcvs?rev=213924&root=gcc&view=rev
Log:
2014-08-13  Andrew Sutton  <andrew.n.sutton@gmail.com>
	
	Implement deduction-based explicit instantiation and specialization.
	* gcc/cp/call.c (joust): Allow all non-templates to be ordered by
	constraints.
	* gcc/cp/pt.c (get_class_bindings): Remove superfluous parameter and
	move constraint check into most_specialized_class.
	(most_constrained_function): Order functions with the same signatures
	by their constraints.
	(determine_specialization): Candidates must satisfy constraints. Also,
	order non-template candidates by constraints. Improve diagnostics
	for instances where candidates are rejected.
	(more_specialized_inst): New. Compare function templates.
	(most_specialized_instantiation): Refactor to use 
	more_specialized_inst and order by constraints.
	(most_specialized_class): Candidates must satisfy constraints.
	* gcc/cp/decl.c (various) Cosmetic fixes.
	(adjust_fn_constraints): Rewrite so that class template constraints
	are not imposed on member function declarations.
	* gcc/testsuite/g++.dg/concepts: New tests.


Added:
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-inst3.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-inst4.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-spec1.C
      - copied, changed from r213665, branches/c++-concepts/gcc/testsuite/g++.dg/concepts/class7.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-spec2.C
      - copied, changed from r213758, branches/c++-concepts/gcc/testsuite/g++.dg/concepts/class8.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-spec3.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-spec4.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-spec5.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/fn7.C
Removed:
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/class7.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/class8.C
Modified:
    branches/c++-concepts/ChangeLog.concepts
    branches/c++-concepts/gcc/cp/call.c
    branches/c++-concepts/gcc/cp/constraint.cc
    branches/c++-concepts/gcc/cp/decl.c
    branches/c++-concepts/gcc/cp/pt.c
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/decl-diagnose.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-inst1.C
    branches/c++-concepts/gcc/testsuite/g++.dg/concepts/explicit-inst2.C



More information about the Gcc-cvs mailing list