Предотвращение потери __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...

0 ответов

Другие вопросы по тегам