std :: Funktion zu erstellen, hier ist das, was ich tue: -auslassen std :: Platzhalter in std :: bind
std::function<void(int,int,int)> f=
std::bind(&B::fb,this,
std::placeholders::_1,
std::placeholders::_2,
std::placeholders::_3
);
void B::fb(int x,int k,int j){} //example
Es ist offensichtlich, dass B::fb
drei Parameter erhalten.
Um die Lesbarkeit & maintainablity zu erhöhen, ich wünsche ich diese stattdessen nennen könnte: -
std::function<void(int,int,int)> f=std::bind(&B::fb,this); //omit _1 _2 _3
Frage
Gibt es irgendwelche Funktionen in C++, die die Platzhalter Weglassen aktivieren?
Es sollte _1, _2, ..., in Bestellungen automatisch aufrufen.
Ich habe gegoogled "Platzhalter C++ weglassen", aber keine Spur finden.
Sie können nicht die Platzhalter weglassen. Denken Sie daran, dass 'B :: fb' möglicherweise überlastet ist. – KayEss
Dann, lassen Sie es den "mehrdeutigen" Kompilierungsfehler zu mir werfen. – javaLover
Nun, es wirft jetzt einen Fehler, wenn Sie Pace Holders weglassen. Kein "Ambiguismus", aber nahe genug. –