template function
Dr. Michael Albert
albert@esther.rad.tju.edu
Mon May 31 12:59:00 GMT 1999
Dear Friend:
First let me say how much I appreciate Cygnus's work with the GNU
project and the effort of all of those involved.
I'm afraid today, though, I'm here to issue a bug report (forgive
me if I am mistaken, but to the best of my knowledge this code
is ANSI).
Thank you.
-Mike
Using egcs-2.91.66 19990314 (egcs-1.1.2 release) under Solaris2.5.1
--------------------------code-----------------------------------------
template<class T,int W, int H>
class XX{
public:
friend class YY;
class YY{};
};
template<class O, class T, const int W, const int H>
O& operator<<(O& o, XX<T,W,H>& xx)
{
XX<T,W,H>::YY yy;
return o;
}
int main(int argc, char *argv[])
{
int x;
XX<int,100,100> xx;
x << xx;
}
----------------------------error message--------------------------------
g++ -c nest.cc
nest.cc: In function `int & operator <<<int, int, 100, 100>(int &, class
XX<int,100,100> &)':
nest.cc:19: instantiated from here
nest.cc:11: type/value mismatch at argument 2 in template parameter list
for `template <class T, int const W, int const H> XX<T,W,H>'
nest.cc:11: expected a constant of type `int', got `int'
nest.cc:11: confused by earlier errors, bailing out
make: *** [nest.o] Error 1
More information about the Gcc-bugs
mailing list