我有一個函數接受對valarray的const引用,我希望能夠切片數組並將切片傳遞給另一個需要const slice_array的函數。我知道我可以使用operator []和slice來從原始valarray中獲得一個新的複製valarray,但我想避免複製。一切都是常量,所以我覺得應該沒問題。但是,僅當valarray的下標運算符的文檔應用於非常量valarray時纔會返回slice_array對象。這在valarray類中是一種主要的缺陷。我錯過了什麼嗎?如何在不發生副本的情況下得到一個const valarray的片段?我可以從const valarray獲得const slice_array嗎?
這裏是我談論的例子:
void foo(const valarray<double> &big_stuff)
{
const slice_array<double> small_stuff = big_stuff[slice(start, size, stride)];
bar(small_stuff);
}
謝謝!