Вам нужно использовать тип шаблона std :: initializer_list. Пример:
#include <iostream>
class X {
public:
X (std::initializer_list<int> list) {
for (auto i = list.begin(); i != list.end(); i++) {
std::cout << *i << std::endl;
}
}
};
int main () {
X x = {1,2,3,4,5};
}
Я не знаю, есть ли какой-либо анализ производительности в упомянутой вами структуре, но в моем проекте lambdaj я очень широко использовал динамический прокси с использованием той же технологии (cglib). В PDF-файле, который объясняет, как работает моя библиотека, вы также можете найти интересное сравнение производительности по этому вопросу.