C++与Rust的泛型区别

22-05-07 banq

Rust 和 C++ 泛型之间存在主要区别:即 Rust 对正确性有更严格的保证。必须在模板定义中保证模板中的正确性,并且必须指定给定类型参数所依赖的所有特征才能做到这一点。
另一方面,C++ 并不要求模板对每种类型都是正确的,仅对它用于实例化的每种类型都是正确的。

这是一个微妙的区别,但它有很多含义!
对于初学者来说,这意味着 C++ 中的泛型不能保证适用于所有类型。编写 C++ 模板并没有真正明确的方法,一旦成功编译,对于任何类型都将始终正确。将来总是有可能用新类型破坏模板,这就是泛型经常被视为维护危险的原因之一!泛型越复杂,使用它们就越小心(在 C++ 中)。

详细案例点击标题

猜你喜欢