C ++ 20แนะนำstd::ssize()
ฟังก์ชันฟรีดังต่อไปนี้:
template <class C>
constexpr auto ssize(const C& c)
-> std::common_type_t<std::ptrdiff_t,
std::make_signed_t<decltype(c.size())>>;
ดูเหมือนการใช้งานที่เป็นไปได้จะใช้static_cast
เพื่อแปลงค่าส่งคืนของsize()
ฟังก์ชันสมาชิกของ cl ass Cเป็นคู่ที่ลงนาม
เนื่องจากsize()
ฟังก์ชันสมาชิกของ C จะส่งกลับค่าที่ไม่ใช่ค่าลบเสมอเหตุใดใคร ๆ จึงต้องการเก็บไว้ในตัวแปรที่ลงชื่อ static_cast
ในกรณีที่ต้องการจริงๆมันเป็นเรื่องของความเรียบง่าย
เหตุใดจึงถูกstd::ssize()
นำมาใช้ใน C ++ 20