Хтось із аудиторії задав запитання під час виступу на CppCon 2016 ( YouTube ) під назвою "Стандартна бібліотечна панель C ++" про можливість імені experimental
відлякувати користувачів від використання чогось у просторі імен:
Ви, хлопці, вважаєте [вміст std::experimental
простору імен] готовим і чи є це аргументом, який можна навести, [що] він фактично готовий до виробництва протягом наступних 3 років, і, можливо, вам доведеться змінити свій код через 3 роки, можливо?
Майкл Вонг (голова SG5 та SG14 та редактор Concurrency TS) спочатку поставив запитання:
Я думаю, що в комітеті існує сильний консенсус щодо того, що він практично готовий до виробництва. Як я вже говорив раніше, у більшості випадків 99% його потрапляє у повітря. Ми хочемо переконатися, що це не перешкоджає вам використовувати його. Ви можете зрозуміти, чому ми хочемо помістити великі функції, великі групи функцій, у такий контекст, щоб це не заважало решті всієї бібліотечної системи, але також полегшувало вам його використання. Тепер ви можете увімкнути GCC із певним прапором для Concepts, знаєте, це насправді полегшує вам сегментацію.
Потім Алісдейр Мередіт (колишній голова робочої групи) продовжила:
Я збираюся тут зайняти протилежну позицію. Однією з речей, яку Герб [Саттер] сказав, як скликач WG21, стандартної групи, коли ми вирушили на шлях TS, є те, що він не думав, що TSes досягне успіху, поки ми не зможемо щось просунути вперед, тому що це означає, що ми недостатньо експериментальні, недостатньо амбітні в тому, для чого використовуємо TS. Ми справді цього хочемоexperimental
щоб бути натяком на те, що так, ці речі можуть бути змінені, ми не зобов’язуємо це робити, і ми можемо щось помилити. Це для того, щоб знизити наш бар’єр для речей, які ми вважаємо настільки амбіційними та досяжними, наскільки ми можемо [...] Зараз стандарт, схоже, перебуває на трирічному циклі випуску, ми повинні бути набагато амбітнішими, застосовуючи справді експериментальні функції в TS, і, можливо, швидше просувається в самий основний стандарт. Але знову ж таки, це буде цікавою темою для обговорення на наступних кількох засіданнях [стандартного комітету C ++].
Стефан Т. Лававей (підтримуючий впровадження STL від Microsoft) востаннє відповів:
Важливо провести різницю між експериментальністю інтерфейсу та експериментальністю реалізації, тому що коли ви говорите "виробництво готове", що це означає? Зазвичай, "виробництво готове", ви думаєте про те, що говорять про впровадження. Цілком можливо, щоб реалізація [чогось із std::experimental
] була абсолютно [...] куленепробивною. [...] Щось на зразок [...] <random>
заголовка в TR1, [це було] дуже, дуже приємно в TR1, і ви могли б мати абсолютно куленепробивну реалізацію цього, але виявилося, що інтерфейс збився по суті [до виходу] C ++ 11 і [...] якби ми тоді знали, що ми робимо зараз, введення було experimental
б кращим сигналом для людей, що, "Гей, можливо, ти не хочеш використанняstd::experimental::variate_generator
тому що, ха-ха, це зникне в C ++ 11 ".
Таким чином, здається , що є якесь - то бажання серед стандартних розробників бібліотеки і членів комісії , які в майбутньому , по крайней мере, зміст std::experimental
імен повинно бути дійсно «експериментальний» характер, і це не слід сприймати як само собою зрозуміле , що - то в std::experimental
волі перейдіть у стандарт C ++.
І ні, наскільки я розумію, від стандартних постачальників бібліотек залежить, чи забезпечуватимуть вони реалізації для різних функцій всередині std::experimental
.