Tiêu chuẩn của C ++ là một tài liệu quy phạm, đặt ra các quy tắc sẽ vẫn còn (hầu hết không bị ảnh hưởng) trong các tài liệu trong tương lai. Do đó, ủy ban đã có một cách tiếp cận rất thận trọng đối với các cập nhật của nó.
Việc bổ sung vào thư viện tiêu chuẩn có phần dễ dàng. Một số thư viện đã ở trong Boost trong một thời gian dài: nó đã được chứng minh rằng họ đã làm việc.
Tuy nhiên, việc bổ sung các khái niệm cốt lõi trong ngôn ngữ khó khăn hơn nhiều để thử nghiệm, bởi vì trước tiên nó yêu cầu sửa đổi trình biên dịch. Một tính năng C ++ 03 (xuất khẩu các mẫu) đã được chỉ định mà không có hỗ trợ trình biên dịch ... kết quả thật tồi tệ. Những người triển khai trình biên dịch EDG đã báo cáo nó là một nhiệm vụ lớn (vài năm) cho lợi ích rất ít. Không có trình biên dịch nào khác từng cố gắng thực hiện nó. Đó không phải là một tình huống thoải mái.
Các tính năng như constexpr
hoặc static_assert
dễ dàng (và đã được các thư viện mô phỏng). Lambdas được hiểu khá rõ và thực hiện bằng nhiều ngôn ngữ khác nhau, đã có nghiên cứu sâu rộng, vì vậy chủ yếu là vấn đề cú pháp.
Mặt khác, các khái niệm được đánh giá là quá mới và chưa được thử nghiệm . Họ hầu như không được chỉ định kịp thời, không có bằng chứng về khái niệm ... và do đó họ đã bị từ chối, thay vì chờ đợi họ (hoặc phạm sai lầm).
Tại sao không theo D? Không có gì để nói rằng nó sẽ không. Ủy ban đã khuyến khích mọi người suy nghĩ lại từ đầu, không có thời hạn thúc giục và thử đưa chúng vào một trình biên dịch để xem cách chúng tương tác với các tính năng khác trong ngôn ngữ. Đáng chú ý có câu hỏi về phân tách khái niệm và bản đồ khái niệm: chúng có nên được bó lại thành một hay không?
FYI: Hiện tại có một chi nhánh của Clang dành riêng cho thử nghiệm này, dẫn đầu bởi Larisse Voufo từ trường đại học Indiana.