Intelは、プリフェッチプラグマを提供しています。例えば
#pragma prefetch a
for(i=0; i<m; i++)
a[i]=b[i]+1;
a
コンパイラによって決定されるように、一定数のループサイクル先をプリフェッチします。
しかしa
、配列ではなく、[]
オーバーライドされたクラスである場合はどうなるでしょうか。単純な配列アクセスを行う場合operator[]
でも、プリフェッチをこのように使用できますか?
(おそらく、質問は同様に当てはまりstd::vectors
ます)。