Поскольку вы используете C ++, как насчет перегрузки некоторого оператора и передачи аргументов один за другим?Например,
class MyFunction {
std::vector<int> param;
public:
MyFunction() { /* some initialisation? */ }
MyFunction &operator,(int eatMe) {
param.push_back(eatMe);
return *this;
}
~MyFunction() {
//the implementation of your function goes here
}
}
Затем вы можете назвать это так:
MyFunction(),2,3,5,7;
Обратите внимание, использование оператора запятой может выглядеть страшно, но на самом деле это очень полезно в этом случае.Это наименьший из возможных левоассоциативных операторов.
Если ваша функция принимает некоторые дополнительные параметры, а не только неизвестную длину int
-s, вы можете передать их в конструкторе.
Если кто-то использует что-то еще, кроме int
, будет использоваться оператор запятой по умолчанию (оценка левой стороны, сброс, оценка правой стороны).Если вам это не нравится - выберите другого оператора, например, в виде потока <<
или в стиле boost %
.