C++컴파일러의 모든 에러와 경고의 리스트(2100 ~ 2199)
템플릿 클래스 선언의 뒤에 선언 리스트를 계속하는 것은 부정합니다. 예를 나타냅니다.
template
<class T>
class
foo {
}
object_name; //이것은 에러가 됩니다
E2102 특화 파라미터를 지정하지 않으면 템플릿'template'를
사용할 수 없다.
범용 형식의 템플릿은, 특화 파라미터를 사용해 참조할 필요가 있습니다. 예를 들어, 2개의 템플릿 파라미터를 취하는 foo라고 하는 템플릿 클래스가
있는 경우, 올바른 참조는 다음의 형식이 됩니다.
foo<
int , char >
템플릿을 foo로서
올바르게 참조할 수 있는 것은, 다음의 2개의 경우 뿐입니다.
· 템플릿명을 템플릿 템플릿 인수로서 건네주는 경우
· 클래스 템플릿의 멤버를 선언할 경우에,
그것을 포함 하는 템플릿의 형태를 참조하는 경우예를 나타냅니다.
template
<class T>
class
foo
{
public :
foo(); //템플릿 명만의 올바른 사용입니다
foo& operator =(const foo&);
};
foo<foo>
x; //에러: 템플릿 인수가 아닙니다
foo
y; //에러: 특화 파라미터가 필요합니다
E2105 'template'한정자는 멤버 템플릿 명을 지정해야 한다
템플릿 파라미터에 의존하는 코드를 해석하는 경우, 멤버명을 템플릿 함수명 또는 통상의 파라미터의 어느 쪽으로 해결할까를 판단할 수 없는 경우가 있습니다. 다음의 코드에서는, '<'(소든지) 연산자를 템플릿 인수 리스트의 개시 문자로서 해석하는지, 통상의'<'연산자로서 해석할까를 판단하기 위해서, 'template'한정자가 필요합니다.
template
<class T>
void
foo(T a)
{
a.member<10>();
}
'<'의 의미는 독자에게는 분명합니다만, 컴파일러는,"member"가 멤버 템플릿 함수를 나타내는 것을 인식하지 못하고, 코드행을 다음과 같이 해석합니다.
a.member < (10>());
'<'가 템플릿 인수 리스트의 개시 문자인 것을 컴파일러에 통지하려면, 'template'한정자가 필요합니다.
a. template member<10>(); // "member"는 멤버 템플릿이 아니면 안됩니다"member"가 멤버 템플릿에 해결되지 않는 상황으로 'template'
한정자를 사용하면, 이 에러가 발생합니다.
E2107 템플릿 'template'의 사용이
무효
이 에러는, 특화된
템플릿을 참조하는 목적 이외로 템플릿 템플릿 파라미터를 사용했을 경우, 즉 그 파라미터를 다른 템플릿의
템플릿 템플릿 인수로서 건네주려고 하면 발생합니다.
예)
template
<template <class T> class U>
class
foo;
template
<template <class T> class U>
class
bar
{
U x; //에러: 특화가 아닙니다
U<U> y; // OK:
특화의 목적으로, 템플릿
//인수로서 사용됩니다
U<bar>
z; // OK: 특화의 참조에 사용됩니다
};
E2122 함수 호출이 미처리 예외'value'에 의해서 주소'addr'로 종료했다
버그시의 평가중의 식에 미처리의 예외를 생성해 종료하는 함수 호출이 포함되어 있는 경우는, 이 메세지가 생성됩니다. 예를 들어, 디버거의 평가 다이얼로그로 식 foo()+1의 평가를 요구해, 함수 foo() 의 실행에 의해서 GPfault가 발생하는 경우는, 이 에러 메세지가 생성됩니다.
이 메세지는, 식의 평가 결과가 표시되는 감시식 윈도우에도 표시됩니다.
E2191 '__far16'는 '__pascal' 또는 decl' 가 있는 경우에 한해서 사용할 수 있다
이것은 내부 compile error입니다. 키워드__far16가 키워드 __pascal 또는 __cdecl 의 어느 쪽이든 같은 선언에 혼재하고 있는 경우는, 컴파일러가 이 메시지를 생성합니다.
사용하지 않습니다.
E2196 멤버 함수'function'의 주소를 취득할 수 없다클래스 멤버 함수의 주소를 받는 식이 있습니다만, 이 멤버 함수는 디버그중의 프로그램에 발견되지 않았습니다. 이 메세지는, 평가 모듈이 생성합니다.
'1.소프트웨어 이야기 > 10.번역 작업' 카테고리의 다른 글
VCL 에러메시지 2200 ~ 2299 (0) | 2008.01.25 |
---|---|
VCL 에러메시지 2000 ~ 2099 (0) | 2008.01.25 |
[작업중] C++컴파일러의 모든 에러와 경고의 리스트 (1) | 2008.01.25 |