Гарантируется ли sizeof (std:: atomic <integer type>) == sizeof (целочисленный тип)?

Другими словами, std::atomic<int> гарантированно удерживает только одно значение int?

Ответ 1

Нет.

В абзаце 29.5/9 стандарта С++ 11:

[Примечание: представление атомной специализации не обязательно должно иметь тот же размер, что и соответствующий тип аргумента. Специализации должны иметь одинаковый размер, когда это возможно, поскольку это уменьшает усилия требуется для подключения существующего кода. -end note]