Add static assertions to std::function, so that more user-friendly diagnostics are given when trying to store a non-copyable target object. These preconditions were added as "Mandates:" by LWG 2447, but I'm committing them separately from implementing that, to allow just this change to be backported more easily. Signed-off-by: Jonathan Wakely libstdc++-v3/ChangeLog: * include/bits/std_function.h (function::function(F)): Add static assertions to check constructibility requirements. Tested powerpc64le-linux. Committed to trunk.