Ik vind het ontzettend onlogisch om dat void-argument te gebruiken en volgens de compilers waar ik mee heb gewerkt is het volstrekt legaal en standard-compliant om 'm weg te laten. (Als dat void-argument verplicht wordt dan werkt niets van mijn C/C++ code meer!

)
De enige reden die ik kan verzinnen om het verplicht te stellen is dat je dan het gezeik niet meer hebt dat je de default-constructor van een C++-object niet kan aanroepen:
C++:
1
2
3
4
5
6
7
8
| void functie()
{
Foo
a(), /* Illegaal, want lokale functie definitie ofzo */
b(1), /* Legaal! */
c, /* Legaal; default constructor. */
d = Foo(); /* Legaal; default constructor. */
} |
Ik zou het logisch vinden dat "a()" ook geldig zou moeten zijn (het is namelijk hetzelfde geval als "b(1)" alleen dan met een argument minder) en als een functiedeclaratie zonder argumenten verplicht met een void-argument moet, dan is zo'n declaratie al niet meer ambigue.
Het is trouwens maar de vraag of je daar beter van wordt, want je verruilt slechts de ene inconsistentie door de andere.
[
Voor 124% gewijzigd door
Soultaker op 07-11-2003 17:40
]