How*_*ant 30
非递归实现具有更好的编译时性能.信不信由你,在一个使用频繁的图书馆设施中std::tuple,如何实施它会影响(无论好坏),客户看到的编译时间.递归实现往往会产生在递归深度上呈线性的编译时间(或者可能更糟).
这不仅仅影响元组本身的实例化. std::get<I>(tuple)例如,对于一个实现,将花费一定量的编译时间,对于另一个实现,将花费一定量的编译时间.在处理元组元组时,这种影响会迅速恶化(或不会).即递归实现可能导致O(N ^ 2)编译时间,而非递归实现仍然是O(1).
Fwiw,libc ++实现以客户端指定的顺序放置对象,但使用编译器的空基类优化工具优化了空组件的空间.
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |