Adds initial support for matching constrained out-of-class member function definitions to their declarations. Like so:
template<typename T>
struct S
{
void f(const T& x)
requires Copyable<T>();
};
template<typename T>
void S<T>::f() requires Copyable<T>() { ... };
This does not a complete solution. It won't correctly match S<T>
against specializations (if any exist), nor will it match f, if f is
declared as a member function template. I'll address this after some
changes to class templates.
Changelog:
2013-06-24 Andrew Sutton <[email protected]>
* gcc/cp/parser.c (cp_parser_init_declarator): Parse template
requirements for out-of-class member definitions.
* gcc/cp/decl2.c (check_classfn): Include match out-of-class
definitions using constraints.
* gcc/cp/constraint.cc (equivalently_constrained). Use get_constraints.
(more_constrained). Use get_constraints.
Andrew
memfun.patch
Description: Binary data
