أفترض ، مع الأمثلة الخاصة بك std::vector<int>
و std::string
كنت تقصد أيضًا تغطية الحاويات الأخرى ، على سبيل المثال ، std::list<int>
, std::deque<int>
, ، وما إلى ذلك التي لها نفس المشكلة ، من الواضح ، كما std::vector<int>
. وبالمثل ، فإن int
ليس النوع الوحيد كما ينطبق أيضًا char
, short
, long
وهم unsigned
الإصدار (ربما بعض الأنواع المتكاملة الأخرى أيضًا).
أعتقد أن هناك أيضا std::valarray<T>
لكنني لست متأكدًا مما إذا T
يسمح ليكون نوع متكامل. في الواقع ، أعتقد أن هذه دلالات مختلفة:
std::valarray<double>(0.0, 3);
std::valarray<double>{0.0, 3};
هناك عدد قليل من قوالب فئة C ++ القياسية الأخرى التي تأخذ std::initializer_list<T>
كحجة ولكني لا أعتقد أن أيًا من هذه الأشياء لديه مُنشئ زائد سيتم استخدامه عند استخدام الأقواس بدلاً من الأقواس.