Au passage, la règle pourrait bien être que les destructeurs d'une classe qui a au moins une méthode virtuelle sont virtuels. Ou de définir un mot clé "nonvirtual" pour les 0.01% des cas où on veut explicitement éviter la création d'une vtable.
Donc faire se taper un overhead inutile à 95% des appels de méthodes ?
Interdire l'inlining implicite de toutes les méthodes tant qu'elles n'ont pas été explicitement marquées nonvirtual (ou final ou private), comme c'est le cas en java ?
Au passage, la règle pourrait bien être que les destructeurs d'une classe qui a au moins une méthode virtuelle sont virtuels.
Tous les compilos récents gueulent quand tu oublies le destructeurs virtual d'une classe qui a une/des méthodes virtual.
Ce n'est donc plus la peine de complexifier le langage le problème est réglé du point de vue de la vie quotidienne du développeur (sauf celui qui compile sans warnings mais lui il veut aller en enfer).
surcharger la fonction main, une en int main(int, char**) et une en bool main(vector)
T'as pas l'impression de t'attaquer à un détail de détail de détail là ?
Ça représente moins de 0,001 % de n'importe quel programme sérieux la signature du point d'entrée.
[^] # Re: Donc pour résumer...
Posté par DerekSagan . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.
Donc faire se taper un overhead inutile à 95% des appels de méthodes ?
Interdire l'inlining implicite de toutes les méthodes tant qu'elles n'ont pas été explicitement marquées nonvirtual (ou final ou private), comme c'est le cas en java ?
Tous les compilos récents gueulent quand tu oublies le destructeurs virtual d'une classe qui a une/des méthodes virtual.
Ce n'est donc plus la peine de complexifier le langage le problème est réglé du point de vue de la vie quotidienne du développeur (sauf celui qui compile sans warnings mais lui il veut aller en enfer).
T'as pas l'impression de t'attaquer à un détail de détail de détail là ?
Ça représente moins de 0,001 % de n'importe quel programme sérieux la signature du point d'entrée.