5

我(大部分)喜欢新的 C++ 核心指南倡议,以及指南支持库提供的内容。具体来说,我想span更多地使用 s。__restrict__但是,当我想/需要使用它时,我遇到了不属于 C++ 的问题。

更具体地说:没有span's,我会声明:

void foo(int* __restrict__ p, size_t len);

但是,如果我现在声明:

void foo(gsl::span<int> s);

__restrict__除非我的编译器超级智能,否则我不会得到效果。我可以向 gcc/clang/msvc 的众神祈祷并说:

void foo(gsl::span<int> __restrict__ s);

或者,我可以调整 GSLspan<T>实现,以便T* beginT* end指针本身是__restrict__'ed。但是,完全不确定这是否会得到尊重。

那么,我可以以某种方式强制__restrict__'ion 吗?还是我应该放弃它?这种方式让切换到span's 的乐趣消失了...

4

0 回答 0