c++(and another) compiler on website

  • gcc 버전별 컴파일 가능한 modern c++ feature 확인하기

곧 바뀔 현실이지만 실제 현업에서 많이 장애물이기도 하면서 현재도 많이 남아 있는
centos 에 대한 이슈로 gcc 빌드가 몇몇 회사의 몇몇 솔루션의 경우 c++ 11 의 feature 조차 제대로 사용할 수 없는 (하지만 일부는 또 사용가능한) 케이스가 많다

그때 그때 확인하거나 알고 싶을 때 유용한 사이트가 있다

https://gcc.godbolt.org/

gcc 버전별/ 아키텍쳐별 compile 하고 asm 코드로 표시 해 준다

일반적으로는
https://en.cppreference.com/w/cpp/11
reference 사이트를 통해서 c++ / compiler 버전에 해당하는 가능한 feature 를 알 수 있고 대다수의 기본 feature 의 경우 gcc 버전까지 바로 즉시 확인이 가능해서 사용 가능 여부를 판단 할 수 있지만
https://en.cppreference.com/w/cpp/compiler_support#C.2B.2B11_features

std 의 feature 등은 명확히 compiler 버전까지 구별되 표시하지는 않는다

해당 웹사이트의 지원되는 컴파일러 버전상 gcc 5.5 까지 불가능했고
x86-64 gcc 6.1 부터는 future 사용이 가능한걸 확인했다

추가로 물론 해당 사이트에서 컴파일 옵션을 넣을 수 있고
-std=c++11 옵션을 넣어주면
vector 의 emplace_back 함수의 경우도 4.7.1부터 (c++11 정식지원) 사용가능한걸 확인 할 수 있었다

마찬가지로 std::future 의 기능들도 gcc 컴파일 옵션을 주면 4.6.4 까지 불가능
4.7.1 부터 사용 가능함을 확인할 수 있다

하지면.. 우리들의 현실은
실제 나가 있거나 팔아야 하는 os 는 아직도 centos 6 인 경우도 많고
centos6 까지는 gcc 버전이 4.4.7 이다

그리고 아마 대부분의 기성 개발자들의 경우 modern c++ 을 한줄 더 사용하는 것 보다
여태 해오던 상태 그대로 잘 되었다고 믿던 그대로 유지할 수 있도록 os / compiler 버전을 변경하길 원하지 않는다


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다