C
++
컴파일러의 모든 에러와 경고의 리스트(2400 ~ 2499)
                                                                                                                                                                                                 

E2472 인스턴스화에 의해서 멤버 함수를 선언할 수 없다템플릿 클래스내의 선언이 템플릿 파라미터에 의존하는 형태를 통해서 함수형을 받기 위해, 함수 선언자의 올바른 구문을 사용해 함수형을 받지 않는 선언이 되는 경우, 이 프로그램의 형식은 부정합니다. 예를 나타냅니다.
template <class T>
struct A {
static T t;
};

typedef int function();

A<function> a;  //에러:  A<function>:: t//정적 멤버 함수로서 선언됩니다 다른 예를 나타냅니다.

다음의 예에서는, 템플릿 멤버'a''T'형태입니다. 이 템플릿이 함수형으로서 T로 인스턴스화 되면, 'a '는 멤버 함수이게 됩니다. 이것은 허가되지 않고, 이 에러 메세지가 표시됩니다.
template <T& x> class foo { T a;  }
int func( int );
template class foo<func>;

E2474 'function'는 정적 또는 인 라인 해 선언할 수 없다심볼을 정적 또는 인 라인으로서 선언하려고 했습니다만, 이 형태의 심볼을 정적 또는 인 라인으로서 정의할 수 없습니다. 'main', 'WinMain'등의 함수는, 정적 또는 인 라인으로서 선언할 수 없습니다. 'main'는 콘솔 프로그램의 엔트리 포인트이며, 'WinMain' Windows 어플리케이션의 엔트리 포인트입니다.

예를 들어, 이 에러는, 다음의 경우에 표시됩니다. 

static int main()    //이것은 에러가 됩니다
{}

또는
inline int main()  { return 0;  }

E2475 'function'는 템플릿 함수에는 할 수 없다'main', 'WinMain'등의 함수는, 템플릿 함수로서 선언할 수 없습니다. 'main'는 콘솔 프로그램의 엔트리 포인트이며, 'WinMain' Windows 어플리케이션의 엔트리 포인트입니다.

예)
template <class T> int main()    //
이것은 에러가 됩니다
{}

관련 링크
functiontemplates.xml

E2480 복잡한 부분 특화의 인수에 템플릿 파라미터를 넣을 수 없다 
단지 템플릿 파라미터를 직접 참조하지 않는 한, 부분 특화에서는, 값이 아닌 인수식에서 다른 템플릿 파라미터를 참조할 수 없습니다. 예를 나타냅니다. 
template<int A, int B, int C> class foo;
template<int A> class foo<A+5, A, A+10>;
이 부분 특화에는 부정한 인수가 2개 있습니다. 'A'를 단순한 직접 인수로서 사용하고 있지 않기 때문에, 'A+5'는 복잡한 식입니다. 2
차례째의 인수의 단순한'A'의 참조는 유효합니다. 다만, 3번째의 인수는, 복잡한 방법으로'A'를 참조하고 있기 때문에, 역시 부정합니다.

E2481 예기치 않은 문자열 정수 
컴파일러가 소스 입력으로의 문자열 정수의 출현을 예기치 않은 경우가 있습니다. 예를 나타냅니다. 
class foo { "Hello";  };

E2482 문자열 정수가 필요 
컴파일러는, 이 정도치에 문자열 정수를 예상했습니다만, 문자열 정수를 받지 않았습니다.
컴파일러는, 이 에러를 생성하지 않게 되었습니다.

E2483 배열의 차원 'specifier'를 판정할 수 없다
형태의 인스턴스화 중에 배열의 차원을 계산할 수 없는 경우는(통상, 보고되는 것 외의 에러가 원인으로 발생), 이 에러가 발생합니다. 예를 들어, 배열의 차원이 템플릿의 파라미터에 의존하고 있지만, 파라미터의 해석 중에 에러가 발생해, 치환되는 템플릿 인수가 유효한 정수식이 되지 않는 경우는, 이 에러가 표시됩니다.

