Zie ik heb hier in mijn code verscheidene delen van code die enorm hard op elkaar trekken:
Nu heb ik geprobeerd daar een template-functie van te maken:
Maar tja
je raadt het al
da werkt nie
Waarom zou ik hier om verduidelijking vragen hé 
Ik vervang bvb zo'n stuk code door:
Maar dan krijg ik volgende fout:
Een andere mogelijkheid waaraan ik al gedacht heb is voor macro'ke te gebruiken, maar ja ... Dat werkt ook, maar daar leer ik niets uit
C++:
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
| CKleinPakket kp(*lt_LabelInfo); if ( kp.IsGoedLabel() ) { if ( !kp.SchrijfNaarQueue() ) { Fire_Error( _bstr_t( _T("Could not write to queue-file") ) ); } } else { Fire_Error( _bstr_t( _T("Erroneous label!") ) ); } [... snip ...] CParcelLetter pl(*lt_LabelInfo); if ( pl.IsGoedLabel() ) { if ( !pl.SchrijfNaarQueue() ) { Fire_Error( _bstr_t( _T("Could not write to queue-file") ) ); } } else { Fire_Error( _bstr_t( _T("Erroneous label!") ) ); } |
Nu heb ik geprobeerd daar een template-functie van te maken:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| template <typename T> bool WriteIt( LabelInformation_t * lt_LabelInfo ) { T np(*lt_LabelInfo); if ( np.IsGoedLabel() ) if ( np.SchrijfNaarQueue() ) return true; else Fire_Error( _bstr_t( _T("Could not write to queue-file") ) ); else Fire_Error( _bstr_t( _T("Erroneous label!") ) ); return false; } |
Maar tja
Ik vervang bvb zo'n stuk code door:
code:
1
| WriteIt<CParcelLetter>(*lt_LabelInfo); |
Maar dan krijg ik volgende fout:
Dus voor mij wil dat precies zeggen dat ik een typedef niet mee mag geven als template parameter? MSDN zegt dan iets over typedef dat als een variable gebruikt wordt... Maar hmmm, dat doe ik niet (voor zover ik kan zien). Maar hoe los ik dat op voor die bunch of code daar weg te krijgen in bvb een simpele WriteIt?c:\c++ programs\dpd_dll\label.cpp(159) : error C2275: 'CParcelLetter' : illegal use of this type as an expression
c:\c++ programs\dpd_dll\soortenlabels\parcelletter.h(6) : see declaration of 'CParcelLetter'
Een andere mogelijkheid waaraan ik al gedacht heb is voor macro'ke te gebruiken, maar ja ... Dat werkt ook, maar daar leer ik niets uit
[ Voor 4% gewijzigd door curry684 op 06-11-2003 00:55 . Reden: Layout :) ]