有没有办法删除不可调用函数的结果?

纪尧姆·拉西科特(Guillaume Racicot)

我想知道是否有人有相同的技巧来找到find_me函数的返回类型,而不更改其参数。

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被重载很多次,并且从未实际实现。我只想知道函数具有这些形式时是否有找到返回类型的方法。我知道有可能会收到一个指针或引用,这就是我已经在做的事情,但是我想知道是否还有一些技巧可以使这项工作。

如果有的话,请告诉我,并告诉我原因。

谢谢。

布赖恩

这有效:

struct Stuck {
    Stuck() = delete;
    Stuck(Stuck&&) = delete;
    Stuck(const Stuck&) = delete;
    Stuck& operator=(Stuck&&) = delete;
    Stuck& operator=(const Stuck&) = delete;
};

double find_me(Stuck);
void find_me(double);

template <typename Ret>
Ret get_stuck_return_type(Ret (*)(Stuck));

int main() {
    decltype(get_stuck_return_type(find_me)) test1;
}

Coliru链接:http ://coliru.stacked-crooked.com/a/7eca81a13fae9de3

即使find_me重载也能正常工作的原因是模板参数推导将尝试的每个重载find_me如果推导仅以一个重载成功完成,则选择该一个实例化模板。

我认为这是纯粹的学术练习,因为按值采用不可构造类型的函数无法达到实际目的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法在JavaScript的函数调用中提供命名参数?

有没有办法用JavaScript定期调用函数?

有没有办法在可调用方法中接受参数?

有没有办法做反Sprintf结果

有没有办法使成员函数不能从构造函数中调用?

有没有办法限制/页面结果集

有没有办法在Kotlin中从内部调用匿名函数?

有没有办法在函数调用中更改对对象的原始引用

有没有办法在ListView中调用函数?

Django Admin Popup(添加,更新,删除)完成后,有没有办法调用Javascript函数?

有没有办法在javascript中调用对象内的所有函数?

有没有办法使不可变的引用可变?

有没有办法使Path不可变?

有没有办法使此函数在增加的结果数上运行?

有没有办法从Chartjs的click函数调用组件的函数

有没有办法包装函数调用或使函数调用过载?

JavaScript中有没有办法减少递归函数调用中的调用栈大小?

有没有办法让AJAX调用返回HTML内容和回调函数?

有没有办法从bash函数调用中强制回显命令行?

有没有办法调用作为参数传递的元素的函数?

有没有办法在单独的 js 文件中为 jquery click() 函数调用函数?

有没有办法调用部分函数

有没有办法在调用 nodejs 中的控制器之前调用函数

有没有办法循环改变输入并合并所有结果的函数?

有没有办法让 TypeScript 根据调用参数推断函数返回值的类型?

有没有办法在 Python 中实际取消分配或强制删除不可变对象?

有没有办法将函数调用传递给内部对象?

有没有办法让函数调用“继续”影响其调用者中的循环?

有没有办法以角度调用html属性值中的函数?