gpt4 book ai didi

c++ - std::mem_fun 表达式的可移植性

转载 作者:行者123 更新时间:2023-11-27 23:34:14 25 4
gpt4 key购买 nike

假设指定注释中的实例化正确,以下表达式是否合法且可移植 C++?为什么或为什么不?

std::mem_fun</*…*/>(&(std::vector<int>::clear))

最佳答案

如其所写,使用一组空的模板参数,不。您需要提供正确的参数,或者完全忽略它们,以便从参数中推断出它们。

所以这是合法的:

std::mem_fun(&std::vector<int>::clear)

这是这样的:

std::mem_fun<void,std::vector<int> >(&std::vector<int>::clear)

两者都给出了一个函数对象,该函数对象带有一个函数调用运算符,该运算符接受一个指向 std::vector<int> 的指针。并调用 clear在上面。

编辑:正如 UncleBens 提到的,函数名称周围的括号实际上是非法的,因此我已将其从我的答案中删除。

关于c++ - std::mem_fun 表达式的可移植性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085998/

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