c++ template help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I am stuck and need some help.  I am taking the uWave embedded code that is
currently being compiled with Tornado 2.0 and 'porting' the code so that it
works with the new Tornado 2.2 (gcc 2.96 I believe) compiler (c++ code),
which is apparently more ANSI C++ compliant.

I am getting an error while trying to compile one of my project.  The
problem code and the error message are below:

Code:

Raw_preproc.h:
    CComQIPtr<IDspCaptureData> pIDspCaptureData;


DSPAlgsTypes.h:
template <class T, const IID* piid = 0>
class CComQIPtr
{....

where IID is:
#define IID long

Error Message:
M:\\ThomasAn_jedi_uWaveEASInstrPrivate\\igxlwc\\Platform\\Inc\\drivers\\Raw_preproc.h:55:
 could not convert template argument `0' to `const long int *'
M:\\ThomasAn_jedi_uWaveEASInstrPrivate\\igxlwc\\Platform\\Inc\\drivers\\Raw_preproc.h:55:
 ANSI C++ forbids declaration `pIDspCaptureData' with no type

I've tried a number of things but I can't get the above code to compile.  I
have also modified DSPAlgsTypes.h to the following:
extern const IID tempNull = 0;
template <class T, const IID* piid = &tempNull>
class CComQIPtr
{...

The individual files compile but it won't link.  Also, a number of other
projects (that reference DSPAlgsTypes.h) are broken.  I've also tried
casting in DSPAlgsTypes.h to the following:

template <class T, const IID* piid = static_cast<const IID*>(0)>

and

template <class T, const IID* piid =(long *) 0>

and I get the following error message:
M:\\ThomasAn_jedi_uWaveEASInstrPrivate\\igxlwc\\Platform\\Inc\\drivers\\Raw_preproc.h:55:
 `0' is not a valid template argument
M:\\ThomasAn_jedi_uWaveEASInstrPrivate\\igxlwc\\Platform\\Inc\\drivers\\Raw_preproc.h:55:
 it must be the address of an object with external linkage

Any suggestions that you can offer would be most helpful.

Best Regards,
Anish


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux