Ce serait bien de pouvoir facilement rechercher du texte dans mon code pour les endroits où le constructeur de certains objets est appelé. Voici le motif ci-dessous. Au lieu de classique:Est-ce que déclarer la variable avec l'inférence de type est aussi efficace que la "méthode classique" d'initialisation de la variable avec des parenthèses après le nom de la variable?
Object val(a, b);
Ce serait bien d'utiliser partout:
auto val = Object(a, b);
De cette façon, je peux utiliser recherche de texte simple pour "Object("
et obtenir la liste des endroits où j'appelle le constructeur de Object
. C'est aussi moins ambigu sur le plan syntaxique et donc plus facile de faire des outils simples pour automatiser certaines transformations de code. Il évite élégamment les problèmes de "l'analyse la plus vexante".
Ma seule préoccupation concerne l'impact possible sur les performances. Est-ce que le cas 2) est aussi rapide que le cas 1)? (Si l'on peut supposer que Object
a correctement défini constructeur de déplacement et l'opérateur d'affectation de mouvement et optimisations de compilateur de base sont activés.)
Plutôt que d'optimiser votre code pour les outils, vous pouvez essayer d'utiliser des outils qui fonctionnent avec votre code, tels que clang-query. –
Notez que vous pouvez utiliser une initialisation uniforme depuis C++ 11 pour éviter le problème d'analyse le plus vexant. – skypjack
Vous pouvez rechercher 'Object' et' ('avec un seul jeton entre –