Набор свободных функций для std::atomic_fetch_xxx
(или, и, добавить, sub, xor) , принять в качестве ввода std::atomic<T>*
с именем obj:
template< class T >
T atomic_fetch_sub(std::atomic<T>* obj,
typename std::atomic<T>::difference_type arg ) noexcept;
Вопрос: Почему тип std :: atomic берется как указатель, а не передается как ссылка, например:
T atomic_fetch_sub(std::atomic<T>& obj,
typename std::atomic<T>::difference_type arg ) noexcept;
Есть ли практическая рациональная причина или просто стилистическая?