Как я могу создать std:: функцию из функции-члена без необходимости ввода std:: placeholders:: _ 1, std:: placeholders:: _ 2 и т.д. Я бы хотел "разместить" все аргументы, сохранив только самого объекта.
struct Foo{
int bar(int,float,bool) {return 0;}
};
int baz(int,float,bool) {return 0;}
int main() {
Foo object;
std::function<int(int,float,bool)> fun1 = baz; // OK
std::function<int(int,float,bool)> fun2 = std::bind(&Foo::bar, object); // WRONG, needs placeholders
}
Я не хочу приводить аргументы на этом этапе, я просто хочу сохранить объект функции+. Например, я хотел бы иметь std::vector как с глобальными функциями, так и с функциями-членами. Это было легко сделать с FastDelegate (fastdelegate::MakeDelegate(object, &Class::function)
).
Я не хочу использовать лямбда, так как это потребует от меня повторных аргументов. Мне просто нужно старое поведение FastDelegate.