Solutionunvalidated
node* p = head_.load(std::memory_order_acquire); // acquire is necessary — while (p && !head_.compare_exchange_weak(p, p->next,. Outcome: `CAS_weak(p, p->next, acquire, acquire)`.
9bd6db88-d7fb-48b9-8c9d-4db9276f1bdd
node* p = head_.load(std::memory_order_acquire); // acquire is necessary — while (p && !head_.compare_exchange_weak(p, p->next,. Outcome: CAS_weak(p, p->next, acquire, acquire).