E2488 토큰 응답 심도의 상한을 초과했다:재귀를 체크해 주세요
이 에러는, 재귀적인 템플릿의 인스턴스화가 너무 깊은 것을 나타냅니다. 프로그램에 컴파일시의 재귀 처리가 있는지 없는지를 확인해, 어느 256 레벨 이하에 억제해 주세요.

E2489 옵션 문맥 응답 심도의 상한을 초과: 재귀를 체크해 주세요
이 에러는, 재귀적인 템플릿의 인스턴스화가 너무 깊은 것을 나타냅니다.
프로그램에 컴파일시의 재귀 처리가 있는지 없는지를 확인해, 어느 256 레벨 이하에 억제해 주세요.

E2491 최대 VIRDEF수를 초과했다: 재귀를 체크해 주세요
할당할 수 있었던 VIRDEF 심볼이 너무 많습니다. 컴파일러는, 변환 유닛 마다 사용할 수 있는 VIRDEF의 수를 제한하고 있습니다. 현재, VIRDEF의 제한은 16384입니다.
예를 들어, 프로그램에 16384개를 넘는 함수가 있으면, 이 에러가 발생합니다.

E2493 부정한 GUID 문자열
GUID 문자열이 글로벌 유니크 식별자(GUID)의 형식이 아닙니다.

E2494 인식할 수 없는 __declspec 수식자
무효인 _declspec 수식자가 지정되었습니다.

E2495 uuid의 재정의가 동일하지 않다 
구조체에 아탓치 되는 GUID는, 같은 구조체의 복수의 선언 및 정의동안에서 같은 필요가 있습니다. 따라서, 다음의 예는 이 에러를 생성합니다. 
class __declspec(uuid("19 a76fe0-7494-11 d0-8816-00 a0c903b83c"))  foo;
class __declspec(uuid("00000000-7494-11 d0-8816-00 a0c903b83c"))  foo{}

E2496 무효인 uuidof(구조 체형| 변수)의 호출
uuidof 연산자에 부정한 인수가 지정되었습니다.

E2497 형'type'에 GUID를 관련 지을 수 있지 않았다
GUID가 필요한 상황으로 변수 또는 형태가 사용되었습니다만, 형태에 관련지을 수 있고 있는 GUID가 없습니다. GUID, _declspec (uuid(GUID))  ()를 사용하고 형태에 관련 지을 수 있습니다.

E2498 정의 끝난 구조체 GUID가 필요
GUID 구조체를 정의하는 헤더를 삽입하지 않고__uuidof 연산자를 사용하면, 이 에러가 발생합니다. 따라서, 다음의 프로그램 코드는 이 에러가 됩니다. 

class __declspec (uuid("19 a76fe0-7494-11 d0-8816-00 a0c903b83c"))  foo{};
int main()
{
    __uuidof(foo);
    return 0;
}

이 코드는 다음과 같이 수정할 수 있습니다.
# include <windows.h>      //
구조체의 GUID가 인클루드 됩니다
class __declspec (uuid("19 a76fe0-7494-11 d0-8816-00 a0c903b83c"))  foo{};
int main()
{
    __uuidof(foo);
    return 0;
}

E2499 무효인__declspec(uuid(Guig) )  형식
잘못된 형식을 사용해 GuidString를 정의하면, 이 에러가 발생합니다. 구조체의 GUID는 다음과 같이 정의됩니다.
class __declspec (uuid("19 a76fe0-7494-11 d0-8816-00 a0c903b83c"))  foo{};

예를 들어, 다음의 코드를 사용하면, 이 에러가 발생합니다. 

class __declspec (uuid(19 a76fe0-7494-11 d0-8816-00 a0c903b83c)) foo{};   //인용부호가 없습니다 또는 class __declspec (uuid"7494-11 d0-8816-00 a0c903b83c"))  foo{};  //왼쪽이나 고화 없습니다


 

+ Recent posts