Je vais essayer de reformuler ce que j’ai compris. Tu souhaites que :
Foo foo;
foo.baz = "toto";
rajoute statiquement un membre baz de type string dans l’instance foo, et uniquement celle-ci ?
Ça casse tout le modèle de compilation C++, et c’est contraire à tout ce à quoi je m’attends quand je lis du C++ (c’est pour ça que je parlais de « casser le langage »). En plus, tu peux très bien obtenir ce résultat en surchargeant l’opérateur [] :
foo["baz"] = "toto";
Ce qui certes fait 3 caractères de plus à taper, mais est aussi lisible et beaucoup plus « dans l’esprit » du langage. Quant à l’idée que ce ne serait pas optimal, dans tous les cas, c’est un lookup dans une table de hachage (ou un dictionnaire), je ne suis pas sûr que l’intégrer au compilateur gagnera grand chose.
Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0
[^] # Re: Nouveau langage
Posté par whity . En réponse à la dépêche C++17 branche à la compilation (`if constexpr`). Évalué à 2.
J’ai un peu de mal à te suivre.
Je vais essayer de reformuler ce que j’ai compris. Tu souhaites que :
Foo foo;
foo.baz = "toto";
rajoute statiquement un membre baz de type string dans l’instance foo, et uniquement celle-ci ?
Ça casse tout le modèle de compilation C++, et c’est contraire à tout ce à quoi je m’attends quand je lis du C++ (c’est pour ça que je parlais de « casser le langage »). En plus, tu peux très bien obtenir ce résultat en surchargeant l’opérateur [] :
foo["baz"] = "toto";Ce qui certes fait 3 caractères de plus à taper, mais est aussi lisible et beaucoup plus « dans l’esprit » du langage. Quant à l’idée que ce ne serait pas optimal, dans tous les cas, c’est un lookup dans une table de hachage (ou un dictionnaire), je ne suis pas sûr que l’intégrer au compilateur gagnera grand chose.
Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0