【发布时间】:2019-09-25 14:09:18
【问题描述】:
我确实知道this。
但是,我没有要比较的两个函数,我有一个函数签名和一个函数指针
template<typename T, typename ... A>
using RequiredSignature = bool(T&, A ... a);
template<typename T, typename ... A>
using RequiredFP = bool(*)(T&, A ... a);
问题:如何确保我收到的函数指针确实确认了所需的签名?在编译时。
【问题讨论】:
-
也许
std::is_copy_assignable<decltype(&ok_fun), RequiredSignature<int>*>? -
但是您是否尝试过简单地将有问题的行更改为
required_sig* rfp; /* defines a function pointer */? -
@BenVoigt 所有好的想法都很简单......让我试试......
-
@BenVoigt 并且它有效。太明显了,无法注意到。谢谢。
-
@BenVoigt 我想的另一个解决方案是使用
std::common_type< signature, decltype(fp)>...但是如果::type存在,则需要一点SFINAE编号才能返回true ..这更简单。
标签: c++