【发布时间】:2016-07-19 11:22:01
【问题描述】:
我最近了解到我不能:
- Take the address of an undefined function
- Take the address of a templatized function with a type it would fail to compile for
但我最近也了解到我可以 call decltype to get the return type of said function
所以一个未定义的函数:
int foo(char, short);
我想知道是否可以将参数类型与tuple 中的类型相匹配。这显然是一个元编程问题。在这个例子中,我真正想要的是decltypeargs:
enable_if_t<is_same_v<tuple<char, short>, decltypeargs<foo>>, int> bar;
谁能帮我理解decltypeargs 是如何制作的?
【问题讨论】:
-
@Barry 这绝不是这个问题的重复,所有答案都需要获取我的函数的地址,我明确表示我不能这样做,因为它是未定义的。请重新打开。
-
怀疑。你认为你为什么需要这个?
-
@LightnessRacesinOrbit 是的,我也对此表示怀疑。我实际上并不关心未定义的函数。但是,能够获得无法在 SFINAE 中生存的模板化函数的函数签名对我真的很有帮助。
-
@Barry 我做了,所有人。我试过了。他们是我开始怀疑这是可能的原因。我认为没有办法将未定义的函数作为参数传递。因此,我开始认为这是不可能的。
-
@Barry:那
&T::operator()做了什么?
标签: c++ metaprogramming decltype function-parameter addressof