सी ++ 11 std::to_string
प्रस्तुत करता है, इसलिए मैंने एक कार्यान्वयन पर एक नज़र डाली: यह आंतरिक रूप से vsnprintf
पर कॉल करता है। ठीक है, लेकिन यह हमेशा आकार पैरामीटर को प्रकार के आकार के 4 गुणा के रूप में क्यों सेट करता है?std :: to_string का कार्यान्वयन किस प्रकार के आकार के 4 गुना बफर बनाता है?
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 बजे से int के सभी आकारों के लिए स्ट्रिंग प्लस पिछला शून्य समायोजित करने के लिए काफी बड़ा बफर बनाएगा। –
नि: शुल्क समीक्षा: उन्हें वास्तव में मेरी राय में 'आकार __val' का उपयोग करना चाहिए था। – unwind