Gần đây tôi đã tự hỏi tại sao từ khóa autođược chọn trong C ++ 11 để đánh dấu một biến có loại phải được trình biên dịch suy ra, như trong
auto x = 1;
Kể từ khi
vardường như phổ biến hơn trong các ngôn ngữ lập trình khác (ví dụ: C #, Scala, JavaScript) và- Theo như tôi hiểu về ngữ nghĩa mới của sự
autophá vỡ tính tương thích ngược (nó hiếm khi được sử dụng nhưng có ý nghĩa khác trong các phiên bản trước của C ++, xem ví dụ ở đây )
Tôi muốn hỏi nếu có một lý do đặc biệt để lựa chọn auto(ủng hộ varhoặc bất kỳ từ khóa nào khác). Có cuộc thảo luận cụ thể nào về vấn đề này trước khi tiêu chuẩn C ++ 11 được phát hành không?
Ngoài ra, có bất kỳ sự không tương thích nào có thể xảy ra mà chúng ta nên đề phòng khi biên dịch lại mã C ++ kế thừa với trình biên dịch C ++ 11 không?
autovs varlà 90% văn bản của bạn đề cập đến điều gì và câu hỏi đó không có kết quả rõ ràng. (mặc dù tôi không phải là người đã bỏ phiếu đóng cửa)
autođã được đề xuất cho C ++ trước khi varđược giới thiệu trong C #, vì vậy câu hỏi đặt ra là tại sao C # không sử dụng auto. var có một ý nghĩa khác trong JavaScript và Scala
autocó thể phá vỡ tính tương thích ngược, nhưng, tùy thuộc vào mức độ thường xuyênvarđược sử dụng làm tên biến so với tần suấtautosử dụng từ khóa trong mã trước 11, ủy ban có thể cho rằng nó phá vỡ tính tương thích ít hơn so với giới thiệu mới từ khóa sẽ.