Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript electronics |
c++ - Is this a bug or this the code wrong?
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 >) Apr 22 2007
|