如何防止std::functionC bool++函数重载中的转换?\n例如
class Object final {\n \npublic:\n Object(bool boolean) : type_(22) {} //#1\n Object(const std::function<int(int*, int)> value) : type_(11) {} //#2\n \n int rettype() { return type_; };\n \nprivate:\n int type_;\n};\n\n\nint Println(int *args, int nargs) {\n printf("Println\\n");\n return 0;\n}\n\nint main() {\n cout << Object(Println).rettype() << endl; // 22\n cout << Object(std::function<int(int*, int)>(Println)).rettype() << endl; // 11\n}\n\nRun Code Online (Sandbox Code Playgroud)\n我想通过而不是\xef\xbc\x8c来调用#2,但结果是调用了#1Object(Println)Object(std::function<int(int*, int)>(Println))
我应该如何实现这个目标?
\n