// Primary template
template<typename Func>
-struct FuncHelper : public FuncHelper<decltype(&Func::operator())> {};
+struct FuncHelper : public FuncHelper<decltype(&Func::operator())>
+{};
// Overload for member function with const call operator
-template<typename C, typename R, typename ...Args>
-struct FuncHelper<R(C::*)(Args...) const> : public FuncHelper<R(C::*)(Args...)> {};
+template<typename C, typename R, typename... Args>
+struct FuncHelper<R (C::*)(Args...) const> : public FuncHelper<R (C::*)(Args...)>
+{};
// Overload for member function with non-const call operator
-template<typename C, typename R, typename ...Args>
-struct FuncHelper<R(C::*)(Args...)> {
+template<typename C, typename R, typename... Args>
+struct FuncHelper<R (C::*)(Args...)>
+{
using ClassType = C;
using FunctionType = std::function<R(Args...)>;
using ReturnType = R;
/// @endcond
-} // detail
+} // namespace detail
/**
* Provides traits for the given callable.