GCC

소프트웨어 스크린 샷:
GCC
소프트웨어 정보:
버전: 8.2.0 업데이트
업로드 날짜: 16 Aug 18
개발자: The GCC Team
라이센스: 무료
인기: 108

Rating: 3.0/5 (Total Votes: 3)

GCC (GNU Compiler Collection)는 GNU / Linux 및 BSD 기반 운영 체제 용 컴파일러의 역할을하도록 설계된 오픈 소스 명령 행 소프트웨어입니다. Objective-C, Go, C ++, Java, C, Ada 및 Fortran을 포함한 수많은 프로그래밍 언어의 프런트 엔드가 포함되어 있습니다.


기능 요약

GCC를 사용하면 리눅스 나 BSD 운영체제에서 각 프로그램의 소스 아카이브만을 사용하여 GNU / Linux 응용 프로그램을 구성, 컴파일 및 설치할 수 있습니다. 그러나 사용자는 configure 및 make 스크립트에 의해 자동으로 수행되므로 컴파일러와 상호 작용할 필요가 없습니다.

프로젝트에는 libstdc 및 libgcj와 같은 다양한 프로그래밍 언어 용 라이브러리도 포함되어 있으며 대부분의 GNU 소프트웨어와 마찬가지로 컴퓨터에 빌드하고 설치하기 전에 구성해야합니다.

또한 특정 라이브러리에 대한 전체 경로, 컴파일러의 검색 경로에있는 폴더, 특정 구성 요소에 대한 전체 경로, 대상 라이브러리 디렉토리, 헤더를 찾는 데 사용되는 sysroot 접미어 및 대상의 정규화 된 GNU 트리플릿을 표시 할 수 있습니다. p>

또한 쉼표로 분리 된 특정 옵션과 인수를 어셈블러, 선행 처리기 및 링커에 전달하고, 링크하지 않고 컴파일 및 어셈블하고, 공유 라이브러리를 만드는 등의 다양한 옵션이 있습니다.


GNU 운영 체제 용으로 설계되었습니다.

원래 GNU 운영체제의 주요 컴파일러로 작성된 GCC (GNU Compiler Collection)는 100 % 자유 소프트웨어로 개발되었으며 모든 Linux 배포판에 기본적으로 설치됩니다.

이 소프트웨어는 오픈 소스 개발자가 프로그램을 컴파일하는 데에도 사용됩니다. 명령 행에는 몇 가지 옵션이 있으며, 그 중 컴파일러의 타겟 프로세서와 OS 라이브러리에 대한 상대 경로를 표시하는 기능을 언급 할 수 있습니다.


결론

결국, GCC는 GNU / Linux 운영 체제에서 가장 필수적인 구성 요소 중 하나입니다. GCC가 없어도 세상을 상상할 수있을뿐만 아니라 GCC가 전체 오픈 소스 생태계의 주요 이유입니다.

이번 출시의 새로운 기능 :

GCC 7.3은 이전 릴리스 이후 GCC 7.2에서 수정 된 버그와 심각한 버그를 99 개 이상의 버그가 수정 된 GCC 7 지점의 버그 수정 릴리스입니다.
이 릴리스에는 x86 및 powerpc 대상에 대한 Spectre Variant 2 (CVE 2017-5715)를 완화하는 코드 생성 옵션이 포함되어 있습니다.

버전 8.1.0의 새로운 기능 :

GCC 7.3은 GCC 7 브랜치의 버그 수정 릴리즈로 GCC 7.2의 회귀 및 심각한 버그 수정 사항을 포함하고 있습니다. 이전 릴리스 이후 99 개의 버그가 수정되었습니다.
이 릴리스에는 x86 및 powerpc 대상에 대한 Spectre Variant 2 (CVE 2017-5715)를 완화하는 코드 생성 옵션이 포함되어 있습니다.

버전의 새로운 기능 :


