質問には疑問があります。具体的にはthisです。
特にジョナサンWakely(答えの作者が)と言わがリーダのための運動として残っていることの部分は、(それが自身のために問題ではありません)があります:このコードは、アサートAllocator :: pointerとAllocator :: value_type *はいつ異なるのですか?
アロケータ::ポインタがアロケータです::ようなコードで表現されてVALUE_TYPE *
こと:あると同時に
static_assert(std::is_same<typename AT::pointer, typename AT::value_type*>::value, "Allocator doesn't use fancy pointers");
は、私は答えを持っているのです すべて。
しばらくしてからもう一度読んでいたとき、私は自分自身に声をかけて尋ねました。魅力的なポインタ? 、pointer
は次のように定義されてhere(allocator_traits
のドキュメント)から
:
のAlloc ::ポインタ存在する場合、それ以外のVALUE_TYPE *
質問は、このように発生した:中Allocator::pointer
現実的なケースは何ですか実際にはAllocator::value_type*
は違いますか?
私は実際に私を傷つけるだろうが、それは理にかなっている...私はそれが世界のほぼすべての国で違法であるべきだと思うにもかかわらず!本当にその場合ですか? – skypjack