Loại std::remove_cv<const int[3]>
nên sản xuất? int[3]
hoặc const int[3]
?Loại std :: remove_cv sẽ sản xuất trên một mảng const T?
const int[3]
là array of 3 const int
phải không ?, và không có vòng loại cv cấp cao nhất. Vì vậy, nó không nên sản xuất const int[3]
? Phiên bản mới nhất của gcc/libstdC++ đang sản xuất int[3]
Tôi nghĩ vậy. Đây có phải là một lỗi? Tại sao tại sao không?
Trong khi hành vi là hợp lý, tôi tự hỏi nó đã được biện minh như thế nào ... (Có thể đọc nó như một '' mảng '' '') – Deduplicator
Hiệu quả, nó sẽ kết thúc bằng cách sử dụng một chuyên môn như 'template struct remove_cv {using type = T; }; '. Tôi không nghĩ rằng 'T const [N]' sẽ phù hợp với chuyên môn đó. –
@ DietmarKühl: Tiêu chuẩn cho biết "[loại kết quả] sẽ giống với T ngoại trừ bất kỳ vòng loại cv cấp cao nào đã bị xóa". –