Unreal Engine 4의 소스 코드에서이를 발견했으며이를 인식하지 못했습니다. 그것의 구체적인 예는 다음과 같습니다매크로를 정의 할 때`(...) '의 의미는 무엇입니까?
#undef UCLASS
#define UCLASS(...) \
ARadialForceActor_EVENTPARM
나는 비교적 새로운 프로그래머와 매크로 이런 종류의 나에게 익숙 해요. 내 생각에 함수의 모든 오버로드 된 버전 UCLASS
(즉, 매개 변수의 유형 및 개수에 관계없이 UCLASS
이라는 함수의 모든 인스턴스)을 취하고 변수 ARadialForceActor_EVENTPARM
으로 바꾸는 매크로를 정의하는 것으로 추정됩니다. 그 맞습니까? 그렇지 않다면 누구나 그것이 무엇을 의미하는지 알고 있습니까? 이것을 테스트하기 위해 코드 스 니펫을 작성하려했지만 error: "." may not appear in macro parameter list
을 반환했습니다. 나는 경우에 나는, 매크로에 대한 옳은 사람이 지적 할 수 있다면 나는 내 코드에서 잘못된 곳이 경우에 나는 그것을 감사하겠습니다, 다음을 포함합니다 :
#include <iostream>
#define foo(. . .) bar
using namespace std;
int foo() {cout <<54321<<endl;}
int main()
{ bar=12345;
cout<<bar<<endl;
return 0;
}
[variaidic 매크로] (http://en.cppreference.com/w/cpp/preprocessor/replace)입니다. C++ 11에서만 작동합니다. – chris
왜 공백을 추가 했습니까? –
@ 은퇴 한 닌자 - 아, 그래, 오타입니다. 나는 양쪽 모두를 시도했는데 어느 쪽의 방법으로도 같은 에러를 발생시킨다. –