Предотвращение потери __restrict__ при использовании диапазонов GSL
Мне (в основном) нравится новая инициатива C++ Core Guidelines и то, что предлагает библиотека поддержки Guidelines. В частности, я хочу использовать span
больше Тем не менее, я сталкиваюсь с проблемой __restrict__
не являюсь частью C++, пока я хочу / должен использовать его.
Чтобы быть более конкретным: без span
х, я бы объявил:
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);
или, в качестве альтернативы, я мог бы настроить GSL span<T>
реализация так, чтобы T* begin
а также T* end
сами указатели __restrict__
"Ред. Тем не менее, это вовсе не уверен, что это будет соблюдаться.
Итак, я могу заставить __restrict__
'Ион как-то? Или я должен просто бросить это? Этот вид удовольствия от перехода на span
"S...