2017-11-27 1 views
2

다음과 같은 최소한의 전체 생각해 내가 https://gcc.gnu.org/projects/cxx-status.html에 관련된 무언가를 찾기 위해 노력했다GCC에서 더 자세한 C++ 17 상태?</p> <pre><code>#include <numeric> int main() { std::transform_reduce(); } </code></pre> <p>GCC와 오류에 7.2 결과를 컴파일하는 시도 :

[[email protected] ~]$ g++ -std=c++17 omg.cpp 
omg.cpp: In function ‘int main()’: 
omg.cpp:4:7: error: ‘transform_reduce’ is not a member of ‘std’ 
    std::transform_reduce(); 
     ^~~~~~~~~~~~~~~~ 
[[email protected] ~]$ g++ -v |& tail -1 
gcc version 7.2.0 (GCC) 

을하지만 대부분 언어 기능을 설명하고 나는 새로운 STL 정의 지원에 대해 아무 것도 보지 못했다. (때로는 #if __has_include(<execution>)을 확인하는 것과 같이 자동화 할 수 있지만, <numeric>은 오래된 포함이고 특정 정의가 포함되어 있는지 확인하는 방법이 없다. 스크립팅 된 STL 헤더를 구문 분석하는 것 외에도 현재 초안에 설명 된 것이 이미 구현되었는지 여부에 대한 빠른 정보 소스가 있습니까? 다른 뭔가가있을거야?

+0

https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017 – Justin

+0

음, 외설 구현되지 않았습니다. –

+1

해당 링크에서 "병렬 처리 TS를 표준화해야합니다"에서이 기능이 구현되지 않았 음을 알 수 있습니다. 'transform_reduce'는 [Parallelism TS에서] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html#transform.reduce) – Justin

답변

2

라이브러리 (된 libstdC++) 지원은 다른 페이지에 설명되어 있습니다 : "아니오", 그래서 아직 구현되지 않은 것으로

https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z

은 "병렬 TS는"여전히 표시됩니다. 그것은 또한 Clang에서 구현되지 않았습니다. 현재 다양한 컴파일러를 테스트 할 수 있습니다 : 컴파일이 아마 실패 할 경우

https://gcc.godbolt.org

+0

s/clang/libC++/아마도? –

관련 문제