https://en.cppreference.com/w/cpp/atomic/memory_order
cppreferenceから、memory_order_releaseはC ++ 20まで使用できますか?C ++ Standardがこれを削除する理由と、その後に使用する必要があるmemory_orderを誰かが説明できますか?
これは、cppreferenceのフォーマットに関する単なる誤解です。「C ++ 20まで」というのはその1行ではなく、ブロック全体です。
memory_order_release
C ++ 20では削除されません。それmemory_order
自体が弱い列挙型から再指定されただけです。
typedef enum memory_order {
memory_order_relaxed,
memory_order_consume,
memory_order_acquire,
memory_order_release,
memory_order_acq_rel,
memory_order_seq_cst
} memory_order;
列挙型クラスへ(P0439の結果として):
enum class memory_order : /*unspecified*/ {
relaxed, consume, acquire, release, acq_rel, seq_cst
};
inline constexpr memory_order memory_order_relaxed = memory_order::relaxed;
inline constexpr memory_order memory_order_consume = memory_order::consume;
inline constexpr memory_order memory_order_acquire = memory_order::acquire;
inline constexpr memory_order memory_order_release = memory_order::release;
inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;
inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;
6つのメモリ操作はすべて引き続き存在し、同じスペルでアクセスできます(ただしconsume
、お勧めしません)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加