Почему существуют как свободные, так и функции-члены для операций сравнения и подкачки?
Стандартная библиотека C++ содержит каксвободные функции , так ифункции-члены для атомарных операций сравнения и подкачки.
Как отмечено для свободных функций:
Эти функции определяются в терминах функций-членов std:: atomic:
- obj - > compare_exchange_weak (*ожидаемый, желаемый)
- obj - > compare_exchange_strong (*ожидаемый, желаемый)
- obj - >compare_exchange_weak (*ожидаемый, желаемый, succ, fail)
- obj - >compare_exchange_strong (*ожидаемый, желаемый, succ, fail)
В чем причина наличия свободных функций? Разве недостаточно иметь только функции-члены? Разве они не делают то же самое?