edit ZMainHead.H a bit
This commit is contained in:
@ -130,7 +130,7 @@
|
|||||||
typedef TString TypeCString;
|
typedef TString TypeCString;
|
||||||
typedef TString TypeString ;
|
typedef TString TypeString ;
|
||||||
|
|
||||||
2 번 줄 코드가 좋 낳아 보이지 않을까. 2008-11-05 13:42:00
|
2 번 줄 코드가 좀 낳아 보이지 않을까. 2008-11-05 13:42:00
|
||||||
|
|
||||||
■ template 함수나 클래스에서 functor 인수는 참조로 선언하지 않는다. 아래 참고,
|
■ template 함수나 클래스에서 functor 인수는 참조로 선언하지 않는다. 아래 참고,
|
||||||
|
|
||||||
@ -401,9 +401,8 @@
|
|||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
|
||||||
// 리눅스 Multi Thread Programming 에서
|
// 리눅스 Multi Thread Programming 에서 ZCObjList 라든가 여러
|
||||||
// CDoubleList 라든가 여러 자료구조에서 쓰는
|
// 자료구조에서 쓰는 동기화 뮤텍스를 위해 pthread.h 를 포함한다.
|
||||||
// 동기화 뮤텍스를 위해 pthread.h 를 포함한다.
|
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
@ -544,7 +543,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#if(0)
|
#if(0)
|
||||||
|
|
||||||
typedef unsigned wchar_t ZTypUWChar ;
|
typedef unsigned wchar_t ZTypUWCha ;
|
||||||
/* VC++ 2012 에서는 여기서 4076 번 경고가 발생한다.
|
/* VC++ 2012 에서는 여기서 4076 번 경고가 발생한다.
|
||||||
|
|
||||||
warning C4076: 'unsigned' : can not be used with type 'wchar_t'
|
warning C4076: 'unsigned' : can not be used with type 'wchar_t'
|
||||||
@ -554,55 +553,55 @@ namespace ZNsMain
|
|||||||
*/
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef unsigned int ZTypUInt ;
|
typedef unsigned int ZTypUInt ;
|
||||||
typedef unsigned short ZTypUShort ;
|
typedef unsigned short ZTypUShort ;
|
||||||
typedef unsigned long ZTypULong ;
|
typedef unsigned long ZTypULong ;
|
||||||
|
|
||||||
typedef unsigned char ZTypIntUChar ;
|
typedef unsigned char ZTypIntUChar ;
|
||||||
typedef unsigned int ZTypIntUInt ;
|
typedef unsigned int ZTypIntUInt ;
|
||||||
typedef unsigned short ZTypIntUShort ;
|
typedef unsigned short ZTypIntUShort ;
|
||||||
typedef unsigned long ZTypIntULong ;
|
typedef unsigned long ZTypIntULong ;
|
||||||
|
|
||||||
typedef unsigned char ZTypIntUC ;
|
typedef unsigned char ZTypIntUC ;
|
||||||
typedef unsigned int ZTypIntUI ;
|
typedef unsigned int ZTypIntUI ;
|
||||||
typedef unsigned short ZTypIntUS ;
|
typedef unsigned short ZTypIntUS ;
|
||||||
typedef unsigned long ZTypIntUL ;
|
typedef unsigned long ZTypIntUL ;
|
||||||
|
|
||||||
#if(defined(__CPU_BIT_CNT__) && __CPU_BIT_CNT__>=64)
|
#if(defined(__CPU_BIT_CNT__) && __CPU_BIT_CNT__>=64)
|
||||||
#ifdef _WIN
|
#ifdef _WIN
|
||||||
typedef __int64 ZTypLLength ; // 문자열의 길이를 나타내는 자료형.
|
typedef __int64 ZTypLLength ; // 문자열의 길이를 나타내는 자료형.
|
||||||
// 송수신 버퍼의 크기 자료형으로도 쓰인다.
|
// 송수신 버퍼의 크기 자료형으로도 쓰인다.
|
||||||
#else
|
#else
|
||||||
typedef long ZTypLLength ;
|
typedef long ZTypLLength ;
|
||||||
#endif
|
#endif
|
||||||
#else // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64
|
#else // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64
|
||||||
|
|
||||||
typedef long ZTypLLength ;
|
typedef long ZTypLLength ;
|
||||||
|
|
||||||
#endif // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64
|
#endif // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64
|
||||||
|
|
||||||
#ifdef _WIN
|
#ifdef _WIN
|
||||||
typedef __int64 ZTypLLengthFile ; // 파일의 크기를 나타내는 자료형.
|
typedef __int64 ZTypLLengthFile; // 파일의 크기를 나타내는 자료형.
|
||||||
#else
|
#else
|
||||||
typedef long ZTypLLengthFile ; // 파일의 크기를 나타내는 자료형.
|
typedef long ZTypLLengthFile; // 파일의 크기를 나타내는 자료형.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef ZTypLLengthFile ZTypLLengthF;
|
typedef ZTypLLengthFile ZTypLLengthF;
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN
|
#ifdef _WIN
|
||||||
typedef __int64 ZTypLongLong ;
|
typedef __int64 ZTypLongLong ;
|
||||||
typedef unsigned __int64 ZTypULongLong;
|
typedef unsigned __int64 ZTypULongLong;
|
||||||
|
|
||||||
typedef __int64 ZTypIntLLong ;
|
typedef __int64 ZTypIntLLong ;
|
||||||
typedef unsigned __int64 ZTypIntULLong;
|
typedef unsigned __int64 ZTypIntULLong;
|
||||||
#else
|
#else
|
||||||
typedef long long ZTypLongLong ;
|
typedef long long ZTypLongLong ;
|
||||||
typedef unsigned long long ZTypULongLong;
|
typedef unsigned long long ZTypULongLong;
|
||||||
|
|
||||||
typedef long long ZTypIntLLong ;
|
typedef long long ZTypIntLLong ;
|
||||||
typedef unsigned long long ZTypIntULLong;
|
typedef unsigned long long ZTypIntULLong;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
typedef ZTypLongLong ZTypLLong ;
|
typedef ZTypLongLong ZTypLLong ;
|
||||||
@ -757,13 +756,13 @@ namespace ZNsMain
|
|||||||
가이드라인을 제시하는 역할의 어떤 클래스나 데이타 타입이 올 수 있는데 이런 자료형이 이
|
가이드라인을 제시하는 역할의 어떤 클래스나 데이타 타입이 올 수 있는데 이런 자료형이 이
|
||||||
이름공간에 온다. 어떤 데이타타입을 주로 typedef 하는 클래스라면 접두어 ZtCType 를 붙인다.
|
이름공간에 온다. 어떤 데이타타입을 주로 typedef 하는 클래스라면 접두어 ZtCType 를 붙인다.
|
||||||
|
|
||||||
■ ZtCTypeCRTP_T<> 는 어떤 클래스 템플릿이 CRTP(CURIOUSLY RECURRING TEMPLATE PATTERN) 를 사용
|
■ ZtCTypeCRTP<> 는 어떤 클래스 템플릿이 CRTP(CURIOUSLY RECURRING TEMPLATE PATTERN) 를 사용
|
||||||
하는지 아닌지를 알려준다. ZtCTypeCRTP_T<> 을 설계하지 않는다면, 같은 기능을 하기 위해, 클
|
하는지 아닌지를 알려준다. ZtCTypeCRTP<> 을 설계하지 않는다면, 같은 기능을 하기 위해, 클
|
||||||
래스를 2 개(CRTP 를 사용하는 클래스와, 그렇지 않은 클래스)를 만들어야 했을 것이다.
|
래스를 2 개(CRTP 를 사용하는 클래스와, 그렇지 않은 클래스)를 만들어야 했을 것이다.
|
||||||
|
|
||||||
-- 2010-03-12 20:00:00
|
-- 2010-03-12 20:00:00
|
||||||
|
|
||||||
■ 또한 이 이름공간에 있는 클래스는 TypeData 라는 자료형을 갖는 것으로 하자.
|
■ 또한 이 이름 공간에 있는 클래스는 TypeData 라는 자료형을 갖는 것으로 하자.
|
||||||
|
|
||||||
-- 2011-10-18 21:51:00
|
-- 2011-10-18 21:51:00
|
||||||
|
|
||||||
@ -772,17 +771,17 @@ namespace ZNsMain
|
|||||||
|
|
||||||
template< typename TTypeChild=ZCEmpty, bool TTypebUseCRTP =false
|
template< typename TTypeChild=ZCEmpty, bool TTypebUseCRTP =false
|
||||||
>
|
>
|
||||||
class ZtCTypeCRTP_T //////////////////////////////////////////////
|
class ZtCTypeCRTP ////////////////////////////////////////////////
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef TTypeChild TypeData;
|
typedef TTypeChild TypeData;
|
||||||
public:
|
public:
|
||||||
enum{EUseCRTP=(int)TTypebUseCRTP};
|
enum{EUseCRTP=(ZTypIntE)TTypebUseCRTP};
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TTypeChild=ZCEmpty, bool TTypebUseCRTP =false
|
template< typename TTypeChild=ZCEmpty, bool TTypebUseCRTP =false
|
||||||
>
|
>
|
||||||
class ZtCTypeCRTP_T ////////////////////////////////////////////*/
|
class ZtCTypeCRTP //////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
template< typename TTypeChild =ZCEmpty
|
template< typename TTypeChild =ZCEmpty
|
||||||
@ -795,18 +794,18 @@ namespace ZNsMain
|
|||||||
typedef TTypeChild TypeData;
|
typedef TTypeChild TypeData;
|
||||||
typedef TTypeBase TypeBase;
|
typedef TTypeBase TypeBase;
|
||||||
public:
|
public:
|
||||||
enum{EUseCRTP=(int)TTypebUseCRTP};
|
enum{EUseCRTP=(ZTypIntE)TTypebUseCRTP};
|
||||||
public:
|
public:
|
||||||
}; /*
|
}; /*
|
||||||
template< typename TTypeChild =ZCEmpty
|
template< typename TTypeChild =ZCEmpty
|
||||||
, typename TTypeBase =ZCEmpty
|
, typename TTypeBase =ZCEmpty
|
||||||
, bool TTypebUseCRTP=false
|
, bool TTypebUseCRTP=false
|
||||||
>
|
>
|
||||||
class ZtCTypeCRTP_T2 ///////////////////*/
|
class ZtCTypeCRTP2 /////////////////////*/
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
■ class ZtCTypeCRTP_T2<> 이 왜 필요한지, 그리고 사용례는 CWorkPool.H 의
|
■ class ZtCTypeCRTP2<> 이 왜 필요한지, 그리고 사용례는 CWorkPool.H 의
|
||||||
'주석-CCtrlAllocWork::CRTP2'를 참고한다.
|
'주석-CCtrlAllocWork::CRTP2'를 참고한다.
|
||||||
|
|
||||||
-- 2012-09-20 09:46:00
|
-- 2012-09-20 09:46:00
|
||||||
@ -816,7 +815,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
■ class ZtCTypeCRTP_T<> 이 단점은 상속하지 않은 class 형은 알 수 없는데, 이것을 알아내기 위해
|
■ class ZtCTypeCRTP<> 이 단점은 상속하지 않은 class 형은 알 수 없는데, 이것을 알아내기 위해
|
||||||
|
|
||||||
class ZtCTypeNowCRTP<>
|
class ZtCTypeNowCRTP<>
|
||||||
|
|
||||||
@ -1200,7 +1199,10 @@ namespace ZNsMain
|
|||||||
|
|
||||||
|
|
||||||
template< typename Type1 , typename Type2=void,
|
template< typename Type1 , typename Type2=void,
|
||||||
typename Type3=void, typename Type4=void, typename Type5=void, typename Type6=void, typename Type7=void, typename Type8=void, typename Type9=void, typename Type10=void, typename Type11=void
|
typename Type3=void, typename Type4=void,
|
||||||
|
typename Type5=void, typename Type6=void,
|
||||||
|
typename Type7=void, typename Type8=void,
|
||||||
|
typename Type9=void, typename Type10=void, typename Type11=void
|
||||||
>
|
>
|
||||||
struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
{
|
{
|
||||||
@ -1210,7 +1212,10 @@ namespace ZNsMain
|
|||||||
ZtStTuple(Type1 _T1):_1(_T1){}
|
ZtStTuple(Type1 _T1):_1(_T1){}
|
||||||
};/*
|
};/*
|
||||||
template< typename Type1 , typename Type2=void,
|
template< typename Type1 , typename Type2=void,
|
||||||
typename Type3=void, typename Type4=void, typename Type5=void, typename Type6=void, typename Type7=void, typename Type8=void, typename Type9=void, typename Type10=void, typename Type11
|
typename Type3=void, typename Type4=void,
|
||||||
|
typename Type5=void, typename Type6=void,
|
||||||
|
typename Type7=void, typename Type8=void,
|
||||||
|
typename Type9=void, typename Type10=void, typename Type11=void
|
||||||
>
|
>
|
||||||
struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user