2010-10-16 101 views
1

我想我可以用一个词来概括泛型在Java中的使用:类型安全。 您能用一个词来总结C++中的模板的使用吗?Java泛型与C++模板

+2

这就像是要求有人总结用水(或空气)在一个单词中的用法。 – 2010-10-16 22:44:51

+2

代表更高的人...投票结束?我很确定这被认为是“不好的主观” – Dragontamer5788 2010-10-16 22:54:05

+0

我的印象是泛型是关于泛型编程,而不是类型安全。类型安全是他们对泛型编程的一个实现特征。 'object'是之前(并且根深蒂固的)实现。 – 2010-10-16 22:59:31

回答

2

C++模板:代码生成器。 (两个字)

+1

代码生成器如何? – 2010-10-16 22:44:19

+0

@Stephen:hehehehehehehehe ... G1! – 2010-10-16 22:45:06

1

由于连字符显然是允许的,“泛型编程”。请注意,在此上下文中的“泛型”与Java泛型没有完全相同的含义。 Java泛型实际上是参数多态的一个不同名称; C++模板促进的泛型编程超出了参数多态所允许的范围。

+0

如果你必须解释你的单词是什么意思,它不再是一个单词,是吗? ;)不是说我认为用一个词来描述这样的东西对任何人都是有用的。 – 2010-10-16 23:23:48

1

C++ templates:templates。它的重复性,但由于我们被限制为一个词,模板是一样完整的我能想到的...

5

一个字:元编程

但是真的,你问的是非常困难的。模板是一个复杂的主题。从本质上讲,模板是用于元编程的工具:也就是说,它们是生成更多代码的代码。

在现实世界中,最常使用的模板是从同一个类/函数模板生成多个类或函数,每个类都使用不同的类型参数。换句话说,通用编程。这可能是STL中容器类最好的展示。

但是,因为模板最终是一个元编程设施,所以它们不仅仅允许您实现泛型类/函数。专业化,部分专业化和SFINAE允许一系列的代码生成能力远远超出实现泛型类或函数。实际上,递归模板实例化允许您使用嵌入在C++中的图灵完全元语言进行编程。

3

一个字:痛苦

+6

或者如何,三个字:无法解读的编译器错误 – 2010-10-16 23:14:50

0

我找到了一句话:类型独立。 你觉得呢?