From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4887 invoked by alias); 31 May 2009 13:15:18 -0000 Received: (qmail 4813 invoked by uid 48); 31 May 2009 13:15:06 -0000 Date: Sun, 31 May 2009 13:15:00 -0000 Subject: [Bug c++/40315] New: template instantiation fails when using const typename X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "doriankrause at web dot de" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-05/txt/msg02382.txt.bz2 Consider the program: ========================================= template class Foo { public: typedef double double3[3]; }; template void doSomething(const typename Foo::double3) { } template void doSomething<2>(const Foo<2>::double3); template void doSomething<3>(const Foo<3>::double3); ============================================ On Mac os X 10.5 it fails with gcc-4.4.0 (and also with the default gcc 4.0.1) with the error message > /usr/local/gcc-4.4.0/bin/g++ -v test.cc Using built-in specs. Target: i686-apple-darwin9 Configured with: ./configure --prefix=/usr/local/gcc-4.4.0 --disable-checking -enable-werror --enable-languages=c,c++,fortran --build=i686-apple-darwin9 --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9 Thread model: posix gcc version 4.4.0 (GCC) COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.6' '-v' '-shared-libgcc' '-mtune=generic' /usr/local/gcc-4.4.0/libexec/gcc/i686-apple-darwin9/4.4.0/cc1plus -quiet -v -D__DYNAMIC__ test.cc -fPIC -quiet -dumpbase test.cc -mmacosx-version-min=10.5.6 -mtune=generic -auxbase test -version -o /var/folders/jq/jqHHJIlXEbOleEkgf132gE+++TI/-Tmp-//cctUrpft.s ignoring nonexistent directory "/usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/../../../../i686-apple-darwin9/include" #include "..." search starts here: #include <...> search starts here: /usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/../../../../include/c++/4.4.0 /usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/../../../../include/c++/4.4.0/i686-apple-darwin9 /usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/../../../../include/c++/4.4.0/backward /usr/local/include /usr/local/gcc-4.4.0/include /usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/include /usr/local/gcc-4.4.0/lib/gcc/i686-apple-darwin9/4.4.0/include-fixed /usr/include /System/Library/Frameworks /Library/Frameworks End of search list. GNU C++ (GCC) version 4.4.0 (i686-apple-darwin9) compiled by GNU C version 4.4.0, GMP version 4.2.1, MPFR version 2.3.0. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 4703a3934dc941165107f7c66932f1e1 test.cc:15: error: template-id 'doSomething<2>' for 'void doSomething(const double*)' does not match any template declaration test.cc:18: error: template-id 'doSomething<3>' for 'void doSomething(const double*)' does not match any template declaration Removing the const clarifier gives no errors. -- Summary: template instantiation fails when using const typename Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: doriankrause at web dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40315