From ced7d4a113b96945ab3c3c40184d8bc3d0b038b1 Mon Sep 17 00:00:00 2001 From: wolf Date: Tue, 29 Jun 1999 17:48:24 +0000 Subject: [PATCH] impose a negativ-list of names we do not want to have in this file. this is due to a compiler bug in egcs 1.1.2, which does not gracefully handle local template classes if their name is globally defined, for example template struct Y; struct X {template struct Y{}; }; X::Y<1> y; does not work. So we filter out these classes at present. A better way would certainly be to only allow those classes into the forward-declarations.h file that are global, but that would mean parsing the include files instead of just searching for small bits... git-svn-id: https://svn.dealii.org/trunk@1502 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/Make_forward_declarations | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/deal.II/deal.II/Make_forward_declarations b/deal.II/deal.II/Make_forward_declarations index 04167c363f..a44f4657f8 100644 --- a/deal.II/deal.II/Make_forward_declarations +++ b/deal.II/deal.II/Make_forward_declarations @@ -74,7 +74,27 @@ sub parse_class_declarations { $declaration =~ s/\s\s+/ /g; $declaration =~ s/^\s+//g; $declaration =~ s/\s+$//g; - print $declaration, ";\n"; + + # impose a negativ-list of names we do not want to + # have in this file. this is due to a compiler bug in + # egcs 1.1.2, which does not gracefully handle local + # template classes if their name is globally defined, + # for example + # + # template struct Y; + # struct X {template struct Y{}; }; + # X::Y<1> y; + # + # does not work. So we filter out these classes at + # present. A better way would certainly be to only + # allow those classes into the forward-declarations.h + # file that are global, but that would mean parsing + # the include files instead of just searching for + # small bits... + if ( ! ($declaration =~ /EpsGrid|Patch/ )) + { + print $declaration, ";\n"; + } } } } -- 2.39.5