下面的程序用gcc和clang编译,但这实际上是标准的C++ 11还是两个编译器都选择支持它以方便使用?
struct Foo {
int i;
void bar() { std::cout << i << std::endl; }
};
int main() {
std::function<void(Foo*)> method = &Foo::bar;
Foo myFoo{4};
method(&myFoo); // prints 4
}
Run Code Online (Sandbox Code Playgroud)
这当然很方便,但我不明白它是如何工作的.