既然做成带类型的Python了,容器模板就不一定是必需的了。可以用类型作为构造参数而不是模板参数:
list(int) ints = [0, 1, 2];
ints.push_back(3);
编译器直接检查类型,因为编译器知道list(int)的意思。
写程序时,list的方法参数都用接口指定类型,例如copy_construtible。原先模板参数实际上没有协议约束,但实际上容器内部可能是有潜规则的,不满足潜规则就可能出错。用接口指定类型后既满足了强类型的要求,又把规则都明示了。
现在C++就是扭扭捏捏一步步学Python的features,要是它真能变成一个编译型的Python就好了,强强联手,都能发展得更好。
【 在 hgoldfish 的大作中提到: 】
: 我正在思考这个方向,但没那么简单啊。
: Python 通过反射和 metaclass 这些技巧,让编程变得简单。
: 而 C++,不管你用什么语法,为了运行效率考虑,都需要类似于宏或者模板。不然搞定不了 list<int> 这种数据类型。
: ...................
--
FROM 123.114.39.*