C ++:size_tはsize_typeと同様のコンパニオン型ですか?

size_tはsize_typeのようなコンパニオン型ですか?サイズの型になるとコンパニオン型の名前を標準化しないのですが、size_typeだけを意味しますか?

0
「コンパニオン」タイプ?
追加された 著者 John Dibling,
よくLipmannのC ++の入門書では、コンテナのsize_typeはコンパニオン型です。少なくとも著者がそれを呼んでいます
追加された 著者 yapkm01,
追加された 著者 Pablo,
私はこの質問にあなたが探している答えがあると思う: xbox
追加された 著者 offtehcuff,

2 答え

私はコンパニオンタイプが何であるか分かりません。しかし、 size_t はC言語の標準型であり、 std :: size_t はC ++の標準型です。言語の他の要素は、 sizeof の結果や new [] の引数のように、この型に依存します。

標準が size_type について語っている唯一の場所はwhitinコンテナです。 size()で返される値の型の中で指定されています。通常は allocator :: size_type という用語で定義されていますが、これは必須ではありませんが、 std :: size_t である必要はありません。

2
追加された
たとえば、カスタムアロケータはインターネット上のサーバにメモリを割り当てることができます。この場合、 pointerptrdiff_tsize_type はおそらく複雑なロジックを持つクラス。
追加された 著者 Mooing Duck,
@BlagovestBuyukliev:あなたはディスクからの読み込みが悪いと思った...
追加された 著者 Mooing Duck,
@MooingDuck:うわー、あなたは私の頭を吹き飛ばした:-)
追加された 著者 Blagovest Buyukliev,

size_t is not a companion type. For one thing, it's been around long before the very notion of companion types existed. Also, it's a part of C standard where the companion types can't exist.

0
追加された