Нарушает ли этот код строгое сглаживание?
struct {int x;} a; *(int*)&a = 3
Говоря более абстрактно, допустимо ли приведение типов между разными типами, если примитивные операции чтения/записи соответствуют правильному типу?