VSTS 2010 Beta1에 추가된 C++0x의 decltype에 대해서 아주 아주 짧게 이야기하려고 합니다.^^
decltype(foo()) value;는
int value;로 됩니다.
처음 말했듯이 decltype에 대해서는 이렇게 아주 짧게 이야기를 마치겠습니다. ㅎㅎ
만약 decltype에 대해서 좀 더 자세하게 알고 싶다면 VC++ 팀의 블로그에 있는 글을 추천합니다.
http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part-3.aspx
템플릿 형(type)이랑 템플릿 메타 프로그래밍 등에서 함수의 반환
형이 복잡하게 정의 되어 있는 경우 형을 단순하게 기술할 수 없습니다.
C++0x에서는 이런 문제를 풀기 위해 auto와 decktype 두 개를 제공합니다.
auto는 이미 앞에서 제가 설명했으니 기억나지 않은 분들은 다시봐 주세요^^
decltype은 auto 처럼 식의 형을 컴파일 할 때 결정할 수 있습니다.
int Hp;
decltype(Hp) NPCHp = 5;
decltype(Hp + NPCHp) TotalHp;
decltype(Hp) *pHp = &Hp;
decltype(Hp) NPCHp = 5;는
Hp가 int 형이므로 int NPCHp = 5라고 컴파일 할때 결정됩니다.
또 decltype(Hp + NPCHp) TotalHp;
는 int와 int의 덧셈이므로 int TotalHp;로 됩니다.
decltype(Hp) *pHp = &Hp;는 int* pHp = &Hp로 됩니다.
또한 함수의 반환형에도 사용할 수 있습니다.
int foo();
decltype(foo()) value;
decltype(foo()) value;는
int value;로 됩니다.
처음 말했듯이 decltype에 대해서는 이렇게 아주 짧게 이야기를 마치겠습니다. ㅎㅎ
만약 decltype에 대해서 좀 더 자세하게 알고 싶다면 VC++ 팀의 블로그에 있는 글을 추천합니다.
http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part-3.aspx
'C++0x' 카테고리의 다른 글
| nullptr (1) | 2010/01/28 |
|---|---|
| 대용량 파일 조작을 위한 C++0x의 변화 (0) | 2009/09/07 |
| [VC++] 14. decltype (0) | 2009/06/30 |
| [VC++] 13. Lambda - 네 번째 (3) | 2009/06/23 |
| [VC++] 12. Lambda - 세 번째 (0) | 2009/06/16 |
| [VC++] 11. Lambda - 두 번째 (0) | 2009/06/09 |
TAG C++,
C++0x,
decltype,
jacking,
vc++,
VC++10,
Visual C++,
Visual C++ 10,
visualstudio2010,
vsts2010,
비주얼스튜디오2010,
비쥬얼스튜디오2010,
최흥배,
흥배




댓글을 달아 주세요