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