核心区别是OOP将数据与算法封装在一起, 而GP追求将数据与算法分离开来, 让算法通过相同的接口操作不同的数据. GP的好处是能让算法团队和数据团队各自独立运作, 只要确定好沟通的接口即可....阅读GP的代码, 核心是理解操作符重载和模板操作....进行操作符重载的时候, 主要要注意尽量不要重载&&, ||和,, 因为它们重载之后将失去短路求值和顺序求值的特性, 退化回不定序求值的函数操作....重载操作符的时候要尽量使其效果与int类型操作看齐, 不要乱改导致语义混乱加大理解难度, 且操作符重载无法改变操作符的优先级, 组合, 参数个数等....尽管原生指针本身就具有正确的运算符, 但是原生指针没有办法返回上面的5个性质. 为了解决这个问题, STL提出了萃取器Traits结构作为中间层.