美文网首页
★13.关于std--function

★13.关于std--function

作者: iDragonfly | 来源:发表于2017-06-30 22:18 被阅读0次

    给std::function对象赋值

    • 可以给std::function对象赋值任何类型的对象,但是在模板实例化阶段会报错。
    std::function<void(int)> fun1 = 4;
    std::function<void(int)> fun2 = std::string("123");   // 报错
    

    以std::function为参数的函数匹配问题

    • 因为可以给std::function对象赋值任何类型的对象,所以会出现二义性问题。
    #include <iostream>
    #include <functional>
    
    void fun(std::function<void(double)>) {}
    void fun(std::function<void(int)>) {}
    
    int main() {
        std::function<void(int)> f;
        fun(f);
        // 多个匹配的重载实例
        fun([](int) {});
        return system("pause");
    }
    

    相关文章

      网友评论

          本文标题:★13.关于std--function

          本文链接:https://www.haomeiwen.com/subject/reoicxtx.html