我有不同类型的对象,这些对象都是从一个共同的超类派生而来。我想知道在像下面这样的range for循环中使用std::initializer
list是否存在任何缺点:
for(auto object: std::initializer_list<Object *>{object1, object2, object3}) {
}
这种做法是否完全正确和高效?或者使用数组会更好吗?对我来说,std::array
的解决方案似乎更加限制编译器,并且明确声明大小存在一个缺点:
for(auto object: std::array<Object*, 3>{object1, object2, object3}) {
}
有没有其他更好的方法来迭代一个明确给出的对象列表?
{&a, {&b}}
。 - Johannes Schaub - litbfor (auto& e : { static_cast<B*>(&x), {&y} })
- Alexander Malakhov