Add <functional> include in util::function for std::invoke

This commit is contained in:
Nikita Lisitsa 2020-11-24 23:10:15 +03:00
parent 75b847ec23
commit 1e1679ffe0

View file

@ -2,18 +2,11 @@
#include <type_traits>
#include <memory>
#include <functional>
namespace psemek::util
{
namespace detail
{
// Implemented in cpp to prevent dependency on <functional>
[[noreturn]] void bad_function_call();
}
template <typename Signature>
struct function;
@ -154,7 +147,7 @@ namespace psemek::util
R function<R(Args...)>::operator()(Args1 && ... args) const
{
if (!vtable_)
detail::bad_function_call();
throw std::bad_function_call();
return vtable_->call(const_cast<void *>(static_cast<void const *>(&storage_)), std::forward<Args1>(args)...);
}