memory_order load() std::memory_order_seq_cst, ( )
memory_order_seq_cst B, M, :
A, M, B- ,
A, B M, memory_order_seq_cst, - A - ,
A, B M, memory_order_seq_cst.
, node (), , , , . , , .
, std::memory_order_seq_cst. , . , "" (old_head==temp) .
- , - , , .
, , . pop() , . , , /, , ( , ). . :
concurrent_stack<int> p;
if (!p.empty() && (p.top() == 5))
{
auto t = p.pop();
assert( t );
assert( *t == 5 );
}
, , , , . pop(), , , .