Op zich is de compiler niet slecht maar op de eerste poging gaf ie wel een vreemde knaller op de eerste notatie (nl. dat de reference const moest zijn). En const-reference ging nu net aan m'n doel voorbij... want het gaat om een buffer die ik moet vullen
Ik zit hier tussen de kilometers C-code te werken en moet dus hier en daar integreren met allerhande classic structs. In 1 van die structs zitten enkele tientallen C-style strings (FileName[256], dat type dus) en die moet ik vullen uit XML van een clientbak. Die moet ik ook errorchecken, en om stapels dubbele code te voorkomen heb ik dus 1 enkele template call die alle data kan extracten, en automatisch sizechecking doet (knaller op te lange input).
Ik had ook al een constructie met macro's bedacht overigens, als volgt:
C++:
1
2
| bool FunctionCallEx(int P1, int P2, char* P3, int SizeOfP3);
#define FunctionCall(P1, P2, P3) FunctionCallEx(P1, P2, P3, sizeof(P3) / sizeof(char)) |
Dit zou an sich perfect werken (en zelfs 100% typesafe zijn) ware het niet dat ik 5 parameters heb waarvan 2 optioneel. En dakannie met een macro
Overigens heeft de uiteindelijke oplossing ook nog een zwakte omdat ik er geen single chars in kan frotten (de oude implementatie in VC herkende deze als een chararray van size 1 waardoor nog steeds lengthchecking). Ik heb nu dus een overload gemaakt voor single byref-chars. Helaas maja tis niet alsof VAX nog ondersteund wordt door
DEC/Digital ik bedoel
Compaq ik bedoel
HP, dus ik zal het met deze compiler moeten klaren
offtopic:
Ja ik zit weer thuis vandaar de lap tekst

[
Voor 3% gewijzigd door
curry684 op 28-04-2003 21:29
. Reden: typo en verduidelijking ]