C ++: is size_t een begeleidend type, net als size_type?

Is size_t een type metgezel zoals size_type? Wat standaardiseren ze de naam van het begeleidende type niet als het gaat om het formaat - wat betekent gewoon size_type?

0
Type "Companion"?
toegevoegd de auteur John Dibling, de bron
goed in C + + -primer van Lipmann, is het size_type voor container een type metgezel - dat is tenminste wat de auteur het noemt
toegevoegd de auteur yapkm01, de bron
Ik denk dat deze vraag het antwoord heeft dat je zoekt: stackoverflow.com/questions/918567/size-t-vs-containersize-t‌ ype
toegevoegd de auteur offtehcuff, de bron

2 antwoord

Ik weet niet wat een soort metgezel is. Maar size_t is een standaard type in C, en std :: size_t is ook een standaardtype in C ++. Andere dingen in de taal zijn afhankelijk van dit type, zoals het resultaat van sizeof of het argument van nieuw [] .

De enige plaats waar de standaard over size_type spreekt, is witte containers. Het is gespecificeerd om onder andere het type waarde te zijn dat wordt geretourneerd door size() . Het wordt meestal gedefinieerd in termen van de allocator :: size_type , die meestal -maar niet hoeft te- std :: size_t is.

2
toegevoegd
Een aangepaste allocator kan bijvoorbeeld geheugen toewijzen op een server op internet. In dat geval zijn pointer , ptrdiff_t en size_type waarschijnlijk klassen met complexe logica.
toegevoegd de auteur Mooing Duck, de bron
@BlagovestBuyukliev: En je dacht dat lezen van de schijf slecht was ...
toegevoegd de auteur Mooing Duck, de bron
@MooingDuck: wow, je hebt mijn hoofd geblazen :-)
toegevoegd de auteur Blagovest Buyukliev, de bron

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
toegevoegd