전에 쓰던 888이 너무 오래되서 어느걸로 할까 한참 고민하다 결국은 E700

예상보다 두껍다-0-

원서도 있긴 하지만 역시 곽용재님의 미려한 번역본이 최고-_-)=b

//////////////////////////////////////////////////////////////////
//
// MSB : most significant bit/byte
//
// bit : 최상위 비트
// byte : 최상위 바이트
//
// MSB<0>::bit == 0
// MSB<0>::byte == 0
// MSB<1>::bit == 1
// MSB<1>::byte == 1
// MSB<0x100>::bit == 9
// MSB<0x100>::byte == 2
// MSB<0x101>::bit == 9
// MSB<0x101>::byte == 2
// MSB<0x10000000>::bit == 32
// MSB<0x10000000>::byte == 4
// MSB<0x10000001>::bit == 32
// MSB<0x10000001>::byte == 4
//
//////////////////////////////////////////////////////////////////

template<DWORD N>
struct MSB
{
static unsigned const bit = MSB<(N>>1)>::bit + 1;
static unsigned const byte = MSB<(N>>8)>::byte + 1;
};

template<>
struct MSB<0>
{
static unsigned const bit = 0;
static unsigned const byte = 0;
};


//////////////////////////////////////////////////////////////////
//
// LSB : least significant bit/byte
//
// bit : 최하위 비트
// byte : 최하위 바이트
//
// LSB<0>::bit == 0
// LSB<0>::byte == 0
// LSB<1>::bit == 1
// LSB<1>::byte == 1
// LSB<0x100>::bit == 9
// LSB<0x100>::byte == 2
// LSB<0x101>::bit == 1
// LSB<0x101>::byte == 1
// LSB<0x10000000>::bit == 32
// LSB<0x10000000>::byte == 4
// LSB<0x10000001>::bit == 1
// LSB<0x10000001>::byte == 1
//
//////////////////////////////////////////////////////////////////

template<DWORD N>
struct LSB_temp
{
static unsigned const bit = LSB_temp<(N<<1)>::bit + 1;
static unsigned const byte = LSB_temp<(N<<8)>::byte + 1;
};

template<>
struct LSB_temp<0>
{
static unsigned const bit = 0;
static unsigned const byte = 0;
};

template<DWORD N>
struct LSB
{
static unsigned const bit = 33-LSB_temp<N>::bit;
static unsigned const byte = 5-LSB_temp<N>::byte;
};

template<>
struct LSB<0>
{
static unsigned const bit = 0;
static unsigned const byte = 0;
};

'자료 > 내자료' 카테고리의 다른 글

SPE V1 - 길찾기용 지형구조  (9) 2006.12.10
게임을 위한 GUI모듈  (4) 2006.07.31
is_template  (0) 2006.05.10
분절 모델의 접합부위 Normal값 수정  (0) 2006.02.23
enum string  (0) 2005.07.08

랜선이 모자른 관계로-_-a

'지르기 > 장난감' 카테고리의 다른 글

The New Curved LCD watch by Starck  (0) 2006.10.12
SPH-S4300 - 스윙타입 뮤직스틱폰  (0) 2006.06.14
[XBOX360] 플레이 앤 충전 키트  (0) 2006.05.10
xbox360  (0) 2006.05.07
LG XNOTE M1-J222K  (0) 2006.02.17

template<typename EnumType, EnumType EnumMax, template<typename, EnumType> class ContainerType >
class SEnum
{

...

};

이런 형태의 템플릿을 사용하고 있는데
자동화 코드에서 컴파일 타임에 이 템플릿으로 정의된 type인가..를 검사를 해야 했었다.

그래서 심플하게 인터페이스 클래스를 만들어서 상속받고 그 인터페이스 클래스를 Driven한 클래스인가...를 검사하는 방법으로 갔었다.

그르나-_-

사태는 그리 쉽게 흘러갈리 없고
인터페이스 클래스를 상속 받으면 안되는 상황이 발생하였다!! 두둥!!!

결국은 한시간여의 삽질 끝에 이런 코드를 만들어 냈다.

template<typename T>
struct SEnumTraits
{
enum { value = false };
};

