c++ - Is this a bug or this the code wrong?
- =?ISO-8859-1?Q?=22Sz=2E_Horv=E1t=22?= (21/21) Apr 20 2007 I tried to compile a program, which I normally use with gcc, using dmc.
- =?ISO-8859-1?Q?=22Sz=2E_Horv=E1t=22?= (2/2) Apr 20 2007 I forgot to mention that this problem exists with both dmc 8.49 and the
- =?ISO-8859-1?Q?=22Sz=2E_Horv=E1t=22?= (1/1) Apr 22 2007 Anyone?
- Bertel Brander (8/32) Apr 22 2007 I think it's a bug in the compiler, your code seems fine.
I tried to compile a program, which I normally use with gcc, using dmc. It compiles with gcc, but dmc gives a strange error message. Here is a reduced test case: template<typename T> class arr { T x; }; template<void (*D)(const arr<double>)> class ode { }; void fun(const arr<double>) { } int main() { ode<fun> odeInst; return 0; } Is the code wrong or is this a bug in dmc? The error message is: ode<fun> odeInst; ^ sim.cpp(9) : Error: need explicit cast to convert from: void (*C func)(const arr<double >) to : void (*C func)(const arr<double >) --- errorlevel 1 If I remove the const or change arr<double> to double *, the error message disappears. Thanks for your help in advance, Szabolcs
Apr 20 2007
I forgot to mention that this problem exists with both dmc 8.49 and the 8.50 beta.
Apr 20 2007
Sz. Horvát skrev:I tried to compile a program, which I normally use with gcc, using dmc. It compiles with gcc, but dmc gives a strange error message. Here is a reduced test case: template<typename T> class arr { T x; }; template<void (*D)(const arr<double>)> class ode { }; void fun(const arr<double>) { } int main() { ode<fun> odeInst; return 0; } Is the code wrong or is this a bug in dmc? The error message is: ode<fun> odeInst; ^ sim.cpp(9) : Error: need explicit cast to convert from: void (*C func)(const arr<double >) to : void (*C func)(const arr<double >)I think it's a bug in the compiler, your code seems fine. Alone the message (convert A to A) indicates that the compiler is in a mess. -- Just another homepage: http://damb.dk But it's mine - Bertel
Apr 22 2007