청중 중 누군가가 CppCon 2016 ( YouTube ) 의 "C ++ 표준 라이브러리 패널"강연에서 이름 experimental
이 네임 스페이스 내에서 어떤 것을 사용하지 못하도록 사용자를 놀라게 할 수 있는지에 대해 질문했습니다 .
여러분은 [ std::experimental
네임 스페이스 의 내용 ] 생산 준비가되었다고 생각하십니까? 그리고 그것이 만들어 질 수있는 논쟁이고, [그] 그것은 다음 3 년 동안 효과적으로 생산 준비가되어 있고, 아마도 3 년 후에 코드를 변경해야 할 것입니까?
Michael Wong (SG5 및 SG14의 회장이자 Concurrency TS의 편집자)이 먼저 질문을 던졌습니다.
위원회 내에서 실질적으로 생산 준비가되었다는 강한 합의가 있다고 생각합니다. 이전에 말했듯이 대부분의 경우 99 %가 에어 드롭됩니다. 사용하는 데 방해가되지 않도록합니다. 전체 라이브러리 시스템을 방해하지 않고 더 쉽게 사용할 수 있도록 이러한 컨텍스트에 큰 기능, 큰 기능 그룹을 배치하려는 이유를 이해할 수 있습니다. 이제 개념에 대한 특정 플래그를 사용하여 GCC를 켤 수 있습니다. 실제로 세그먼트를 더 쉽게 분할 할 수 있습니다.
Alisdair Meredith (전 LWG 의장)는 다음과 같이 후속 조치를 취했습니다.
여기서는 반대 입장을 취하겠습니다. Herb [Sutter]가 표준 그룹 인 WG21의 컨 비너로 말한 것 중 하나는 TSes의 길을 시작했을 때 TSes가 성공할 것이라고 생각하지 않았습니다. 우리가 충분히 실험적이지 않고 TS를 사용하는 것에 대해 충분히 야심적이지 않다는 것을 의미합니다. 우리는 정말로 그것을 원합니다experimental
예, 이러한 것들은 변경 될 수 있으며, 우리는 그것에 구속력이 없으며, 일이 잘못 될 수 있다는 힌트가됩니다. 이것은 우리가 할 수있는 한 야심 차고 도달한다고 생각하는 것들에 대한 우리의 장벽을 낮추는 것입니다. [...] 이제 표준은 3 년의 릴리스주기에있는 것 같습니다. 우리는 실제로 실험적인 기능을 넣는 데 훨씬 더 야심을 가져야합니다. TS로 들어가고 아마도 주요 표준 자체로 더 빠르게 발전 할 수 있습니다. 그러나 이것은 우리가 다음 몇 번의 [C ++ 표준위원회] 회의에서 논의 할 재미있는 주제가 될 것입니다.
Stephan T. Lavavej (Microsoft의 STL 구현 관리자)가 마지막으로 응답했습니다.
인터페이스의 실험 성과 구현의 실험 성을 구분하는 것이 중요합니다. "생산 준비 완료"라는 말은 무엇을 의미합니까? 일반적으로 "프로덕션 준비"라고하면 구현에 대해 이야기한다고 생각할 것입니다. [무언가의 std::experimental
] 구현 이 절대적으로 [...] 방탄이 될 수 있습니다. [...] [...] <random>
TR1 의 헤더 와 같은 것 , [그것은] TR1에서 정말, 정말 좋았습니다. 그리고 당신은 그것의 절대적인 방탄 구현을 가질 수 있었지만, 인터페이스가 흔들렸다는 것이 밝혀졌습니다. 실질적으로 [출시 전] C ++ 11 및 [...] 우리가 지금 무엇을하는지 알고 experimental
있었다면 사람들에게 "이봐 요, 아마도 당신은 사용하다std::experimental::variate_generator
왜냐하면, 하하, 그것은 C ++ 11에서 사라질 것입니다. "
따라서 표준 라이브러리 개발자와위원회 위원들 사이에는 적어도 미래에는 std::experimental
네임 스페이스 의 내용이 본질적으로 진정으로 "실험적"이어야하며 std::experimental
의지에 있는 무언가를 당연하게 여겨서는 안된다는 소망이 있는 것 같습니다. C ++ 표준으로 만듭니다.
그리고 내가 이해하는 한, .NET 내부의 다양한 기능에 대한 구현을 제공하는지 여부는 표준 라이브러리 공급 업체에 달려 있습니다 std::experimental
.