มีแต่มันไม่คงที่จึงต้องใช้อินสแตนซ์ของstd::array<T, N>::size() std::arrayมีวิธีรับค่าที่ส่งกลับ (ซึ่งเป็นNของstd::array<T, N>) โดยไม่ต้องสร้างตัวอย่างของอาร์เรย์หรือไม่ สำหรับอาร์เรย์ปกติฉันสามารถใช้งานได้sizeofแต่ฉันไม่เห็นการรับประกันว่าsizeof(std::array<T, N>) == N * sizeof(T)จะเป็นจริง
@ShadowRanger เพราะ
—
NathanOliver
sizeof(std::array<T, N>) == N * sizeof(T)ไม่จำเป็นต้องเป็นจริง
เพราะอาเรย์อาจถูกพิมพ์ที่อื่นหรือถูกส่งเป็นอาร์กิวเมนต์ไปยังเทมเพลต
—
dragonroot
Nหากคุณต้องการที่จะทราบจำนวนขององค์ประกอบเพียงใช้
@dragonroot อะไรคือประเด็นของเรื่องทั้งหมดนี้? หากคุณต้อง
—
Remy Lebeau
Nเริ่มต้นด้วยไม่มีความจำเป็นที่จะต้องดำเนินการทั้งหมดนี้เพื่อรับNทางอ้อมหรือตรวจสอบสิ่งN==Nนั้น กรณีการใช้งานจริงที่คุณพยายามแก้ไขคืออะไร
Nทำไมคุณต้องขอarrayให้ทำซ้ำสำหรับคุณ