[Bug c++/15271] New: use of nested template classes generates internal error
albert at rad dot upenn dot edu
gcc-bugzilla@gcc.gnu.org
Mon May 3 20:41:00 GMT 2004
Configuration:
Configured with: /ipl/srcs/gnu/gcc-3.3.1/configure
--prefix=/ipl/inst01/gnu/gcc-3.3.1 --with-gnu-ld
--with-ld=/ipl/inst01/gnu/binutils-2.14/bin/ld --with-gnu-as
--with-as=/ipl/inst01/gnu/binutils-2.14/bin/as
Thread model: posix
gcc version 3.3.1
Compilation of the below code with:
g++ -c bug bug.cc
generates the following error message:
bug.cc: In function `BGvec_base<Dimension, coeff_t> operator*(k_t, const
BGvec_base<Dimension, coeff_t>&) [with k_t = double, int Dimension = 2,
coeff_t = double]':
bug.cc:31: instantiated from here
bug.cc:25: internal compiler error: in tsubst, at cp/pt.c:6739
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Thank you. As always, you have my deep appreciation.
template<int Dimension, typename coeff_t=double>
class BGvec_base{
public:
//default constructor, default copy constructor, default assignment
double& operator[](int i){ return v[i]; }
const double& operator[](int i) const { return v[i]; }
template<typename k_t>
class Ktimes : public BGvec_base{
public:
Ktimes( k_t k, const BGvec_base& A ){
for(int i=0; i<Dimension; ++i) v[i] = k*A[i];
}
};
protected:
coeff_t v[Dimension];
};
template<typename k_t, int Dimension, typename coeff_t>
BGvec_base<Dimension, coeff_t> operator*
( k_t k, const BGvec_base<Dimension,coeff_t>& A)
{
return BGvec_base<Dimension,coeff_t>::Ktimes<k_t> (k,A);
}
int main(int argc, char *argv[])
{
BGvec_base<2> A; A[0] = 5.0; A[1] = 7.0;
BGvec_base<2> B = 2.0*A;
}
--
Summary: use of nested template classes generates internal error
Product: gcc
Version: 3.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: albert at rad dot upenn dot edu
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: sparc-sun-solaris2.8
GCC host triplet: sparc-sun-solaris2.8
GCC target triplet: sparc-sun-solaris2.8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15271
More information about the Gcc-bugs
mailing list