std::future Wait Behavior

What happens when you call get() on a std::future that has already been retrieved once?

std::future<int> fut = std::async([]{ return 42; });
int x = fut.get();
int y = fut.get(); // What happens here?