美文网首页
★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