Một người nào đó từ khán giả đã đặt câu hỏi trong buổi nói chuyện "Bảng điều khiển thư viện tiêu chuẩn C ++" tại CppCon 2016 ( YouTube ) về khả năng cái tên này experimental
khiến người dùng sợ hãi không sử dụng bất cứ thứ gì trong không gian tên:
Các bạn có coi việc std::experimental
sản xuất [nội dung của không gian tên] đã sẵn sàng không và đó là một lập luận có thể được đưa ra, [rằng] nó đã sẵn sàng sản xuất hiệu quả trong 3 năm tới, và có thể bạn phải thay đổi mã của mình 3 năm sau, có thể không?
Michael Wong (chủ tịch SG5 và SG14 và biên tập viên của Concurrency TS) đã đưa ra câu hỏi trước:
Tôi nghĩ rằng có sự đồng thuận mạnh mẽ trong ủy ban rằng nó trên thực tế đã sẵn sàng sản xuất. Như tôi đã nói trước đây, trong hầu hết các trường hợp, 99% nó bị lọt khí vào. Chúng tôi muốn đảm bảo rằng nó không phải là trở ngại để bạn sử dụng nó. Bạn có thể hiểu lý do tại sao chúng tôi muốn đặt các tính năng lớn, các nhóm tính năng lớn, trong bối cảnh như vậy để nó không làm ảnh hưởng đến phần còn lại của toàn bộ hệ thống thư viện mà còn giúp bạn sử dụng dễ dàng hơn. Bây giờ bạn có thể bật GCC với một cờ cụ thể cho các khái niệm, bạn biết đấy, điều đó thực sự giúp bạn phân đoạn nó dễ dàng hơn.
Alisdair Meredith (cựu chủ tịch LWG) sau đó đã theo dõi:
Tôi sẽ đi ngược lại vị trí ở đây. Một trong những điều mà Herb [Sutter] đã nói với tư cách là người triệu tập WG21, nhóm tiêu chuẩn, khi chúng tôi bắt đầu con đường của TSes là, anh ấy không nghĩ rằng TSes sẽ thành công cho đến khi chúng tôi thất bại trong việc đưa ra điều gì đó về phía trước, bởi vì nó có nghĩa là chúng tôi không đủ thử nghiệm, chúng tôi không đủ tham vọng trong những gì chúng tôi đang sử dụng TSes. Chúng tôi thực sự muốn điều đóexperimental
là một gợi ý rằng, vâng, những thứ này có thể thay đổi, chúng tôi không ràng buộc với điều đó, và chúng tôi có thể làm sai. Điều này là để hạ thấp rào cản của chúng tôi đối với những thứ chúng tôi coi là tham vọng và đạt được nhiều nhất có thể [...] Bây giờ tiêu chuẩn dường như đang trong chu kỳ phát hành ba năm, chúng tôi nên tham vọng hơn nhiều trong việc đưa các tính năng thực sự thử nghiệm vào TS, và có lẽ tiến nhanh hơn vào tiêu chuẩn chính. Nhưng một lần nữa, đây sẽ là một chủ đề thú vị để chúng ta thảo luận trong một vài cuộc họp [ủy ban tiêu chuẩn C ++] sắp tới.
Stephan T. Lavavej (người duy trì triển khai STL của Microsoft) là người cuối cùng trả lời:
Điều quan trọng là phải phân biệt giữa tính thử nghiệm của giao diện và tính thử nghiệm của việc triển khai, bởi vì khi bạn nói "sẵn sàng sản xuất", điều đó có nghĩa là gì? Thông thường, "sản xuất sẵn sàng", bạn sẽ nghĩ về điều đó nói về việc thực hiện. Rất có thể việc triển khai [một thứ gì đó trong std::experimental
] hoàn toàn [...] chống đạn. [...] Một cái gì đó giống như [...] <random>
tiêu đề trong TR1, [nó] thực sự rất, rất hay trong TR1, và bạn có thể đã có một triển khai hoàn toàn chống đạn cho điều đó, nhưng hóa ra là giao diện bị xáo trộn về cơ bản [trước khi phát hành] C ++ 11 và [...] nếu chúng ta biết trước những gì chúng ta làm bây giờ, đưa vào dấu hiệu experimental
sẽ là một tín hiệu tốt hơn cho mọi người rằng, "Này, có thể bạn không muốn sử dụngstd::experimental::variate_generator
bởi vì, ha-ha, nó sẽ biến mất trong C ++ 11 ".
Vì vậy, có vẻ như có một số mong muốn trong số các nhà phát triển thư viện tiêu chuẩn và các thành viên ủy ban rằng, ít nhất trong tương lai, nội dung của std::experimental
không gian tên phải thực sự là "thử nghiệm" về bản chất, và không nên coi đó là một thứ gì đó trong std::experimental
ý muốn biến nó thành tiêu chuẩn C ++.
Và không, theo như tôi hiểu, tùy thuộc vào các nhà cung cấp thư viện tiêu chuẩn về việc họ có cung cấp các triển khai cho các tính năng khác nhau bên trong hay không std::experimental
.