diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-16 13:49:27 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-16 13:49:27 +0000 |
commit | e89e69ce3701f840d1da2572d1f364ab2ef758b1 (patch) | |
tree | 2efe0f169615081ff4e39f38279fc3a970b8a1db /gcc/cp/NEWS | |
parent | 00fa9079fff8eb65ddbd0dab17e3ec4e6e3bd611 (diff) | |
download | gcc-e89e69ce3701f840d1da2572d1f364ab2ef758b1.tar.gz |
Remove 3.4 change list, point to gcc-3.4/changes.html
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70506 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/NEWS')
-rw-r--r-- | gcc/cp/NEWS | 89 |
1 files changed, 1 insertions, 88 deletions
diff --git a/gcc/cp/NEWS b/gcc/cp/NEWS index 00a50e4cd82..75a5823fc96 100644 --- a/gcc/cp/NEWS +++ b/gcc/cp/NEWS @@ -1,93 +1,6 @@ *** Changes in GCC 3.4: -* The C++ parser in G++ has been rewritten from scratch. As a result, G++ - is considerably more compliant to the C++ standard. As a result, it - accepts more valid programs, and rejects more invalid programs. - - Many of the changes below are a consequence of the new parser. - -* Friend declarations that refer to template specializations are rejected - if the template has not already been declared. - - For example: - - template <typename T> - class C { - friend void f<>(C&); - }; - - is rejected; you must first declare `f' as a template: - - template <typename T> - void f(T); - -* You must use "template <>" to introduce template specializations, as - required by the standard. For example: - - template <typename T> - struct S; - - struct S<int> { }; - - is rejected; you must write: - - template <> struct S<int> {}; - -* You must now use the `typename' and `template' keywords to disambiguate - dependent names, as required by the C++ standard. - -* The "named return value" extension has been removed. - -* The "implicit typename" extension has been removed. - -* Default arguments in function types have been deprecated and will be -removed. - -* G++ used to accept code like this: - - struct S { - int h(); - void f(int i = g()); - int g(int i = h()); - }; - - This behavior is not mandated by the standard. - - Now G++ issues an error about this code. To avoid the error, you must - move the declaration of `g' before the declaration of `f'. The - default arguments for `g' must be visible at the point where it is - called. - -* When -pedantic is used, G++ now issues errors about spurious semicolons; - for example: - - namespace N {}; // Invalid semicolon. - void f() {}; // Invalid semicolon. - -* G++ no longer accepts attributes for a declarator after the - initializer associated with that declarator. For example: - - X x(1) __attribute__((...)); - - is no longer accepted. Instead, use: - - X x __attribute__((...)) (1); - -* 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.4 are described in 'gcc-3.4/changes.html' *** Changes in GCC 3.3: |