我在Visual Studio 2013中使用Boost MultiArrays。我使用Visual STudio的原生x64 C ++编译器编译了Boost。 我收到很多关于'info C5002'类型的警告。在警告旁边,我还会获得警告的原因代码。这是我的代码和我得到的一小部分警告。
#include <iostream>
#include <math.h>
#include <fstream>
#include "boost/multi_array.hpp"
using namespace std;
typedef boost::multi_array<float, 2> Grid;
int main()
{
Grid myGrid;
myGrid.resize(boost::extents[100][100]);
return 0;
}
示例警告:
1&GT; ---分析函数:bool __cdecl std :: _等于&lt; __ int64 const * __ptr64,__ int64 const * __ptr64&gt;(__ int64 const * __ptr64,__ int64 const * __ptr64,__ int64 const * __ptr64) 1 GT; c:\ program files(x86)\ microsoft visual studio 12.0 \ vc \ include \ xutility(2736):info C5002:由于'500'原因,循环未向量化
我的简单10行代码确实得到了100个相同的警告。 事实上,即使除了#include“boost / multi_array.hpp”之外没有代码,我也会获得C5002信息
我担心的是由于无法进行矢量化而导致效率下降。我对我的多阵列进行了基准测试,实际上它们的运行速度远远低于本机阵列,即使在发布模式下也是如此请看这里:Boost MultiArrays performance is poor
我想知道是否有一种方法可以使编译器正确地进行矢量化,以便在使用多阵列时不会损失运行时效率。