Olası çoğaltmaları:
Why can't my C++ compiler deduce template argument for boost function?
Isn't the template argument (the signature) of std::function part of its type?Örtülü dönüşümler :: fonksiyon
Ben şu var:
#include <functional>
void Foo(std::function<void()> );
void Foo(std::function<void(int)>);
void Bar();
int main()
{
Foo(Bar); // Error: ambiguous
Foo([](){}); // Error: ambiguous
Foo(std::function<void()>(Bar )); // Ok
Foo(std::function<void()>([](){})); // Ok
}
İlk iki satır yapabilir main() işlev stili casussuz çalışır Son iki satırda t? Belki bir std :: enable_if çözümü ile?