template<typename EnumType, EnumType EnumMax, template<typename, EnumType> class ContainerType>
struct SEnumTraits< SEnum<EnumType, EnumMax, ContainerType> >
{
enum { value = true };
};

#define is_SEnum(T) ( SEnumTraits<T>::value )

이로써 상속을 안 받고 특정 템플릿을 사용한 type인지를 알 수 있게 되었다.
템플릿 인자가 제멋대로라 generic한 is_template는 실패-_-;

어쨋건 관련 코드들을 싹 새로 정리해야 하는 위기에 처했다....;;
이번주는 계속 메타때매 시간 다 쓰네.. 헹~

'자료 > 내자료' 카테고리의 다른 글

게임을 위한 GUI모듈  (4) 2006.07.31
MSB/LSB template  (0) 2006.05.18
분절 모델의 접합부위 Normal값 수정  (0) 2006.02.23
enum string  (0) 2005.07.08
텍스쳐 포맷 변경해서 저장하기  (0) 2005.05.16

무선 패드를 기본으로 넣을거면 충전키트도 기본으로 들어가야지!! 버럭~

'지르기 > 장난감' 카테고리의 다른 글

SPH-S4300 - 스윙타입 뮤직스틱폰  (0) 2006.06.14
[XBOX360]무선네트워크어댑터  (0) 2006.05.13
xbox360  (0) 2006.05.07
LG XNOTE M1-J222K  (0) 2006.02.17
휴클래스 다이또 안마의자(CHD-832)  (0) 2006.02.16

사실 N3말고는 다른건 살 계획이 없었지만 레이옷이 워낙 난리라 궁금해졌음-_-;

'지르기 > 게임' 카테고리의 다른 글

오오카미 영문판  (2) 2006.10.27
[PSP] 기타루맨  (0) 2006.06.28
N3  (0) 2006.05.06
[PSP] EXIT  (0) 2006.01.20
[PSP] DJMAX  (0) 2006.01.20

아아 요새 계속 먼가 자동화코드들을 만들다 보니
메타 프로그래밍을 대충-_-공부해놨던것들이 계속 걸림돌이 된다.

Modern C++ Design은 사실 메타를 공부하기는 너무 어려운 책이다.
보고 보고 또 봐서 대충의 사용은 하지만 사실 Loki에 있는 것들중에 제대로 활용하는것은 거의 없었다.

Loki에서는 TypeTraits들만 간간히 사용하고 있었는데
사실 처음에 boost에 있는 TypeTraits를 쓸까 하다가 boost의 코드는 공부용으로는 좋지 않아서
Loki를 사용하고 있었는데 결국은 boost로 전환해야겠다.
Loki는 아무래도 빠진 기능이 꽤 많아서 가끔 필요한건 추가해서 썼었는데-_-
이젠 공부용으로만 쓰고 걍 boost의 TypeTraits를 써야겠다..

어쨋건 힘에 부쳐서 요즘 들어 C++ Template Metaprogrammings라는 책을 보고 있는데
내용은 꽤 쉽고 잘 설명되어 있어서 메타프로그래밍을 공부하기에는 꽤 좋을것 같다모던은 너무 어려워 ~(-_-)~

이럴때 승명군이 있으면 쓱싹쓱싹 쉽게 해결해 줄텐데 ㅎㅎ

'게임개발 > 생각' 카테고리의 다른 글

사실은  (4) 2006.10.21
개인적인 욕심  (1) 2006.10.10
공개 UI모듈  (0) 2006.01.03
자꾸 IK가 하고 싶어진다-_-;  (0) 2005.12.12
나쁜 아이디어를 위한 좋은 방법  (0) 2005.12.08
쿠폰함에 난데없이 12%할인쿠폰이 있어서 싸게 샀다...;;

'지르기 > 장난감' 카테고리의 다른 글

[XBOX360]무선네트워크어댑터  (0) 2006.05.13
[XBOX360] 플레이 앤 충전 키트  (0) 2006.05.10
LG XNOTE M1-J222K  (0) 2006.02.17
휴클래스 다이또 안마의자(CHD-832)  (0) 2006.02.16
2006년 파나소닉 안마의자 EP1270  (1) 2006.02.14

+ Recent posts