diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 0a3422c..a8a2f29 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -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 @@ -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 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/