มีแต่มันไม่คงที่จึงต้องใช้อินสแตนซ์ของ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
ให้ทำซ้ำสำหรับคุณ