【发布时间】:2017-10-22 06:04:11
【问题描述】:
如何编写简单的 C++ 代码以简单地运行具有特定展开因子的 for 循环? 例如,我需要编写一个 for 循环,将 i 值分配给数组的每个索引,即 A[i]=i 表示数组大小可以说是 1e6。
现在我想添加一个展开因子,假设为 20。我不想手动编写 20 行代码并对其进行 5k 次迭代。我该怎么做呢?我要嵌套我的 for 循环吗?如果我使用模板元编程,编译器会自动为我做一些展开吗?以及如何手动设置展开因子(当然在编译时固定)?
【问题讨论】:
-
如果你不相信你的编译器能做最好的展开,也许找一个更好的编译器。
-
重申 n.m 的答案,不要浪费时间假装自己是编译器。你的编译器知道如何最好地优化你的循环——包括展开东西。省去修复分析时发现的瓶颈的工作量。
标签: c++ for-loop template-meta-programming