как работает alignas в с++?
Я хочу защитить несколько атомарных переменных от фолс шеринга, как я понимаю, это можно сделать, указав чтоб переменные занимали одну строку кеша.
Я нашел, что этого можно добиться с помощью alignas(размер кеш линии)
alignas(64) std::atmic<int> a1;
alignas(64) std::atmic<int> a2;
Но я не совсем понимаю, что значит это выравнивание, это явно указывает, что в кеш переменная будет загружаться с битами заполнения? Если взять sizeof то размер переменной не изменится.В ассемблере тоже нет изменений, если компилировать с выравниванием и без
Иными словами, конечный вопрос, как работает выравнивание?