N
Ich bin generell skeptisch gegenüber Sprachmitteln, die die Syntax minimal verschönern und dafür die Sprache komplexer und Compiler fehleranfälliger machen (Stichwort Deduktionsregeln). Ich persönlich finde, bei
tuple t(4, 3, 2.5);
halten sich die Verschönerung und die durch die Verschleierung des Templates entstandene Verwirrung die Waage. Mit anderen Worten,
auto t = make_tuple(4, 3, 2.5);
ist zuweit von einem echten Problem entfernt, als dass ich hier Handlungsbedarf sähe. Die angesprochene Konsistenz, die damit erreicht würde, ist ohnehin fragwürdig -- statt
auto p = make_unique<int>(4);
kann man nämlich nicht
unique_ptr p(4)
schreiben, da die Auflösung spätestens bei Zeigern mehrdeutig (oder höchst verwirrend) ist.
unique_ptr q(new int);
/* ist das */ unique_ptr<int> q(new int);
/* oder */ auto q = make_unique<int*>(new int);
Bei diesen Proposals habe ich zunehmend das Gefühl, dass Leute eher ihre persönlichen Syntaxvorlieben befriedigen als die Sprache verbessern möchten. Viele Leute sehen auch nicht ein, dass jedes Feature, das die Sprache komplexer macht, langfristig negative Auswirkungen hat: Der Lernprozess dauert nochmals länger, Leute verstehen neueren Code nicht mehr, Entwickler wenden sich bei zu grosser Komplexität potentiell ab, Compiler werden schwieriger zu implementieren und enthalten mehr Bugs, der Sprachstandard selbst wird schwieriger konsistent und widerspruchslos zu halten. Für Features mit echtem Mehrwert kann sich das lohnen, aber für solche syntaktischen Oberflächlichkeiten bin ich klar dagegen. Das if-for von kürzlich ist da noch einige Stufen schlimmer.
...aber das ist nur meine Meinung.