GCC 7.1은 GCC 6.x 또는 이전 GCC 릴리즈에서는 사용할 수없는 실질적인 새로운 기능을 포함하는 주요 릴리스입니다. C ++ 프론트 엔드는 현재 -std = c ++ 1z 및 -std = gnu ++ 1z 옵션을 사용하여 현재 C ++ 17 초안을 모두 시험 지원하며 libstdc ++ 라이브러리는 대부분 C ++ 17 초안을 가지고 있습니다 라이브러리 기능도 구현되었습니다. 이 기능은 개선 된 위치, 위치 범위, 맞춤법이 틀린 식별자에 대한 제안, 옵션 이름, 픽스 - 인 힌트 및 다양한 새로운 경고가 추가 된 등 방출 된 진단의 다양한 개선 기능을 제공합니다. 옵티 마이저가 개선되어 내부 및 절차 간 최적화, 링크 타임 최적화 및 다양한 대상 백엔드 (저장소 합병 패스 추가, 코드 호이팅 최적화, 루프 분할 및 축소 등을 포함하되 이에 국한되지 않음)가 개선되었습니다 포장 개선. Address Sanitizer는 범위를 벗어난 후에 변수 사용을보고 할 수 있습니다. GCC는 OpenMP 4.5가 NVidia PTX GPGPU로 오프로드되도록 구성 할 수 있습니다.

버전 6.3.0의 새로운 기능 :


GCC 6.3은 이전 릴리스 이후 79 개 이상의 버그가 수정 된 GCC 6.2의 회귀 및 심각한 버그 수정을 포함하는 GCC 6 지점의 버그 수정 릴리스입니다.

버전 6.2.0의 새로운 기능 :



이 릴리스는 GCC의 이전 릴리스와 관련된 GCC 5.2의 회귀 수정 사항을 포함하는 버그 수정 릴리스입니다.

버전 6.1.0의 새로운 기능 :



이 릴리스는 GCC의 이전 릴리스와 관련된 GCC 5.2의 회귀 수정 사항을 포함하는 버그 수정 릴리스입니다.

버전 5.3.0의 새로운 기능 :



이 릴리스는 GCC의 이전 릴리스와 관련된 GCC 5.2의 회귀 수정 사항을 포함하는 버그 수정 릴리스입니다.

버전 5.2.0의 새로운 기능 :



이 릴리스는 GCC의 이전 릴리스와 관련된 GCC 5.1의 회귀 수정 사항을 포함하는 버그 수정 릴리스입니다.

버전 5.1.0의 새로운 기능 :

C ++ 프론트 엔드는 이제 전체 C ++ 14 언어 지원을 제공하고 표준 C ++ 라이브러리는 전체 C ++ 11 지원 및 실험적 전체 C ++ 14 지원을 제공합니다. 듀얼 ABI를 채택하여 완전한 C ++ 11 지원이 가능해졌습니다. 자세한 내용은 https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html을 참조하십시오.
C 프론트 엔드는 이제 GNU 확장이 포함 된 C11 모드로 기본 설정됩니다.이 기능은 인라인 키워드의 의미에 영향을 주며 다른 몇 가지 사용자가 볼 수있는 변경 사항을 제공합니다. 자세한 내용은 https://gcc.gnu.org/gcc-5/porting_to.html을 참조하십시오. .
GCC 5.1에는 다양한 프로 시저 간 최적화 개선 사항이 포함되어 있습니다. 새로운 IPA 동일 코드 폴딩 패스 및 다양한 LTO 개선. C ++ 유형의 ODR 기반 병합에 대한 자세한 내용은 http://hubicka.blogspot.cz/2015/04/GCC5-IPA-LTO-news.html을 참조하십시오.
GCC 5.1 로컬 레지스터 할당 자에는 이제 재 materialization 서브 패스가 포함되어 있습니다. 86 / x86-64에서 PIC 하드 레지스터를 재사용하여 위치 독립 코드의 성능을 향상시킬 수 있으며 간단한 프로 시저 간 RA 패스 및 기타 다양한 레지스터 할당 개선이있었습니다 덧붙였다.

