externals: Update mp to latest
Merge commit '163b59390c32745f95838b121be3ef5e2cf08e8c'
This commit is contained in:
commit
72f8abe11d
2 changed files with 8 additions and 0 deletions
1
externals/mp/README.md
vendored
1
externals/mp/README.md
vendored
|
@ -103,6 +103,7 @@ Type traits not in the standard library.
|
||||||
* `mp::parameter_list`: Get a typelist of the parameter types
|
* `mp::parameter_list`: Get a typelist of the parameter types
|
||||||
* `mp::get_parameter`: Get the type of a parameter by index
|
* `mp::get_parameter`: Get the type of a parameter by index
|
||||||
* `mp::equivalent_function_type`: Get an equivalent function type (for MFPs this does not include the class)
|
* `mp::equivalent_function_type`: Get an equivalent function type (for MFPs this does not include the class)
|
||||||
|
* `mp::equivalent_function_type_with_class`: Get an equivalent function type with explicit `this` argument (MFPs only)
|
||||||
* `mp::return_type`: Return type of the function
|
* `mp::return_type`: Return type of the function
|
||||||
* `mp::class_type`: Only valid for member function pointer types. Gets the class the member function is associated with.
|
* `mp::class_type`: Only valid for member function pointer types. Gets the class the member function is associated with.
|
||||||
|
|
||||||
|
|
|
@ -36,11 +36,15 @@ struct function_info<R(*)(As...)> : function_info<R(As...)> {};
|
||||||
template<class C, class R, class... As>
|
template<class C, class R, class... As>
|
||||||
struct function_info<R(C::*)(As...)> : function_info<R(As...)> {
|
struct function_info<R(C::*)(As...)> : function_info<R(As...)> {
|
||||||
using class_type = C;
|
using class_type = C;
|
||||||
|
|
||||||
|
using equivalent_function_type_with_class = R(C*, As...);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class C, class R, class... As>
|
template<class C, class R, class... As>
|
||||||
struct function_info<R(C::*)(As...) const> : function_info<R(As...)> {
|
struct function_info<R(C::*)(As...) const> : function_info<R(As...)> {
|
||||||
using class_type = C;
|
using class_type = C;
|
||||||
|
|
||||||
|
using equivalent_function_type_with_class = R(C*, As...);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class F>
|
template<class F>
|
||||||
|
@ -55,6 +59,9 @@ using get_parameter = typename function_info<F>::template parameter<I>::type;
|
||||||
template<class F>
|
template<class F>
|
||||||
using equivalent_function_type = typename function_info<F>::equivalent_function_type;
|
using equivalent_function_type = typename function_info<F>::equivalent_function_type;
|
||||||
|
|
||||||
|
template<class F>
|
||||||
|
using equivalent_function_type_with_class = typename function_info<F>::equivalent_function_type_with_class;
|
||||||
|
|
||||||
template<class F>
|
template<class F>
|
||||||
using return_type = typename function_info<F>::return_type;
|
using return_type = typename function_info<F>::return_type;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue