Skip to content

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";

}