C++ 11, std::to_string
'u tanıtıyor, bu yüzden bir uygulamaya baktım: vsnprintf
'u dahili olarak çağırıyor. Tamam, ama neden boyut parametresini her zaman tipin 4 katı olarak ayarlıyor?std :: to_string uygulaması neden türün 4 katı büyüklüğünde bir tampon oluşturur?
inline string
to_string(int __val)
{ return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(int),
"%d", __val); }
inline string
to_string(unsigned __val)
{ return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
4 * sizeof(unsigned),
"%u", __val); }
inline string
to_string(long __val)
{ return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(long),
"%ld", __val); }
1'den başlayarak, tüm int boyutları için dize artı izleyen sıfıra uyum sağlayacak kadar büyük bir arabellek oluşturur. –
Ücretsiz yorum: onlar gerçekten bence '__ __ __ __' bence. – unwind