Most vexing parse

What does the following declaration mean?

struct Foo {};
struct Bar {
    Bar(Foo) {}
};

int main() {
    Bar b(Foo());
}