"use of class template `template <T> class Array' as expression"

Paul Reilly preilly@allaire.com
Sun Dec 12 14:10:00 GMT 1999


I don't think the following code should generate this error.  I posted
this many months ago, but as Martin v. Loewis pointed out I didn't
include all the necessary information.  I've simplified the .cc file
and hopefully have included all the information necessary this time.

Thanks,
Paul

----------------------------------- List.cc -----------------------------------

template<class T> 
class Array
{
};

namespace gnu
{
  class List;
};
namespace java
{
  namespace lang
  {
    class String;
  };
};

class gnu::List
{
public:
  void createList (Array<::java::lang::String *> *listStrings) 
  {
  };
};

----------------------------------- List.ii -----------------------------------

# 1 "List.cc"
template<class T> 
class Array
{
};

namespace gnu
{
  class List;
};
namespace java
{
  namespace lang
  {
    class String;
  };
};

class gnu::List
{
public:
  void createList (Array<::java::lang::String *> *listStrings) 
  {
  };
};

-------------------------------- compile output --------------------------------

[preilly@gsxr tmp]$ /usr/local/devel/bin/gcc -v -save-temps -o List List.cc
Reading specs from /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 19991130 (experimental)
 /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ List.cc List.ii
GNU CPP version 2.96 19991130 (experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../include/g++-3
 /usr/local/include
 /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../i686-pc-linux-gnu/include
 /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/devel/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus List.ii -quiet -dumpbase List.cc -version -o List.s
GNU C++ version 2.96 19991130 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 19991130 (experimental).
List.cc:21: use of class template `template <T> class Array' as expression
List.cc:21: parse error before `:'
[preilly@gsxr tmp]$ 


More information about the Gcc-bugs mailing list