Function Variable
Older way (before C++11)
- Before C++11, we used to use
function-pointers
.
#include <iostream>
int sum(int a, int b){
return a+b;
}
int main(){
int(*fn)(int, int) = nullptr;
if(!fn){
std::cout<<"fn is null.\n";
}
fn = sum;
std::cout<<"calling fn: "<<fn(2,3)<<"\n";
}
After C++11
- From C++11 you can use std::function to store functions.
std::function<return_type(parameter_type1, parameter_type2, ...)>
#include <iostream>
int sum(int a, int b){
return a+b;
}
int main(){
std::function<int(int, int)> fn = nullptr;
if(!fn){
std::cout<<"fn is null.\n";
}
fn = sum;
std::cout<<"calling fn: "<<fn(2,3)<<"\n";
}