Có std::array<T, N>::size()
, nhưng nó không tĩnh, vì vậy nó đòi hỏi một thể hiện của std::array
. Có cách nào để lấy giá trị mà nó trả về (là N
của std::array<T, N>
) mà không phải xây dựng một thể hiện của mảng không? Đối với một mảng bình thường, tôi có thể đã sử dụng sizeof
, nhưng tôi thấy không có gì đảm bảo đó sizeof(std::array<T, N>) == N * sizeof(T)
là sự thật.
@ShadowRanger Bởi vì
—
NathanOliver
sizeof(std::array<T, N>) == N * sizeof(T)
không phải là sự thật.
Bởi vì mảng có thể được gõ ở nơi khác hoặc được truyền làm đối số cho mẫu.
—
Dragonroot
Nếu bạn muốn biết số lượng phần tử, chỉ cần sử dụng
—
JohnFilleau
N
.
@dragonroot Điểm của tất cả điều này là gì? Nếu bạn đã phải
—
Rémy Lebeau
N
bắt đầu với, không cần phải trải qua tất cả điều này để có được N
gián tiếp, hoặc để xác nhận điều đó N==N
. Trường hợp sử dụng thực tế mà bạn đang cố gắng giải quyết là gì?
N
, tại sao bạn cần phải yêu cầuarray
sao chép nó cho bạn?