August 04, 2019
https://issues.dlang.org/show_bug.cgi?id=20105

          Issue ID: 20105
           Summary: core.atomic 'cas' function is incomplete
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: nobody@puremagic.com
          Reporter: turkeyman@gmail.com

core.atomic cas is incomplete

1. It doesn't have a pair of weak and strong complements
2. It doesn't accept memory order arguments
3. It should have memory order variants where just one is supplied, and also an
on-success and on-fail variant.

The C++ atomic reference shows the complete set of operations (https://en.cppreference.com/w/cpp/atomic/atomic/compare_exchange)

--