C++、Java 的泛型有约束吗,类似 Golang 的那种?

Golang 的泛型如下所示

func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {

var s V

for _, v := range m {

s += v

}

return s

}

其中 K 后面的 comparable,V 后面的 int64 | float64 就是约束


回答:

c++20引入了concept,见:
https://en.cppreference.com/w...
https://zhuanlan.zhihu.com/p/...
20之前的话,用enable_if、void_t等工具控制选择的特化模板即可。

以上是 C++、Java 的泛型有约束吗,类似 Golang 的那种? 的全部内容, 来源链接: utcz.com/p/944414.html

回到顶部