mercredi 19 octobre 2016

Assigning a variadic function pointer to std::function

I am trying to pass a function pointer to a std::function argument. This is a part of a bigger code. I want to know whether it is possible to do so? As I know std::function is assignable from a function pointer.

#include <functional>
#include <iostream>


template<typename R, typename  ...Args>
    void storeFun(std::string funcName, std::function<R(Args...)> funcPtr){

    std::cout << funcPtr(2);
}

template<typename R, typename  ...Args, typename funcType>
    void storeFun2(std::string funcName,funcType funcPtr){
    std::function<R(Args...)> f22 = funcPtr;

    std::cout << f22(2);
}

int fun1(int a){
    return a;
}

int main(){

    storeFun("fun1",fun1);
    storeFun2("fun1",fun1);

    return 0;
}

Aucun commentaire:

Enregistrer un commentaire