컴파일러로 인스턴스화된 템플릿 코드를 C로 시각화
종종 개발자는 함수 템플릿이나 클래스 템플릿에 대한 컴파일러 생성 코드를 자세히 조사하고 싶어합니다. 코드에 대한 컴파일러의 해석을 더 자세히 살펴보세요. 이는 복잡한 템플릿을 사용할 때 특히 그렇습니다.
Clang의 AST Pretty-Printing
한 가지 포괄적인 솔루션은 Clang(https://clang.llvm.org/)을 활용하는 것입니다. )는 현대적이고 기능이 풍부한 C 컴파일러 프런트엔드입니다. Clang은 인스턴스화된 템플릿 코드를 시각화하는 데 매우 유용한 도구를 제공합니다.
아래 코드 조각을 고려하세요.
<code class="cpp">template <class T> T add(T a, T b) { return a + b; }</code>
다음을 포함하는 test.cpp를 컴파일할 때
<code class="cpp">template <class T> T add(T a, T b) { return a + b; } void tmp() { add<int>(10, 2); }</code>
다음을 사용하세요. 인스턴스화된 코드를 예쁘게 인쇄하려면 다음 명령을 사용하세요.
$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
출력:
template <class T> T add(T a, T b) { return a + b; } template<> int add<int>(int a, int b) { return a + b; } void tmp() { add<int>(10, 2); }
위 내용은 Clang을 사용하여 C 템플릿 코드 인스턴스화를 어떻게 시각화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!