Message ID | YSggBr1GCBOFtTHh@redhat.com |
---|---|
State | New |
Headers | show |
Series | [committed] libstdc++: Add static assertions for std::function requirements | expand |
diff --git a/libstdc++-v3/include/bits/std_function.h b/libstdc++-v3/include/bits/std_function.h index fb86ff1c5f8..e081cd81ef4 100644 --- a/libstdc++-v3/include/bits/std_function.h +++ b/libstdc++-v3/include/bits/std_function.h @@ -422,6 +422,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION function(_Functor __f) : _Function_base() { + static_assert(is_copy_constructible<_Functor>::value, + "std::function target must be copy-constructible"); + static_assert(is_constructible<_Functor, _Functor>::value, + "std::function target must be constructible from the " + "constructor argument"); + using _My_handler = _Function_handler<_Res(_ArgTypes...), _Functor>; if (_My_handler::_M_not_empty_function(__f))