C++11 [atomics.types.generic]p7:
atomic
表 145 で指定されているように、 の整数特殊化に対応する名前付きの型atomic_bool
と、指定された に対応する名前付きの型が存在する必要がありますatomic<bool>
。名前付きの各型は、対応する特殊化の typedefまたは対応する特殊化の基本クラスです。基本クラスの場合、対応する特殊化と同じメンバー関数をサポートする必要があります。
(強調追加)
std::atomic_char
を と同一にしないstd::atomic<char>
など、他のすべてのタイプを同じにする理由は何ですか? これによりどのような柔軟性が可能になり、なぜ便利なのですか? 一見しただけでは、なぜこれらがstd::atomic<T>
直接特殊化への typedef である必要がないのか理解できません。
提案されたN2427<atomic>
は、typedef は正確に特殊化するものであり、基本クラスではない可能性があると述べていることに注意してください。