我有收到像這樣的指針數組功能:如何判斷一個C或指針沒有別名C++編譯器
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]
不重疊。我該怎麼做?我的另一個動機是鼓勵自動矢量化。
另外,有沒有辦法在std::vector
的迭代器上獲得與__restrict__
相同的效果?
重要提示:C++標準不支持從C99的'restrict'預選賽 - 它不是甚至一個關鍵字。因此,在C++程序中使用'restrict'是依賴於實現擴展 –