|
|
1
3
这确实是做你想做的事情的正确方法,它将在每一个像样的C++编译器上工作。我在gcc4.4和最新的clang版本上测试了它。 任何类型的代码背后都有问题/惊喜/约束。 使用此代码最终可能遇到的主要问题是,无法使模板化函数成为虚拟函数,因此,如果要在类级别获取模板化函数的多态性,就不必使用外部函数实现它。 |
|
|
2
0
我认为这样做是可以的。以std::vector实现为例。你有一个类向量,它有一些模板参数(最明显的是元素类型),在里面,它的一个构造器被以与你的方法类似的方式声明。它将inputiterator作为模板参数。所以我认为这种做法并不罕见。 |