GCC 5.1은 OpenACC 표준을 부분적으로 지원하고 Intel의 향후 Xeon Phi 가속기로 OpenMP 4.0을 오프로드 할 수 있도록 지원하며 PTX로 OpenACC 오프로드를 지원합니다. GCC의 정의되지 않은 동작 Sanitizer는 다양한 새로운 런타임 검사를 추가하여 확장되었습니다. 실험용 GCC JIT 라이브러리가 GCC 5.1에 추가되었습니다.

버전 4.8.4의 새로운 기능 :

일반 최적화 도구 개선 사항 :
빠른 메모리 오류 감지기 인 AddressSanitizer가 ARM에서 제공됩니다.
빠른 정의되지 않은 동작 탐지기 인 UndefinedBehaviorSanitizer (ubsan)가 추가되었으며 -fsanitize = undefined를 통해 활성화 할 수 있습니다. 런타임시 정의되지 않은 동작을 감지하기 위해 다양한 계산이 구현됩니다. UndefinedBehaviorSanitizer는 현재 C 및 C ++ 언어에서 사용할 수 있습니다.
링크 타임 최적화 (LTO) 개선 사항 :
형식 병합이 다시 작성되었습니다. 새로운 구현은 훨씬 빠르며 메모리 사용량도 적습니다.
링크 시간 동안 스트리밍을 줄이는 더 나은 파티셔닝 알고리즘.
가상 메소드를 조기에 제거하면 객체 파일의 크기가 줄어들고 링크 타임 메모리 사용 및 컴파일 시간이 향상됩니다.
함수 바디는 이제 요청시로드되고 링크 시간에 전반적인 메모리 사용을 향상시키는 조기에 릴리스됩니다.
C ++ 숨겨진 키 방식을 이제는 최적화 할 수 있습니다.링커 플러그인을 사용할 때 -flto 옵션을 사용하여 컴파일하면 이제 LTO에 대한 중간 언어 표현 만 포함 된 슬림 한 객체 파일 (.o)이 생성됩니다. 추가적으로 객체 코드를 포함하는 파일을 생성하려면 -ffat-lto-objects를 사용하십시오. LTO 처리에 적합한 정적 라이브러리를 생성하려면 gcc-ar과 gcc-ranlib을 사용하십시오. 슬림 오브젝트 파일의 심볼을 나열하려면 gcc-nm을 사용하십시오. (이렇게하려면 ar, ranlib 및 nm이 플러그인 지원으로 컴파일되어야합니다.)
메모리 사용 구축 디버그가 가능한 파이어 폭스가 15GB에서 3.5GB로 축소되었습니다. 1700 초에서 350 초 사이의 링크 시간.
절차 간 최적화 개선 :
가상화를 개선하는 새로운 유형의 상속 분석 모듈. 이제는 가상화가 익명 네임 스페이스와 C ++ 11 최종 키워드를 고려합니다.
새로운 투기 적 가상화 패스 (-fdevirtualize-speculatively에 의해 제어 됨.
투기 적으로 직접 작성된 전화는 직접 전화가 저렴하지 않은 간접 전화로 되돌려집니다.
로컬 별칭은 공유 라이브러리에서 의미 상으로 동등한 것으로 알려진 심볼에 대해 도입되어 동적 연결 시간을 향상시킵니다.
피드백 유도 최적화 개선 :C ++ 인라인 함수를 사용하여 프로그램을 프로파일 링하는 것이 더 안정적입니다.
새로운 시간 프로파일 링은 함수가 실행되는 일반적인 순서를 결정합니다.
새로운 함수 재 순서 지정 단계 (-freorder-functions에 의해 제어 됨)는 대형 응용 프로그램의 시작 시간을 크게 줄입니다. binutils 지원이 완료 될 때까지는 링크 타임 최적화에서만 유효합니다.
피드백 기반 간접 호출 제거 ​​및 가상화는 링크 시간 최적화가 활성화 될 때 모듈 간 호출을 처리합니다.
새로운 언어 및 언어 별 개선 사항 :
OpenMP 사양 버전 4.0은 이제 C 및 C ++ 컴파일러에서 지원되며 Fortran 컴파일러에서도 4.9.1 릴리스부터 지원됩니다. 새로운 -fopenmp-simd 옵션을 사용하면 OpenMP의 SIMD 지시문을 활성화하고 다른 OpenMP 지시문은 무시할 수 있습니다. 새로운 -fsimd-cost-model = 옵션을 사용하면 OpenMP 및 Cilk Plus simd 지시문이 주석 된 루프에 대한 벡터화 비용 모델을 조정할 수 있습니다. -Wopenmp-simd는 현재 비용 모델이 사용자가 설정 한 simd 지시문을 무시할 때 경고합니다.-C, C ++ 및 Fortran 컴파일러에 대해 -Wdate-time 옵션이 추가되었습니다.이 컴파일러는 __DATE__, __TIME__ 또는 __TIMESTAMP__ 매크로가 사용될 때 경고합니다. 이러한 매크로는 비트 단위로 동일한 재현 가능한 컴파일을 방지 할 수 있습니다.
에이다 :
GNAT는 기본적으로 Ada 2005 대신 Ada 2012로 전환했습니다.
C 계열 :
GCC에서 발행 한 컬러링 진단에 대한 지원이 추가되었습니다. -fdiagnostics-color = auto는 터미널에 출력 할 때 -fdiagnostics-color = 항상 무조건적으로 사용 가능하게합니다. GCC_COLORS 환경 변수를 사용하여 색상을 사용자 정의하거나 색상 표시를 사용 불가능하게 할 수 있습니다. 환경에 GCC_COLORS 변수가 있으면 기본값은 -fdiagnostics-color = auto이며, 그렇지 않으면 -fdiagnostics-color = never입니다.
샘플 진단 출력 :
$ g ++ -fdiagnostics-color = 항상 -S - 벽 테스트 .C
test.C : 함수에서 & lsquo; int foo () ':
test.C : 1 : 14 : 경고 : 함수에서 반환 문이 void가 아닌 반환 함 [-Wreturn-type]
int foo () {}
test.C : 2 : 46 : 오류 : 템플릿 인스턴스화 깊이가 최대 900을 초과합니다 (최대를 높이려면 -ftemplate-depth = 사용) struct X '
템플릿 구조체 X {static const int value = X :: value; }; 템플릿 구조체 X;test.C : 2 : 46 : & lsquo; const int X :: value '에서 재귀 적으로 필요함.
test.C : 2 : 46 : & lsquo; const int X :: value '에서 필요합니다.
test.C : 2 : 88 : 여기에서 필요합니다.
test.C : 2 : 46 : 오류 : 중첩 된 이름 지정자에 사용 된 불완전한 유형 & lsquo; X '
새로운 #pragma GCC ivdep를 사용하면 사용자는 SIMD (단일 명령 다중 데이터) 명령어를 사용하여 연속 반복 실행을 방지하는 루프가있는 종속성이 없다고 주장 할 수 있습니다.
Cilk Plus에 대한 지원이 추가되었으며 -fcilkplus 옵션을 사용하여 활성화 할 수 있습니다. Cilk Plus는 데이터 및 작업 병렬 처리를 지원하는 C 및 C ++ 언어의 확장입니다. 현재 구현은 ABI 버전 1.2를 따른다; _Cilk_for를 제외한 모든 기능이 구현되었습니다.
ISO C11 atomics (_Atomic 유형 지정자 및 한정자 및 헤더)가 이제 지원됩니다.
ISO C11 제네릭 선택 (_Generic 키워드)이 지원됩니다.
ISO C11 스레드 로컬 저장소 (_Thread_local, GNU C __thread와 유사)가 지원됩니다.ISO C11 지원은 현재 ISO C99 지원과 거의 비슷한 수준입니다 : 모듈로 버그, 확장 식별자 (-fextended-identifier가 사용되는 경우를 제외하고 지원됨), 부동 소수점 문제 (주로 선택적 Annexes F 및 G의 C99 기능과 선택적 Annexes K (경계 검사 인터페이스) 및 L (분석 기능).
새로운 C 확장 __auto_type은 GNU C에서 C ++ 11 자동 기능의 하위 집합을 제공합니다.
C ++ :
일반 함수에 대한 C ++ 1y 반환 유형 차감의 G ++ 구현이 작업 보고서에 채택 된 제안 인 N3638을 준수하도록 업데이트되었습니다. 가장 주목할만한 것은 일반 자동의 템플릿 인자 공제 의미가 아니라 decltype 의미를 얻기위한 decltype (auto)을 추가 한 것입니다.
int & amp; 에프();
자동 i1 = f (); // int
decltype (자동) i2 = f (); // int & amp;
G ++는 C ++ 1y 람다 캡처 초기화 프로그램을 지원합니다.
[x = 42] {...};
실제로, GCC 4.5 이후에 받아 들여졌지만 컴파일러는 -std = c ++ 1y로 경고하지 않으며 괄호로 묶은 중괄호로 묶은 이니셜 라이저도 지원합니다.

G ++은 C ++ 1y 가변 길이 배열을 지원합니다. G ++는 GNU / C99 스타일의 VLA를 오랫동안 지원해 왔지만 현재 참조로 이니셜 라이저와 람다 캡처를 추가로 지원합니다. C ++ 1y 모드에서 G ++는 VLA 유형에 대한 포인터를 작성하거나 VLA 변수에 sizeof를 적용하는 것과 같이 초안 표준에서 허용되지 않는 VLA 사용에 대해 불만을 토로합니다. VLA는 C ++ 14의 일부가 아니지만 별도의 문서에 포함 된 다음 C ++ 17의 일부가 될 것입니다.
void f (int n) {
int [n] = {1, 2, 3}; // n & lt; 0이면 std :: bad_array_length를 던집니다. 삼
[& amp; a] {for (int i : a) {cout

버전 4.9.1의 새로운 기능 :



GCC 4.9.1은 GCC 4.9 분기의 버그 수정 릴리즈로 GCC 4.9.0의 심각한 버그 및 수정본을 포함하고 있으며 이전 릴리스 이후 88 개 이상의 버그가 수정되었습니다. 그 외에도 GCC 4.9.1 릴리스는 C 및 C ++뿐 아니라 Fortran에서도 OpenMP 4.0을 지원합니다.

버전 4.9.0의 새로운 기능 :

일반 최적화 도구 개선 사항 :
빠른 메모리 오류 감지기 인 AddressSanitizer가 ARM에서 제공됩니다.
빠른 정의되지 않은 동작 탐지기 인 UndefinedBehaviorSanitizer (ubsan)가 추가되었으며 -fsanitize = undefined를 통해 활성화 할 수 있습니다. 런타임시 정의되지 않은 동작을 감지하기 위해 다양한 계산이 구현됩니다. UndefinedBehaviorSanitizer는 현재 C 및 C ++ 언어에서 사용할 수 있습니다.
링크 타임 최적화 (LTO) 개선 사항 :
형식 병합이 다시 작성되었습니다. 새로운 구현은 훨씬 빠르며 메모리 사용량도 적습니다.
링크 시간 동안 스트리밍을 줄이는 더 나은 파티셔닝 알고리즘.
가상 메소드를 조기에 제거하면 객체 파일의 크기가 줄어들고 링크 타임 메모리 사용 및 컴파일 시간이 향상됩니다.
함수 바디는 이제 요청시로드되고 링크 시간에 전반적인 메모리 사용을 향상시키는 조기에 릴리스됩니다.
C ++ 숨겨진 키 방식을 이제는 최적화 할 수 있습니다.링커 플러그인을 사용할 때 -flto 옵션을 사용하여 컴파일하면 LTO에 대한 중간 언어 표현 만 포함하는 슬림 오브젝트 파일 (.o)이 생성됩니다. 추가적으로 객체 코드를 포함하는 파일을 생성하려면 -ffat-lto-objects를 사용하십시오. LTO 처리에 적합한 정적 라이브러리를 생성하려면 gcc-ar과 gcc-ranlib을 사용하십시오. 슬림 오브젝트 파일의 심볼을 나열하려면 gcc-nm을 사용하십시오. (ar, ranlib 및 nm은 플러그인 지원으로 컴파일해야합니다.)
메모리 사용 구축 디버그가 가능한 파이어 폭스가 15GB에서 3.5GB로 축소되었습니다. 1700 초에서 350 초 사이의 링크 시간.
절차 간 최적화 개선 :
가상화를 개선하는 새로운 유형의 상속 분석 모듈. 이제는 가상화가 익명 네임 스페이스와 C ++ 11 최종 키워드를 고려합니다.
새로운 투기 적 가상화 패스 (-fdevirtualize-speculatively에 의해 제어 됨.
투기 적으로 직접 작성된 전화는 직접 전화가 저렴하지 않은 간접 전화로 되돌려집니다.
로컬 별칭은 공유 라이브러리에서 의미 상으로 동등한 것으로 알려진 심볼에 대해 도입되어 동적 연결 시간을 향상시킵니다.
피드백 유도 최적화 개선 :C ++ 인라인 함수를 사용하여 프로그램을 프로파일 링하는 것이 더 안정적입니다.
새로운 시간 프로파일 링은 함수가 실행되는 일반적인 순서를 결정합니다.
새로운 함수 재 순서 지정 단계 (-freorder-functions에 의해 제어 됨)는 대형 응용 프로그램의 시작 시간을 크게 줄입니다. binutils 지원이 완료 될 때까지는 링크 타임 최적화에서만 유효합니다.
피드백 기반 간접 호출 제거 ​​및 가상화는 링크 시간 최적화가 활성화 될 때 모듈 간 호출을 처리합니다.
새로운 언어 및 언어 별 개선 사항 :
이제 OpenMP 사양 버전 4.0이 C 및 C ++ 컴파일러에서 지원됩니다. 새로운 -fopenmp-simd 옵션을 사용하면 OpenMP의 SIMD 지시문을 활성화하고 다른 OpenMP 지시문은 무시할 수 있습니다. 새로운 -fsimd-cost-model = 옵션을 사용하면 OpenMP 및 Cilk Plus simd 지시문이 주석 된 루프에 대한 벡터화 비용 모델을 조정할 수 있습니다. -Wopenmp-simd는 현재 costmodel이 사용자가 설정 한 simd 지시문을 무시할 때 경고합니다.
-C, C ++ 및 Fortran 컴파일러에 대해 -Wdate-time 옵션이 추가되었습니다.이 컴파일러는 __DATE__, __TIME__ 또는 __TIMESTAMP__ 매크로가 사용될 때 경고합니다. 이러한 매크로는 비트 단위로 동일한 재현 가능한 컴파일을 방지 할 수 있습니다.에이다 :
GNAT는 기본적으로 Ada 2005 대신 Ada 2012로 전환했습니다.
C 계열 :
GCC에서 발행 한 컬러링 진단에 대한 지원이 추가되었습니다. -fdiagnostics-color = auto는 터미널에 출력 할 때 -fdiagnostics-color = 항상 무조건적으로 사용 가능하게합니다. GCC_COLORS 환경 변수를 사용하여 색상을 사용자 정의하거나 색상 표시를 사용 불가능하게 할 수 있습니다. 환경에 GCC_COLORS 변수가 있으면 기본값은 -fdiagnostics-color = auto이며, 그렇지 않으면 -fdiagnostics-color = never입니다.
샘플 진단 출력 :
$ g ++ -fdiagnostics-color = 항상 -S - 벽 테스트 .C
test.C : 함수에서 & lsquo; int foo () ':
test.C : 1 : 14 : 경고 : 함수에서 반환 문이 void가 아닌 반환 함 [-Wreturn-type]
int foo () {}
test.C : 2 : 46 : 오류 : 템플릿 인스턴스화 깊이가 최대 900을 초과합니다 (최대를 높이려면 -ftemplate-depth = 사용) struct X '
템플릿 구조체 X {static const int value = X :: value; }; 템플릿 구조체 X;
test.C : 2 : 46 : & lsquo; const int X :: value '에서 재귀 적으로 필요함.
test.C : 2 : 46 : & lsquo; const int X :: value '에서 필요합니다.
test.C : 2 : 88 : 여기에서 필요합니다.test.C : 2 : 46 : 오류 : 중첩 된 이름 지정자에 사용 된 불완전한 유형 & lsquo; X '
새로운 #pragma GCC ivdep를 사용하면 사용자는 SIMD (단일 명령 다중 데이터) 명령어를 사용하여 연속 반복 실행을 방지하는 루프가있는 종속성이 없다고 주장 할 수 있습니다.
Cilk Plus에 대한 지원이 추가되었으며 -fcilkplus 옵션을 사용하여 활성화 할 수 있습니다. Cilk Plus는 데이터 및 작업 병렬 처리를 지원하는 C 및 C ++ 언어의 확장입니다. 현재 구현은 ABI 버전 1.2를 따른다; _Cilk_for를 제외한 모든 기능이 구현되었습니다.
ISO C11 atomics (_Atomic 유형 지정자 및 한정자 및 헤더)가 이제 지원됩니다.
ISO C11 제네릭 선택 (_Generic 키워드)이 지원됩니다.
ISO C11 스레드 로컬 저장소 (_Thread_local, GNU C __thread와 유사)가 지원됩니다.ISO C11 지원은 현재 ISO C99 지원과 거의 비슷한 수준입니다 : 모듈로 버그, 확장 식별자 (-fextended-identifier가 사용되는 경우를 제외하고 지원됨), 부동 소수점 문제 (주로 선택적 Annexes F 및 G의 C99 기능과 선택적 Annexes K (경계 검사 인터페이스) 및 L (분석 기능).
새로운 C 확장 __auto_type은 GNU C에서 C ++ 11 자동 기능의 하위 집합을 제공합니다.
C ++ :
일반 함수에 대한 C ++ 1y 반환 유형 차감의 G ++ 구현이 작업 보고서에 채택 된 제안 인 N3638을 준수하도록 업데이트되었습니다. 가장 주목할만한 것은 일반 자동의 템플릿 인자 공제 의미가 아니라 decltype 의미를 얻기위한 decltype (auto)을 추가 한 것입니다.
int & amp; 에프();
자동 i1 = f (); // int
decltype (자동) i2 = f (); // int & amp;
G ++는 C ++ 1y 람다 캡처 초기화 프로그램을 지원합니다.
[x = 42] {...};
실제로, GCC 4.5 이후에 받아 들여졌지만 컴파일러는 -std = c ++ 1y로 경고하지 않으며 괄호로 묶은 중괄호로 묶은 이니셜 라이저도 지원합니다.G ++은 C ++ 1y 가변 길이 배열을 지원합니다. G ++는 GNU / C99 스타일의 VLA를 오랫동안 지원해 왔지만 현재 참조로 이니셜 라이저와 람다 캡처를 추가로 지원합니다. C ++ 1y 모드에서 G ++는 VLA 유형에 대한 포인터를 작성하거나 VLA 변수에 sizeof를 적용하는 것과 같이 초안 표준에서 허용되지 않는 VLA 사용에 대해 불만을 토로합니다. VLA는 C ++ 14의 일부가 아니지만 별도의 문서에 포함 된 다음 C ++ 17의 일부가 될 것입니다.
void f (int n) {
int [n] = {1, 2, 3}; // n & lt; 0이면 std :: bad_array_length를 던집니다. 삼
[& amp; a] {for (int i : a) {cout

유사한 소프트웨어

Chapel
Chapel

11 May 15

Toka
Toka

3 Jun 15

daot
daot

11 May 15

Susie
Susie

2 Jun 15

코멘트 GCC

1 댓글
  • http://www.eduwizzonlinetrainings.com 29 Dec 17
    EduwizzOnlineTraining is one of the Best Online Training Institute in Hyderabad, Bangalore. Eduwizz provide courses like Hybris Development, WebSphere Commerce Server,Blockchain Training,Hyperledger Fabric Development ,Ethereum Development ,Commvault Training, Devops , Netapps , Mulesoft ESB ,Machine Learning,Data Science , Internet of Things , Hybris ,Angular JS , Node JS , Express JS , Business Analyst, Selenium testing with webdriver, Guidewire ,Adobe, RPA ,TSM, EMC...etc
코멘트를 추가
이미지를 켜십시오!