Answers:
大约10年前的会议日之后,我碰巧与Erwin Unruh和其他一些人一起在一家酒吧里,我问他关于VJovic提到的节目。到那时,我们已经喝了几杯啤酒,这是一次非正式的聚会,它已经在我的脑海中生活了十年,所以请带着一点盐来服用,但是根据我的记忆:
他说,他们已经添加了模板功能,以便更好地为STL服务。据他说,委员会中的许多人认为他们在创造某些东西时并不了解其全部功能。他本人怀疑所有模板内容(尤其是部分专业化内容)都构成了图灵完备的语言,并且他始终打算对此进行形式化证明,但始终没有这样做。
取而代之的是,在一个标准化会议的一个晚上,他想到了一个程序,该程序将质数打印为错误消息(此处应与现代编译器一起使用的版本),该程序是在编译过程中计算出的。作为模板元程序,按今天的标准来看并不是很令人印象深刻,但毕竟这是第一个。有人正式提交了该程序,从而使他认为是个笑话,因此该程序成为了官方的ISO标准化文件。
我记得我曾特别问过他关于Bjarne Stroustrup对程序的反应,而对此,欧文以双手遮住眼睛的方式模仿了他。 :)
事后看来,我很遗憾没有询问托德·韦德赫伊曾(Todd Veldhuizen)(他也是那个会议的代表)如何提出表达模板。(他当然是一个很好的交谈对象。)但是我比他小得多,所以让一生的机会流失了。:(
1994年,在c ++标准化委员会的一次会议上,E。Unruh发现了可以在编译时使用模板来计算某些东西。他编写了一个打印质数的程序。此练习的有趣之处在于,质数的产生是由编译器在编译过程中而不是在运行时执行的。尽管该程序不是完全可移植的,但该程序确实表明模板实例化机制是一种原始递归语言,可以在编译时执行非平凡的计算。
此摘录摘自Vandevoorde和Josuttis的“ c ++模板”(第17章)。
如您所见,它是很早就被发现的,它的力量被立即发现。