은 그래서 예를 들어, 참조되지 않은 매개 변수 경고를 방지하는 방법을 설명 스레드의 수를 본 적이 :참조되지 않은 매개 변수를 처리하는 방법에 따라 컴파일러에서 다른 작업을 수행합니까?
Avoid warning 'Unreferenced Formal Parameter'
C++ What is the purpose of casting to void?
하지만 궁금하고있어 컴파일러에 따라 다른 아무것도 할 것인지 여부입니다 어떤 접근 방식이 사용됩니까? 예를 들어, 다음의 세 가지 상황에 대한 컴파일 된 출력이 다를 수 있습니까?
void Method(int /*x*/)
{
// Parameter is left unnamed
}
void Method(int x)
{
x; // This would be the same as UNREFERENCED_PARAMETER(x);
}
void Method(int x)
{
(void)x; // This would be the same as _CRT_UNUSED(x);
}
나는 컴파일러이 어떤 작업을 수행하는지의 관점에서이 가장 관심이 있어요,하지만 당신은 다른 사람을 통해 하나의 접근 방식에 대해 강하게 느끼는 경우에, 나뿐만 아니라 그 주장을 듣고 행복 해요.
흥미롭게도 저는 옵션 1에서 정상적으로 스마트 포인터와 같은 개체를 최적화 할 수 있는지 궁금합니다. 생성자/소멸자 쌍이 호출됩니다. 참조되지 않은 매개 변수 경고는 생성되지 않지만 매개 변수를 주석 처리하면 이러한 호출을 피할 수 있을지 궁금합니다. AFC에서 멀리 떨어져 있지만 나중에 기억해두면 테스트 해 보겠습니다. – FrolickingFerret