std::uintmax_t
'un std::size_t
tüm değerlerini tutabildiği C++ standardı garantisini (açık bir şekilde ya da dolaylı olarak mantıksal bir kesinti ile belirterek) yapar mı? Veya std::numeric_limits<std::size_t>::max()
std::numeric_limits<std::uintmax_t>::max()
'dan daha büyük olması mümkün mü?C++ standardı, std :: uintmax_t dosyasının std :: size_t'nin tüm değerlerini tutabileceğini garanti ediyor mu?
cevap
Evet. Herhangi bir nesnenin boyutunu içerecek kadar büyük işaretsiz bir tamsayı türü olması için tanımlanır. uintmax_t
, imzalanmamış tamsayı türünün herhangi bir değerini depolayabilecek şekilde tanımlanmıştır. Yani, size_t
onu saklayabilirse, uintmax_t
bunu saklayabilir. C++ 11 §18.2 den size_t
arasında
Tanım:
tipi size_t herhangi bir nesnenin bayt cinsinden boyutunu içeren büyük olan bir uygulama tanımlı işaretsiz bir tamsayı türüdür. §7.18.1.5 (normatif referans C++ dahildir) C99 den
uintmax_t
arasında
Tanım:
aşağıdaki tür bir işaretsiz bir tamsayı herhangi bir değeri temsil edebilen bir işaretsiz tamsayı türü belirtmektedir türü: GCC eski sürümlerinde eminim
uintmax_t
Right'den daha kısadır. By * definition *, 'uintmax_t' * * en büyük * işaretsiz tamsayı türü ve' size_t' * * imzasız bir tamsayı türü olarak - kesinti ile, 'uintmax_t'nın * tüm değerlerini tutabilmesi gerektiğini söyleyebiliriz. size_t'. – Xeo
Birisi benim için 'uintmax_t' tanımının C99 bölüm numarasını bulabilir mi? Bende bir kopyası yok. Teşekkürler. –
C99’da Bölüm 7.18.1.5 (C2011’de 7.20.1.5). –
- 1. Dir.glob siparişi garanti ediyor mu?
- 2. Dönen std :: hareket (f) in std :: for_each
- 3. std :: floor'dan sonra bir int için doğru sonucu garanti ediyor mu?
- 4. C++ std
- 5. Neden C++ standardı std :: bitset :: reference için bir yıkıcıyı belirtir?
- 6. C++ - STD ::
- 7. C# içindeki foreach döngüsü bir değerlendirme sırasını garanti ediyor mu?
- 8. std :: cout yığında tamamen çalışıyor mu? C++
- 9. std :: put gerçekten bir lambda içinde hareket ediyor mu?
- 10. Kopyala std :: map for std :: set in C++
- 11. C++ empty std :: vektör,
- 12. bir C++ std :: string
- 13. C++: 'std :: bad_alloc'
- 14. sizeof() std :: vektör (C++)
- 15. C++ std :: lfStream: charaters
- 16. "Group by", "siparişi" otomatik olarak garanti ediyor mu?
- 17. Swift, sınıflar ve yapılardaki alanların depolama sırasını garanti ediyor mu?
- 18. C++ std :: bağlama Rebind fonksiyonu
- 19. std :: function ve std :: mem_fn
- 20. C++ std :: stringstream işlemleri optimizasyonlar
- 21. -std = C++ 11 ve -std = gnu ++ 11 arasındaki farklar nelerdir?
- 22. std :: unordered_map bir std :: çifti ile
- 23. std :: vector
- 24. std :: vektör eki nasıl uygulanır? C++
- 25. hata std Std :: dizi başlatmasını :: dizi :: boyutu
- 26. std :: map öğelerinin std :: vektörünü nasıl başlatabilirim?
- 27. std :: gelecekteki istisnası C++ 0x100
- 28. Cython C++ ve std :: string
- 29. C++ 11: std :: function :: target()
- 30. C++ std :: string to boolean
........... – David
, 'std :: size_t' olduğu (yanlış olarak) imzalamıştır. Öyleyse: her zaman değil, ama yine de benzersiz bir değerle eşleşir, böylece hiçbir sorun olmadan geri dönebilirsiniz. 'Size_t', 'uintmax_t' – Dave