77 template <
typename SomeLockableObject,
typename SomeFunction>
78 constexpr TrackedTask(
79 SomeLockableObject && someLockableObject, SomeFunction && function) :
80 m_lockableObject{std::forward<SomeLockableObject>(someLockableObject)},
81 m_function{std::forward<SomeFunction>(function)}
85 typename... Arguments,
86 typename = std::enable_if_t<
87 std::is_invocable_v<Function, Arguments...> ||
88 std::is_member_function_pointer_v<Function>>>
89 constexpr void operator()(Arguments &&... arguments)
92 m_lockableObject, m_function,
93 std::forward<Arguments>(arguments)...);
97 typename... Arguments,
98 typename = std::enable_if_t<
99 std::is_invocable_v<Function, Arguments...> ||
100 std::is_member_function_pointer_v<Function>>>
101 constexpr void operator()(Arguments &&... arguments)
const
104 m_lockableObject, m_function,
105 std::forward<Arguments>(arguments)...);
109 LockableObject m_lockableObject;