Если в функции мне нужна фиксированная маска в случайном порядке, я должен установить ее как const
или static const
?SSE: Должен ли я установить маску в случайном порядке как статическую переменную или нет?
const __m128i SHUFFLE_MASK = _mm_setr_epi8(0, 4, 8, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1);
static const __m128i SHUFFLE_MASK = _mm_setr_epi8(0, 4, 8, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1);
Возможный дубликат [С ++ семантика \ 'static const \' vs \ 'const \'] (http://stackoverflow.com/questions/3709207/c-semantics-of-static-const-vs-const) –
@Adriano Я не знаю, если это реальная разница, но я использую функцию для инициализации переменной, а не константу. В качестве побочного примечания функция не является статической функцией. – Antonio
Если функция статическая или нет, IMO не имеет значения (поскольку это не имеет значения, если вы используете функцию или литералы, это не constexpr). Во всяком случае, я бы использовал static const, потому что на первый взгляд вы делаете это вычисление один раз (но здесь компилятор может быть намного умнее, чем мы ожидаем, поэтому проверка на сгенерированный код может быть более полезной, чем мои догадки). –