私は次のようなポインタの配列を受け取る関数を持っています:
void foo(int *ptrs[], int num, int size)
{
/* The body is an example only */
for (int i = 0; i < size; ++i) {
for (int j = 0; j < num-1; ++j)
ptrs[num-1][i] += ptrs[j][i];
}
}
私がコンパイラーに伝えたいのは、ポインターptrs[i]
が相互のエイリアスではなく、配列ptrs[i]
がオーバーラップしないことです。どうすればいいですか?私の裏の動機は、自動ベクトル化を促進することです。
__restrict__
また、?のイテレータと同じ効果を得る方法はありstd::vector
ますか?