Je suppose, avec vos exemples pour std::vector<int>
et std::string
Vous vouliez également couvrir les autres conteneurs, par exemple, std::list<int>
, std::deque<int>
, etc. qui ont le même problème, évidemment, comme std::vector<int>
. De même, le int
n'est pas le seul type car il s'applique également à char
, short
, long
et leur unsigned
Version (peut-être également quelques autres types intégraux).
Je pense qu'il y a aussi std::valarray<T>
Mais je ne sais pas si T
est autorisé à faire partie intégrante. En fait, je pense que ceux-ci ont une sémantique différente:
std::valarray<double>(0.0, 3);
std::valarray<double>{0.0, 3};
Il existe quelques autres modèles de classe C ++ standard qui prennent un std::initializer_list<T>
Comme argument, mais je ne pense pas que l'un de ces éléments ait un constructeur surchargé qui serait utilisé lors de l'utilisation de parenthèses au lieu de bretelles.