2014-10-25 3 views
2

C++ 11 및 C++ 14는 프로그래머의 삶을 더 쉽게 만들어주는 많은 새로운 기능을 소개합니다. 그러나 다양한 환경 (예 : CUDA)에서 가장 최신 C++ 기능에 대한 지원이 약하거나 존재하지 않을 수 있습니다.새로운 C++을 구형 C++로 번역

많은 기능 (예 : auto, decltype, constexpr, 가변 템플릿)은 코드 생성에 문제를 추가하지 않으며 실제로 구문을 이해하는 파서 만 필요합니다. 원칙적으로 정직하게 새로운 기능 (예 : thread_local)을 사용하지 않는 한 C++ 14 코드를 사용하고 C++ 03 언어 만 이해하는 무언가로 변환 할 수있는 도구가있을 수 있습니다.

이러한 도구가 있습니까? (또는 내 추정치가 기초에서 벗어나는 것입니까?)

+0

을 고려해야합니다. – ArunasR

+0

[_clang-modernize_] (http://clang.llvm.org/extra/clang-modernize.html)이 맞습니까? – P0W

+2

아니요, clang-modernize가 반대 변환을합니다. (예전의 C++에서 최신 C++로) –

답변

1

AFAIK 해당 도구가 없습니다. 일부 C++ 컴파일러 (원래 Cfront 및 아마도 Comeau C++)가 C 코드를 생성했습니다.

GCC를 사용자 정의하여 (예 : MELT 사용) 내부 Gimple 표현을 C++의 작은 하위 집합으로 변환 할 수 있습니다. 이것은 많은 작업입니다 (그리고 방출 된 C++은 이식 가능하지 않습니다).

아마 당신은 그래도 난의 ... 아주 좋은 생각이 알 거라고하지 OpenACC