Bonjour,
Je suis assez peu familier avec les template et je me retrouve confronté à un problème :
Voilà le code tel qu'il est réellement. Il n'est évidement pas entier et je peux rajouter les parties qui manquent si cela est utile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 .h template<class DT> class PP2DCID_Data : public PP2DCID_BaseData { public: PP2DCID_Data(PP2DCID_Element* pce, PP2DCID_Id I) : PP2DCID_BaseData(pce,I){}; bool Read(TStream*); inline DT* GetData() { return &dt; }; private: DT dt; }; class PP2DCID_MultiData : public PP2DCID_BaseData { public: PP2DCID_MultiData(PP2DCID_Element* pce, PP2DCID_Id I): PP2DCID_BaseData(pce,I){}; virtual ~PP2DCID_MultiData(); virtual bool Read(TStream* ps)=0; protected: unsigned int uiN; vData Datas; template<class DT> PP2DCID_Data<DT>* MandatoryGet(TStream* ps); }; .cpp template<class DT> PP2DCID_Data<DT>* PP2DCID_MultiData::MandatoryGet(TStream* ps) { PP2DCID_Data<DT>* pDDT; pDDT = dynamic_cast<PP2DCID_Data<DT>* > (CreateElement(ps)); if (!pDDT) throw Exception("Other Data Type expected"); return pDDT; }
J'ai C++ builder 5. La compilation meurt sur la ligne du fichier .cpp "template<class DT> PP2DCID_Data<DT>* PP2DCID_MultiData::MandatoryGet(TStream* ps)"
L'erreur reportée est "[C++ Erreur fatale] Format_PP2D_CID.cpp(692): F1004 Erreur du compilateur interne at 0x128a12c with base 0x1200000".
Si quelqu'un pouvait m'aider...
Merci.
Partager