3
작동하지 않는 일반 조회 및 종속 함수 호출 내가 믿을 C에 따라 일을해야되게 간단한 코드 ++ 표준 입니다 :ADL, 여기 OO
:template<typename T>
void foo(T x)
{
bar(x);
void bar(int);
}
void bar(int) { }
int main()
{
foo(0);
}
오류가 온다 GCC 4.7로
는 '줄'이 범위에서 선언되지 않은, 어떤 선언은 인스턴스의 시점에서 인수 종속적 조회에 의해 를 찾을 수 없습니다
그러나 C++ 표준에서는 작성되었습니다. § 14.6.4.2 : 템플릿 매개 변수에 의존하는 함수 호출에 대한
는 후보 함수는 것을 제외하고, 일반적인 규칙 룩업 (3.4.1 3.4.2, 3.4.3)를 사용하여 발견된다 :내가 쓴 무슨 잘못된 인상을 가지고있다 할 수있다은 - 규정되지 않은 이름 조회 (3.4.1) 또는 공인 이름 조회 (3.4.3)를 사용하여 검색의 일부를 들어, 템플릿 정의 컨텍스트 만 함수 선언이 발견된다.
는
는, 사람이 나를 여기에 수정하시기 바랍니다 수 있습니까?
나는 그것을 할 수 있었고 효과가있었습니다. 그런데 왜 작동하지 않습니까? 그 인스턴스의 시점에서 그것은 종속 호출 이후 해결되었을 것입니다. – M3taSpl0it
글쎄, 당신의 표준 스 니펫을 읽었을 때, 나는 그것이 내가 말한 것과 충돌하지 않을 것이거나, GCC가 당신의 코드를 거부했다고 생각하지 않습니다. 나는 당신이 제시 한 것이 적절한 C++가 아니라고 생각합니다. –
그래서 인스턴스화 시점에서 종속 호출에 대해 일반 조회가 수행되지 않는다는 의미입니까? – M3taSpl0it