Подскажите, пожалуйста, законно ли использование спецификатора volatile для локального обхода требований строгих псевдонимов?
Например:
void do_something(volatile void* const _data)
{
volatile A* const a = (volatile A* const)(_data);
// Что-то делаем с содержимым памяти через представление a.
volatile B* const b = (volatile B* const)(_data);
// Что-то делаем с содержимым памяти через представление b.
// Снова что-то делаем с содержимым памяти через a и b.
}
Я подозреваю, что volatile не предназначен для этого, но полной уверенности у меня нет.
reinterpret_cast не может использоваться для избавления от volatile квалификатора (для этого нужен const_cast)Нет конечно, volatile не имеет никакого отношения к правилам aliasing'а.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости