C ++ 11 के बाद से आप एक रसीला और सामान्य फैशन में ऐसा करने के लिए कार्यात्मक पुस्तकालय का उपयोग कर सकते हैं । वाक्य रचना है, जैसे,
std::function<bool (int)>
bool
एक-तर्क फ़ंक्शन के यहाँ वापसी प्रकार कहाँ है जिसका पहला तर्क प्रकार का है int
।
मैंने नीचे एक उदाहरण कार्यक्रम शामिल किया है:
// g++ test.cpp --std=c++11
#include <functional>
double Combiner(double a, double b, std::function<double (double,double)> func){
return func(a,b);
}
double Add(double a, double b){
return a+b;
}
double Mult(double a, double b){
return a*b;
}
int main(){
Combiner(12,13,Add);
Combiner(12,13,Mult);
}
कभी-कभी, हालांकि, टेम्पलेट फ़ंक्शन का उपयोग करना अधिक सुविधाजनक होता है:
// g++ test.cpp --std=c++11
template<class T>
double Combiner(double a, double b, T func){
return func(a,b);
}
double Add(double a, double b){
return a+b;
}
double Mult(double a, double b){
return a*b;
}
int main(){
Combiner(12,13,Add);
Combiner(12,13,Mult);
}
typedef
।