Мой вопрос довольно прост. Почему не std::atomic<double>
реализовано полностью? Я знаю, что это связано с взаимным доступом с переменной скоростью. Но я действительно не понимаю, почему это невозможно в двойнике.
В нем указано, что можно использовать любой тип тривиально скопируемый. И, конечно, двойной среди них. Поэтому основные операции должны быть точными (настройка, чтение и т.д.). Однако на целых числах возможен дополнительный набор операций (fetch_add, ++, + = и т.д.).
Двойник очень мало отличается от этих типов. Это родная, тривиально скопируемая и т.д. Почему стандарт не включал double с этими типами?