Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我们必须选择使用 C++ 模板或 Java 泛型来实现解决方案并忽略剩余的语言问题(如执行时间),如果生成的代码的大小很重要,那么它们中的哪一个是首选?
我读到在 Java 泛型中,类型参数是在编译后抛出的,而不是存储在元数据中,这是否会导致程序更小?
首先,您需要了解这些东西并不相似。它们实际上几乎是截然相反的:
从这两个事实来看,一切都随之而来。Java 泛型在空间或时间上增加了零成本;C++ 模板增加了这两种成本。熟练的内联和使用非模板基类(旧void *技巧)可以最大限度地减少 C++ 空间成本,甚至可能消除它,但它需要非常小心,并预测 C++ 编译器实际上是如何进行内联的。
void *