我想知道是否有人有同样的技巧来找到find_me
函数的返回类型,而不改变它的参数。有没有方法来decltype不可调用函数的结果?
struct Stuck {
Stuck() = delete;
Stuck(Stuck&&) = delete;
Stuck(const Stuck&) = delete;
Stuck& operator=(Stuck&&) = delete;
Stuck& operator=(const Stuck&) = delete;
};
double find_me(Stuck);
int main() {
// This obviously don't work
decltype(find_me(Stuck{})) test1;
}
这是一个镜头我想:
template<typename T>
struct ConvertTo {
operator T();
}
int main() {
decltype(find_me(ConvertTo<Stuck>{})) test1;
}
功能find_me
超载很多很多次,从来没有真正实施。我只想知道当函数具有这些形式时是否有办法找到返回类型。我知道有可能收到一个指针或引用,这是我已经做的,但我想知道是否还有一些技巧可以使这个工作。
如果有,请告诉我,并告诉我为什么。
谢谢。
如果它的过载,没有。 –
@ T.C。谢谢。然后我会继续使用参考。 –
这个'find_me'函数可能有什么用途,不管它是按值还是按引用? – Brian