std::bind 和 成員函數中的重載函數

#include <iostream>
#include <functional>

class testBind
{
public:
    void print(int num)
    {
        std::cout << "num = " << num << std::endl;
    }

    void print(const std::string& str)
    {
        std::cout << "str = " << str << std::endl;
    }
};

using mf_printnum = void(testBind::*)(int);
using mf_printstr = void(testBind::*)(const std::string&);

int main(int argc, char *argv[])
{
    testBind test;

    std::function<void(int)> mf = std::bind((mf_printnum)&testBind::print, test, std::placeholders::_1);
    std::function<void(const std::string&)> mf2 = std::bind((mf_printstr)&testBind::print, test, std::placeholders::_1);

    mf(11);

    mf2("test");

    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章