aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@gcc.gnu.org>2003-08-16 13:49:27 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2003-08-16 13:49:27 +0000
commitbfeec33d09a3296363421017c615ea12aa9b7788 (patch)
tree2efe0f169615081ff4e39f38279fc3a970b8a1db /gcc/cp
parente895113a67a061c20fbb16be60c2d90eb6ba084a (diff)
downloadgcc-bfeec33d09a3296363421017c615ea12aa9b7788.zip
gcc-bfeec33d09a3296363421017c615ea12aa9b7788.tar.gz
gcc-bfeec33d09a3296363421017c615ea12aa9b7788.tar.bz2
Remove 3.4 change list, point to gcc-3.4/changes.html
From-SVN: r70506
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/NEWS89
1 files changed, 1 insertions, 88 deletions
diff --git a/gcc/cp/NEWS b/gcc/cp/NEWS
index 00a50e4..75a5823 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: