I understand that std::atomic_is_lock_free is c-style free function corresponding to std::atomic<T>::is_lock_free.
But the parameter of this function is like std::atomic_is_lock_free(const std::atomic<T>*).
The std::atomic<T> is not c-style syntax so std::atomic_is_lock_free can't be used in c files anyway.
So why is this c-style free function introduced? What is the usage of this?
Edit:
Below is explanation from C++ Concurrency in Action.
The free functions are designed to be C-compatible, so they use pointers rather than references in all cases. For example......
It says free function is for C-compatibility. But I can't think of a good example.