|
저도 빌더만 한 7년이상 써온지라 ㅎㅎ 우수함은 누구보다도 잘압니다 ㅠㅠ
테스트 코드를 잘못 올렸네요 확인해보니.. 게시판에다 바로 쓰다보니 빼먹은게있는데;;
template< typename TN=int >
struct MyRect
{
union
{
struct
{
TN Left;
TN Top;
TN Right;
TN Bottom;
};
RECT Rect;
};
MyRect( void ){ Left = Top = Right = Bottom = 0; } // 요기를 빼먹었었네요ㅠㅠ 죄송합니다;
MyRect( TN l, TN t, TN r, TN b )
{
Left = l;
Top = t;
Right = r;
Bottom = b;
}
};
다음과 같이 작성했고 방금 에러 확인까지 했습니다..
MyRect 의 오버로드 에 관한 컴파일러 인식 문제인듯 싶습니다만...
MyRect<int> testRect( 0, 0, 0, 0 );
다음과 같이 사용했고...
MyRect( void ){ Left = Top = Right = Bottom = 0; } 가 없다면 잘 인식합니다.
그리고 제가 사용하는 개발 툴 버전은 10.0.2558.35231 Update 2 버전 입니다.
혹시 더 높은 버전이 있으시면 좀 알려주시면 좋겠구요 :)
답변 주셔서 감사합니다 ㅠㅠ
김태선 님이 쓰신 글 :
: 빌더6에서 테스트 해봤는데 잘 되네요.
: TurboC++ Explorer 버전에서 테스트 해봤는데 잘 되네요.
: 볼랜드 C++ 컴파일러는 우수하기로 정평이 나 있습니다.
:
: 혹시 잘 안된다면
: TurboC++ Explorer버전 설치후 RAD Studio 2007 이나 2009를 설치 한 것은 아닌가요?
: 설치 했다면 충돌 문제로 안될 가능성이 있습니다.
: 제가 테스트한
: TurboC++ Explorer는 10.0.2288.42451 Update 2 입니다.
:
:
: 전재득 님이 쓰신 글 :
: : template< typename TN=int >
: : struct MyRect
: : {
: : union
: : {
: : struct
: : {
: : TN Left;
: : TN Top;
: : TN Right;
: : TN Bottom;
: : };
: :
: : RECT Rect;
: : };
: :
: : MyRect( TN l, TN t, TN r, TN b )
: : {
: : Left = l;
: : Top = t;
: : Right = r;
: : Bottom = b;
: : }
: : };
: :
: : 이런 template struct 를 만들었 습니다.
: :
: : MyRect<int> rect( 0, 0, 0, 0);
: :
: : 이렇게 사용했는데;; 뭐가 문제인지;; vs 에서는 잘작동하고 c++ 표준에 어긋난거 같진 않은데;;
: :
: : 컴파일러가 바보라서 그런걸까여???
: :
: : Turbo C++ 무료 버전을 사용 했습니다. 버그 fix 패치는 대부분 했구요...
: :
: : 이런 황당한 문제 겪어 보신분 ㅠㅠ 뭐가 문제인건지;;;
: :
: : union 을 안쓰고 그냥 밖으로 꺼내면 잘작동하긴 하는데;;;
|