У меня есть класс mat4
, матрица 4x4, которая использует sse intrinsics. Этот класс выровнен с использованием _MM_ALIGN16
, поскольку он сохраняет матрицу как набор __m128
. Проблема в том, что когда я объявляю atomic<mat4>
, мой компилятор кричит на меня:
f:\program files (x86)\microsoft visual studio 12.0\vc\include\atomic(504): error C2719: '_Val': formal parameter with __declspec(align('16')) won't be aligned
Это та самая ошибка, которую я получаю, когда пытаюсь передать любой класс, выровненный с _MM_ALIGN16
, в качестве аргумента для функции (без использования const &
).
Как я могу объявить атомную версию моего класса mat4?