diff options
author | lerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-01 15:06:02 +0000 |
---|---|---|
committer | lerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-01 15:06:02 +0000 |
commit | 220b71edb729f8cb24de27b51d4478bc817c67e0 (patch) | |
tree | cfa3a63f72156106d2f13838ea20b64ffacdbb1f /gcc/cp/NEWS | |
parent | 8512e308ff944b95a6dea55151f952118716eae5 (diff) | |
download | gcc-220b71edb729f8cb24de27b51d4478bc817c67e0.tar.gz |
PR c++/8442, c++/8806
* decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are
preferred.
(check_elaborated_type_specifier): Add allow_template_p
parameter. Check tag mismatch and class template.
(xref_tag): Add template_header_p parameter. Add assertion
that name is an IDENTIFIER_NODE. Remove implicit typename
warning. Simplify lookup process if globalize is true.
(cxx_init_decl_processing): Adjust call to xref_tag.
(xref_tag_from_type): Likewise.
* decl2.c (handle_class_head): Likewise.
* parser.c (cp_parser_elaborated_type_specifier,
cp_parser_class_head): Likewise.
* rtti.c (init_rtti_processing, build_dynamic_cast1,
tinfo_base_init, emit_support_tinfos): Likewise.
* class.c (is_base_of_enclosing_class): Remove.
* pt.c (convert_template_argument): Don't accept RECORD_TYPE as
template template argument.
* cp-tree.h (xref_tag): Adjust declaration.
(is_base_of_enclosing_class): Remove.
* NEWS: Document template template argument change.
* g++.dg/template/elab1.C: Likewise.
* g++.dg/template/type2.C: Likewise.
* g++.dg/template/ttp3.C: Adjust expected error message.
* g++.old-deja/g++.law/visibility13.C: Likewise.
* g++.old-deja/g++.niklas/t135.C: Likewise.
* g++.old-deja/g++.pt/ttp41.C: Likewise.
* g++.old-deja/g++.pt/ttp43.C: Use qualified name for template
template argument.
* g++.old-deja/g++.pt/ttp44.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70048 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/NEWS')
-rw-r--r-- | gcc/cp/NEWS | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cp/NEWS b/gcc/cp/NEWS index 2642aeda0eb..00a50e4cd82 100644 --- a/gcc/cp/NEWS +++ b/gcc/cp/NEWS @@ -76,6 +76,19 @@ removed. * Covariant returns are implemented for all but varadic functions that require an adjustment. +* Inside the scope of a template class, the name of the class itself + is no longer a valid template template argument. Instead, you now have + to qualify the name by its scope. For example: + + template <template <class> class TT> class X {}; + template <class T> class Y { + X<Y> x; // Invalid. + }; + + The valid code for the above example is: + + X< ::Y> x; // Valid. Note that `<:' is a digraph and means `['. + *** Changes in GCC 3.3: * The "new X = 3" extension has been removed; you must now use "new X(3)". |