经常提出的一项主张是,std::valarray
旨在消除某些形式的别名,以便实现更好的优化(例如,请参阅valarray vs. vector: Why was valarray introduced?)
有人可以详细说明这个说法吗?在我看来,只要你可以获得指向元素的指针,就可以使用别名 - 你可以这样做,因为operator[]
会返回一个引用。
答案 0 :(得分:2)
“无别名”的东西是指cos
等全局函数接受valarray
作为参数。 cos
(或任何函数)应用于整个数组,编译器和标准库实现可以假定数组不是别名,并且可以独立地对每个元素执行操作。
它还指valarray
的{{1}}之类的内容,它会成员添加等等。