gpt4 book ai didi

c++ - 接受所有成员函数指针的模板(包括 CV 限定和 ref 限定)

转载 作者:行者123 更新时间:2023-12-04 14:05:31 25 4
gpt4 key购买 nike

<分区>

我想编写一个模板,它接受一个指向成员函数的指针(可能是 CV 限定和/或 ref 限定),同时匹配所有相关类型(返回值的类型、类类型和参数的类型)。

简单的版本可能是这样的:

template <typename ReturnValue, typename Class, typename... Arguments>
void foo(ReturnValue(Class::* function_ptr)(Arguments...))
{
// do something with |function_ptr|
}

这适用于非 CV 限定的非 ref 限定的成员函数指针,但无法与指向 CV 限定和/或 ref 限定的成员函数的指针匹配。

有没有一种很好的方法可以将它保存在一个模板中并通过以某种方式很好地推导限定符来处理所有情况?


我可以降级为一个接受所有内容的简单模板(可能在 std::is_member_function_pointer 周围有一些 SFINAE)。但我仍然需要在某处提取类型(返回、类和参数),因此这实际上不会节省我任何工作。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com