如何向初级开发人员解释C++模板?

And*_*w T 4 c++ templates

人们可以将问题分为两个:如何阅读编写模板化代码.

很容易说,"你想要一组双打,写std::vector<double>",但它不会教他们模板是如何工作的.

Pau*_*her 8

我可能会通过展示不使用它们的烦恼来尝试展示模板的强大功能.

一个很好的演示是写一些简单的东西,比如一堆双打(手写,而不是STL),方法是push,pop和foldTopTwo,它们弹出并将堆栈中的前两个值加在一起,并推动新的值得重新开始.

然后告诉他们为int(或者其他什么,只是一些不同的数字类型)做同样的事情.

然后向他们展示如何通过将此堆栈作为模板编写,您可以显着减少代码行数,以及所有可怕的重复.