gpt4 book ai didi

c++ - C++ 中的 typedef 总结和定义一个具有两个函数的新类型

转载 作者:太空宇宙 更新时间:2023-11-04 15:39:33 24 4
gpt4 key购买 nike

我有两个函数,在比较我传递给函数的两个值后返回一个 bool 值。现在的问题是我们如何使用以下两个函数编写 typedef 来表征它们并定义新类型?

 functions: 
bool compare1(float n1, float n2){
return n1<n2;
}

bool compare2(int n1, int n2){
return n1<n2;
}

最佳答案

我看不出 typedef 在这里有多大用处,但模板肯定可以:

template <class T>
bool compare(T n1, T n2) {
return n1 < n2;
}

请注意,这与 std::less<T> 几乎相同已经提供,除了std::less<T>具有特化,因此它适用于 n1<n2 的某些类型不一定会给出有意义的结果。这意味着这个确切的案例不是很实用,但一般想法的其他案例可以。

对于原始情况,您不能真正使用 typedef .您可以创建一个 typedef对于指向其中一个函数的指针的类型:

typedef bool (*ptr_func)(int, int);

但这仍然需要指定参数类型,因此您不能使用它来引用两个采用 int 的函数。采用 float 的参数和函数参数。您可以创建一个 typedef指向带有可变参数列表的函数的指针,但即使这样的函数可以采用 intfloat参数,该指针将不是引用您提供的任何一个函数的正确类型。

关于c++ - C++ 中的 typedef 总结和定义一个具有两个函数的新类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826830/

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