XLC 컴파일러의 경우 템플릿 코드는 * .c 파일에 저장됩니다. 그런 다음 템플릿 함수를 사용하는 프로그램을 컴파일하면 컴파일러는 .c 파일에서 템플릿 정의를 찾아 인스턴스화합니다. 문제는 빌드 종속성을 생성하기 위해 xlC -qmakedepend를 수행 할 때 이러한 .c 파일이 기본적으로 포함되어 있지 않습니다. 따라서 .c 파일 중 하나를 변경하면
, 나는 아래의 코드 라인 4에 다음과 같은 경고를 얻을 : WARNING CCN3196 Initialization between types "const int** const" and "int**"
is not allowed.
1 int foo = 0;
2 int *ptr = &foo;
3 const int * const fixed
이 코드는 xlC 8.0 (AIX 5.3)에서 컴파일 될 때 잘못된 결과를 생성합니다. 12345을 인쇄해야하지만 대신 804399880을 인쇄하십시오. result 앞에있는 const을 제거하면 코드가 올바르게 작동합니다. 버그는 어디에 있습니까? #include <stdio.h>
#include <stdlib.h>
#include <string>