© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
일반 C++ 템플리트는 시각화와 편집이 가능합니다. 하지만 CDT 지원이 부족하기 때문에 템플리트 전문화와 부분적인 전문화는 지원되지 않습니다. 현재 UI에서는 전체 및 부분적인 전문화의 시각화 항목이 사용 가능합니다. 예를 들면, 다음과 같습니다.
template <class T> class MyVec {
T* data;
int length;
};이것은 일반 템플리트입니다. 일반 템플리트의 시각화는 가능합니다.
template <> class MyVec<bool> {
unsigned int * data;
int length;
};이것은 전문 템플리트입니다. 전문 템플리트에 대한 시각화는 실패합니다.
필드 및 메소드 편집은 익명의 C++ 유형에 지원되지 않습니다. 예를 들면, 다음과 같습니다.
class c1 {
class {int j;} abc; // 구성원 abc의 유형은 클래스에 어떤 유형 이름도 제공되지 않도록 정의되었으므로 익명의 유형입니다.
};필드 abc의 유형은 익명의 클래스입니다.
필드, 메소드 및 열거형 리터럴의 추가 또는 삭제와 같은 편집 조작이 다이어그램에서 수행될 때 현재 C++ 시각화에서는 델타 변경 처리가 불가능합니다. 따라서 C++ 시각화 편집 기능은 익명의 유형에 사용 불가능합니다. 일반적으로 편집 기능이 사용 가능하도록 가능한 한 이름 지정된 유형으로 작업하도록 합니다. 이러한 작업이 가능하지 않은 경우 직접 코드를 편집해야 합니다.
익명의 이름 공간에 중첩된 C++ 유형의 필드 및 메소드 편집이 지원되지 않습니다. 예를 들면, 다음과 같습니다.
namespace { // 익명의 이름 공간
class c1 {};
}클래스 c1은 익명의 이름 공간에 중첩된 이름 지정된 유형입니다.
필드, 메소드 및 열거형 리터럴의 추가 또는 삭제와 같은 편집 조작이 다이어그램에서 수행될 때 현재 C++ 시각화에서는 익명의 이름 공간에 중첩된 이름 지정된 유형에 대한 변경사항 처리가 불가능합니다. 따라서 C++ 시각화 편집 기능은 익명의 이름 공간에 중첩된 이름 유형에 사용 불가능합니다. 일반적으로 편집 기능이 사용 가능하도록 가능한 한 이름 지정된 이름 공간으로 작업하도록 합니다. 이러한 작업이 가능하지 않은 경우 직접 코드를 편집해야 합니다.
규정된 이름의 유형 정의는 C++ 시각화에 지원되지 않습니다. 예를 들면, 다음과 같습니다.
namespace n1 {
class c1; // class c1의 다음 선언
}
class n1::c1{ int i;}; // 완전한 이름을 사용한 class c1의 정의입니다.C++ 시각화에서는 위와 같은 클래스 c1의 정의 및 시각화 실패를 처리할 수 없습니다.
해결 방법: 위의 코드에 해당하는 다음 코드를 사용하십시오.
namespace n1 {
class c1{ int i;};
}
유형에 있는 구성원의 추가/삭제 또는 요소 이름 바꾸기를 포함한 코드의 변경사항은 시각화 다이어그램에 반영되지 않습니다. 이에 대한 가장 일반적인 원인은 CDT의 변경 알림이 부적절하거나 불충분하기 때문입니다.
해결 방법: 파일을 임시로 변경하고 한 번 더 코드를 저장하십시오. 또한 CDT로 작성된 C/C++ 색인이" 코드와 일치하지 않을 수도 있습니다. 일부 항목이 누락된 경우 C/C++ 색인에 대한 빠른 확인(뷰 표시 > 기타 > C/C++ > C/C++ 색인)으로 색인 갱신이 문제점임을 알 수 있습니다. 이런 경우 프로젝트의 색인을 다시 빌드하는 것이 좋습니다. 하지만 색인을 다시 빌드하면 많은 양의 프로젝트의 경우 시간이 많이 걸리므로 상황에 맞게 사용해야 합니다. 다이어그램에 관련 요소를 표시하려면 전체 C/C++ 색인기 옵션을 선택하십시오.