Compare commits

179 Commits

Author SHA1 Message Date
/* User with id == 0 is a fake user from git author */ sauron
72cf94128d commit 2025-10-21 21:45 edit a bit ZCppMain/ZMainHead.H 2025-10-21 21:45:28 +09:00
/* User with id == 0 is a fake user from git author */ sauron
437b8a2e16 commit 2025-10-21 21:27 edit a bit ZCppMain/ZMainHead.H 2025-10-21 21:28:18 +09:00
/* User with id == 0 is a fake user from git author */ sauron
dbc483330b commit 2025-10-21 21:06 add ZtCObjtChain<TDataNow, ZCEmpty>::TypeChainLast : ZCppMain/ZMainHead.H 2025-10-21 21:06:41 +09:00
/* User with id == 0 is a fake user from git author */ sauron
835f80f179 commit 2025-10-21 19:48 add template<typename TTypeChainNext> typename> typename TTypeChainNext::TypeData& GetData() GetData() : ZCppMain/ZMainHead.H 2025-10-21 19:48:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5cd24d6e94 commit 2025-10-20 20:35 edit a bit ZCppMain/ZtCMainChars.H 2025-10-20 20:35:11 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3f4e40147b commit 2025-10-20 15:08 edit a bit ZCppMain/ZMainHead.H 2025-10-20 15:08:59 +09:00
/* User with id == 0 is a fake user from git author */ sauron
f45137e8f3 commit 2025-10-20 13:03 ZtCTypeSelfLink => ZtCTypeDataRiing, add ZtCTypeDataRingS : ZCppMain/ZMainHead.H 2025-10-20 13:03:55 +09:00
/* User with id == 0 is a fake user from git author */ sauron
882e4f6278 commit 2025-10-20 11:01 edit a bit ZCppMain/ZMainHead.H 2025-10-20 11:01:07 +09:00
/* User with id == 0 is a fake user from git author */ sauron
c30a14c0c9 commit 2025-10-20 01:01 edit a bit ZCppMain/ZMainHead.H 2025-10-20 01:01:36 +09:00
/* User with id == 0 is a fake user from git author */ sauron
cd4ab32709 commit 2025-10-20 00:32 edit a bit ZCppMain/ZMainHead.H 2025-10-20 00:33:12 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1ffbb95e80 commit 2025-10-20 00:08 add ZtCObjtChain::operator()() : ZCppMain/ZMainHead.H 2025-10-20 00:08:54 +09:00
/* User with id == 0 is a fake user from git author */ sauron
56960ed38f commit 2025-10-19 19:47 edit a bit ZCppMain/ZMainHead.H 2025-10-19 19:47:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5e34c2f5cc commit 2025-10-19 19:44 edit a bit ZCppMain/ZMainHead.H 2025-10-19 19:44:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
f451a6a1e1 commit 2025-10-19 19:13 edit a bit ZCppMain/ZMainHead.H 2025-10-19 19:13:44 +09:00
/* User with id == 0 is a fake user from git author */ sauron
7ff1933fb0 commit 2025-10-19 19:03 add ZCtDataRing::size_all() : ZCppMain/ZMainHead.H 2025-10-19 19:03:28 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d360408365 commit 2025-10-19 16:39 edit a bit in ZCppMain/ZMainHead.H 2025-10-19 16:39:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2f8fae30a4 commit 2025-10-19 16:30 edit a bit in ZCppMain/ZMainHead.H 2025-10-19 16:30:38 +09:00
/* User with id == 0 is a fake user from git author */ sauron
6d4556236e commit 2025-10-19 16:28 add ZCtDataRing::IterHead() & IterTail() etc : ZCppMain/ZMainHead.H 2025-10-19 16:29:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d4614dcb09 commit 2025-10-19 13:13 edit a bit in ZCppMain/ZMainHead.H 2025-10-19 13:14:03 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ad8e294902 commit 2025-10-19 13:00 add ZCtDataRing in ZCppMain/ZMainHead.H 2025-10-19 13:00:37 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3e97046031 commit 2025-10-18 21:36 edit a bit ZCppMain/ZMainHead.H 2025-10-18 21:36:36 +09:00
/* User with id == 0 is a fake user from git author */ sauron
f8b9887734 commit 2025-10-18 21:31 edit a bit ZCppMain/ZMainHead.H 2025-10-18 21:32:05 +09:00
/* User with id == 0 is a fake user from git author */ sauron
de6056ab27 commit 2025-10-18 19:06 edit a bit ZCppMain/ZMainHead.H 2025-10-18 19:06:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8266f0a6a3 commit 2025-10-18 19:03 edit a bit ZCppMain/ZMainHead.H 2025-10-18 19:03:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
af8fec15eb commit 2025-10-18 17:32 edit a bit ZCppMain/ZMainHead.H 2025-10-18 17:32:20 +09:00
/* User with id == 0 is a fake user from git author */ sauron
756b48ae36 commit 2025-10-18 17:29 edit a bit ZCppMainTest/c++_test_006.cpp 2025-10-18 17:29:53 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b5f71d95d2 commit 2025-10-18 16:33 add ZtCMiniValChain : ZCppMain/ZMainHead.H 2025-10-18 16:33:51 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ea178aa11a commit 2025-10-18 14:57 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 14:57:42 +09:00
/* User with id == 0 is a fake user from git author */ sauron
64630b4abd commit 2025-10-18 12:03 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 12:03:14 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8eeafdd0d8 commit 2025-10-18 12:02 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 12:02:10 +09:00
/* User with id == 0 is a fake user from git author */ sauron
9277c95336 commit 2025-10-18 11:58 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 11:59:02 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ec687cc4e9 commit 2025-10-18 11:40 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 11:40:32 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d21d5b0263 commit 2025-10-18 11:37 edit a bit ZCppMain/ZtCMainChars.H 2025-10-18 11:37:18 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e1b7aeed21 commit 2025-10-18 10:56 delete class template in ZNsTmplChain : ZCppMain/ZMainHead.H 2025-10-18 10:56:46 +09:00
/* User with id == 0 is a fake user from git author */ sauron
0bae715de7 commit 2025-10-18 10:29 edit a bit ZCppMain/ZMainHead.H 2025-10-18 10:29:28 +09:00
/* User with id == 0 is a fake user from git author */ sauron
849cab2dbb commit 2025-10-18 10:27 edit a bit ZCppMain/ZMainHead.H 2025-10-18 10:27:27 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4113a0a6f1 commit 2025-10-18 10:13 ZtCObjtChainEx => ZtCMiniValChain : ZCppMain/ZMainHead.H 2025-10-18 10:13:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e57cce5a28 commit 2025-10-18 02:12 edit a bit ZCppMain/ZMainHead.H 2025-10-18 02:12:21 +09:00
/* User with id == 0 is a fake user from git author */ sauron
342dc34096 commit 2025-10-18 01:55 ZtCObjtChain after ZtCObjtChain => ZtCObjtChainEx ZCppMain/ZMainHead.H 2025-10-18 01:55:54 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1d3ee05571 commit 2025-10-18 00:19 add ZCppMain/ZMainHead.H 2025-10-18 00:19:13 +09:00
/* User with id == 0 is a fake user from git author */ sauron
29aa6225b4 commit 2025-10-18 00:09 add ZCppMainTest/c++_test_006.cpp 2025-10-18 00:09:43 +09:00
/* User with id == 0 is a fake user from git author */ sauron
31a6d46726 commit 2025-10-18 00:09 add ZtCObjtChain in ZCppMain/ZMainHead.H 2025-10-18 00:09:09 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bea5561dc4 commit 2025-10-17 21:28 edit a bit ZCppMain/ZMainHead.H 2025-10-17 21:28:15 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b92b3e2107 commit 2025-10-17 21:23 ZftIterTmplChainTail() => ZftIterTypeChainTail() : ZCppMain/ZMainHead.H 2025-10-17 21:23:24 +09:00
/* User with id == 0 is a fake user from git author */ sauron
c52ddbed83 commit 2025-10-17 21:06 edit a bit ZCppMain/ZMainHead.H 2025-10-17 21:06:27 +09:00
/* User with id == 0 is a fake user from git author */ sauron
58a38e75ab commit 2025-10-17 21:03 edit a bit ZCppMain/ZMainHead.H 2025-10-17 21:03:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e7692ddfd1 commit 2025-10-17 20:54 add class ZtCCheckRef<TType&> : ZCppMain/ZMainHead.H 2025-10-17 20:55:05 +09:00
/* User with id == 0 is a fake user from git author */ sauron
0e4ae40622 commit 2025-10-17 19:13 add IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) & IterTail() in ZtCTypeChain : ZCppMain/ZMainHead.H 2025-10-17 19:13:38 +09:00
/* User with id == 0 is a fake user from git author */ sauron
9c746559f4 commit 2025-10-17 16:45 add ZtCTypeChain::Size() : ZCppMain/ZMainHead.H 2025-10-17 16:45:20 +09:00
/* User with id == 0 is a fake user from git author */ sauron
536fec9db0 commit 2025-10-17 13:01 edit a bit ZCppMain/ZMainHead.H 2025-10-17 13:01:20 +09:00
/* User with id == 0 is a fake user from git author */ sauron
16bfabc6fe commit 2025-10-17 12:28 edit a bit ZCppMain/ZMainHead.H 2025-10-17 12:28:17 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5e550363ee commit 2025-10-17 12:26 add ZtCTypeChain in ZCppMain/ZMainHead.H 2025-10-17 12:26:22 +09:00
/* User with id == 0 is a fake user from git author */ sauron
fcb513d4ac commit 2025-10-17 01:04 edit a bit ZCppMain/ZMainHead.H 2025-10-17 01:04:35 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b4871d1b07 commit 2025-10-16 23:36 edit a bit ZCppMain/ZMainHead.H 2025-10-16 23:36:52 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5d337e3356 commit 2025-10-16 23:21 edit a bit ZCppMain/ZMainHead.H 2025-10-16 23:21:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
40debb62a6 commit 2025-10-16 23:16 edit a bit ZCppMain/ZMainHead.H 2025-10-16 23:16:42 +09:00
/* User with id == 0 is a fake user from git author */ sauron
70b7d85fac commit 2025-10-16 15:03 edit a bit ZCppMain/ZtCLinkList.H 2025-10-16 15:03:28 +09:00
/* User with id == 0 is a fake user from git author */ sauron
c96244dd29 commit 2025-10-16 14:38 edit a bit ZCppMain/ZtCLinkList.H 2025-10-16 14:38:59 +09:00
/* User with id == 0 is a fake user from git author */ sauron
6fe3bbff18 commit 2025-10-16 14:31 edit a bit ZCppMain/ZMainHead.H 2025-10-16 14:31:22 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a0438aebc6 commit 2025-10-16 14:04 edit a bit ZCppMain/ZMainHead.H 2025-10-16 14:05:05 +09:00
/* User with id == 0 is a fake user from git author */ sauron
eb35ccb059 commit 2025-10-16 10:30 edit a bit ZCppMainTest/ZtCBaseList_000.cpp 2025-10-16 10:30:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
84299e59a5 commit 2025-10-16 10:16 add skipping contdition code in list, SendRangeIn() => MoveRangeIn() : ZCppMain/ZtCLinkList.H etc 2025-10-16 10:17:15 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8cc267707f commit 2025-10-16 02:05 edit a bit ZCppMain/ZtCLinkList.H 2025-10-16 02:06:07 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4838bb74ef commit 2025-10-16 01:58 add ZtCLinkList::MoveLinkIn() & MoveRangeIn() : ZCppMain/ZtCLinkList.H 2025-10-16 01:58:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
023e1d8a0a commit 2025-10-16 01:04 add ZtCBaseList::MoveLinkIn() & MoveRangeIn() ZCppMain/ZMainHead.H 2025-10-16 01:04:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1e88508936 commit 2025-10-15 18:54 edit a bit ZCppMain/ZMainHead.H 2025-10-15 18:54:28 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bf3aa88ec1 commit 2025-10-15 18:44 edit a bit ZCppMainTest/ZtCBaseList_000.cpp 2025-10-15 18:45:06 +09:00
/* User with id == 0 is a fake user from git author */ sauron
908303d235 commit 2025-10-15 16:26 edit a bit ZCppMain/ZMainHead.H 2025-10-15 16:26:52 +09:00
/* User with id == 0 is a fake user from git author */ sauron
82a2c15364 commit 2025-10-15 16:25 edit a bit ZCppMain/ZMainHead.H 2025-10-15 16:25:32 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2ce107ed19 commit 2025-10-15 16:19 edit a bit ZCppMain/ZMainHead.H 2025-10-15 16:19:41 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1f05458724 commit 2025-10-15 16:08 edit a bit ZCppMain/ZMainHead.H 2025-10-15 16:08:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d85191b2d0 commit 2025-10-15 15:49 edit a bit ZCppMain/ZtCArray.H 2025-10-15 15:49:47 +09:00
/* User with id == 0 is a fake user from git author */ sauron
11acb59e39 commit 2025-10-15 15:46 edit a bit ZCppMain/ZtCSimList.H 2025-10-15 15:46:46 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3c12d055a2 commit 2025-10-15 15:43 delete GetDataInIter() in ZtCBaseList ZCppMain/ZMainHead.H 2025-10-15 15:43:10 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3e8cbd319e commit 2025-10-15 15:18 edit a bit ZCppMain/ZtCLinkList.H 2025-10-15 15:18:53 +09:00
/* User with id == 0 is a fake user from git author */ sauron
721d26ca5e commit 2025-10-15 14:53 edit a bit ZCppMain/ZtCLinkList.H 2025-10-15 14:53:07 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2b4596b065 commit 2025-10-15 14:13 TypeDataMaIN => TypeDataCore : ZCppMain/ZtCLinkList.H 2025-10-15 14:13:41 +09:00
/* User with id == 0 is a fake user from git author */ sauron
0fb0270a53 commit 2025-10-15 13:18 edit a bit ZCppMain/ZtCLinkList.H 2025-10-15 13:18:35 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4147ea51d6 commit 2025-10-15 13:06 edit a bit ZCppMain/ZtCLinkList.H 2025-10-15 13:06:29 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a1b89271b7 commit 2025-10-15 12:54 add iterator and func : ZCppMain/ZtCLinkList.H 2025-10-15 12:54:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4c6cde5d59 commit 2025-10-15 10:52 edit a bit ZCppMain/ZMainHead.H 2025-10-15 10:52:50 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2f364e66a3 commit 2025-10-15 10:10 ZCppMain/ZMainHead.H 2025-10-15 10:00:43 +09:00
/* User with id == 0 is a fake user from git author */ sauron
600ac6ef1e commit 2025-10-15 09:49 edit a bit ZCppMain/ZtCSimList.H 2025-10-15 09:50:00 +09:00
/* User with id == 0 is a fake user from git author */ sauron
aa59e460c5 commit 2025-10-15 09:46 edit a bit ZCppMain/ZMainHead.H 2025-10-15 09:46:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4a0a74936b commit 2025-10-15 09:43 edit a bit ZCppMain/ZMainHead.H 2025-10-15 09:43:57 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d47a651fd4 commit 2025-10-15 07:55 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:55:15 +09:00
/* User with id == 0 is a fake user from git author */ sauron
40157d7df2 commit 2025-10-15 07:50 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:51:04 +09:00
/* User with id == 0 is a fake user from git author */ sauron
dabd772aec commit 2025-10-15 07:46 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:46:31 +09:00
/* User with id == 0 is a fake user from git author */ sauron
92a8cb501d commit 2025-10-15 07:32 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:32:27 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e9944b6e0c commit 2025-10-15 07:18 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:18:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5762ec1cdf commit 2025-10-15 07:17 edit a bit ZCppMain/ZMainHead.H 2025-10-15 07:17:41 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5c9c870654 commit 2025-10-15 06:56 edit a bit ZCppMain/ZtCArray.H 2025-10-15 06:56:26 +09:00
/* User with id == 0 is a fake user from git author */ sauron
6a873ea2c9 commit 2025-10-15 06:46 edit a bit ZCppMain/ZMainHead.H 2025-10-15 06:47:03 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ef441cca37 commit 2025-10-15 06:15 edit a bit ZCppMain/ZMainHead.H 2025-10-15 06:16:15 +09:00
/* User with id == 0 is a fake user from git author */ sauron
03556b203c commit 2025-10-14 21:33 edit a bit ZCppMain/ZtCObjList.H 2025-10-14 21:33:37 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2aab937785 commit 2025-10-14 21:19 _FOR_ITER_EASY_START_R0 => _FOR_ITER_EASY_START0_R : ZCppMain/ZMainHead.H 2025-10-14 21:19:54 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3e37580b98 commit 2025-10-14 21:11 add _FOR_ITER_EASY_START_R0/_FOR_ITER_EASY_CLOSE_R0 : ZCppMain/ZMainHead.H 2025-10-14 21:11:14 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b8d5ddb47f commit 2025-10-14 20:48 __for_i => __for_it : ZCppMain/ZMainHead.H 2025-10-14 20:48:59 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a0d9d31a21 commit 2025-10-14 20:42 edit a bit ZCppMain/ZtCStringEx.H 2025-10-14 20:42:13 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1774cfda3a commit 2025-10-14 20:23 add ZCppMainTest/ZtCLink_001.cpp 2025-10-14 20:23:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b325c152fd commit 2025-10-14 20:16 typedef const IterEasyID IterEasyIDc => typedef const IterEasy* IterEasyIDc : ZCppMain/ZMainHead.H 2025-10-14 20:16:14 +09:00
/* User with id == 0 is a fake user from git author */ sauron
696b5744b1 commit 2025-10-14 17:57 edit a bit ZCppMain/ZtCArray.H etc 2025-10-14 17:57:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
7cca0d4d92 commit 2025-10-14 17:36 edit a bit ZCppMain/ZtCArray.H 2025-10-14 17:36:52 +09:00
/* User with id == 0 is a fake user from git author */ sauron
391adbaf11 commit 2025-10-14 17:35 edit a bit ZCppMain/ZtCArray.H 2025-10-14 17:35:46 +09:00
/* User with id == 0 is a fake user from git author */ sauron
69fb7a8c5c commit 2025-10-14 17:33 edit a bit ZCppMain/ZtCArray.H 2025-10-14 17:33:44 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d66bdb4cea commit 2025-10-14 17:32 edit a bit ZCppMain/ZtCArray.H 2025-10-14 17:33:03 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a578e3b244 commit 2025-10-14 17:26 TypeDataC& ItD(IterEasyIDc APPI_IterEasyID) => TypeDataC& ItD(IterEasyIDc& APPI_IterEasyID ) in ZCppMain/ZMainHead.H etc 2025-10-14 17:26:48 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2e0356fe09 commit 2025-10-14 16:56 edit a bit ZCppMain/ZtCArray.H 2025-10-14 16:57:03 +09:00
/* User with id == 0 is a fake user from git author */ sauron
342446fdce commit 2025-10-14 16:38 add _FOR_ITER_EASY_START0 와 _FOR_ITER_EASY_CLOSE0 in ZCppMain/ZMainHead.H 2025-10-14 16:38:21 +09:00
/* User with id == 0 is a fake user from git author */ sauron
15d8ee63ad commit 2025-10-14 14:53 edit a bit ZCppMain/ZMainHead.H 2025-10-14 14:53:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
d73d9e4227 commit 2025-10-14 14:52 edit a bit ZCppMain/ZMainHead.H 2025-10-14 14:52:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3b987e2a6e commit 2025-10-14 10:43 edit a bit ZCppMain/ZMainHead.H 2025-10-14 10:43:44 +09:00
/* User with id == 0 is a fake user from git author */ sauron
131e638f8b commit 2025-10-14 10:39 edit a bit ZCppMain/ZMainHead.H 2025-10-14 10:39:29 +09:00
/* User with id == 0 is a fake user from git author */ sauron
659b0a19cb commit 2025-10-14 10:19 edit a bit ZCppMain/ZtCArray 2025-10-14 10:19:58 +09:00
/* User with id == 0 is a fake user from git author */ sauron
c8523687fc commit 2025-10-14 09:39 add end() : ZCppMain/ZtCArray 2025-10-14 09:39:46 +09:00
/* User with id == 0 is a fake user from git author */ sauron
65a115ff6f commit 2025-10-14 09:11 ZCNodePointC => ZCNodePointN : ZCppMain/ZMainHead.H etc 2025-10-14 09:12:02 +09:00
/* User with id == 0 is a fake user from git author */ sauron
4fc794e834 commit 2025-10-14 00:36 edit a bit ZCppMain/ZtCArray.H 2025-10-14 00:36:21 +09:00
/* User with id == 0 is a fake user from git author */ sauron
15f24be62d commit 2025-10-14 00:11 edit a bit ZCppMain/ZMainHead.H 2025-10-14 00:11:29 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5166bbe7cf commit 2025-10-13 23:36 edit a bit ZCppMain/ZMainHead.H 2025-10-13 23:37:05 +09:00
/* User with id == 0 is a fake user from git author */ sauron
7ba366e151 commit 2025-10-13 22:51 edit a bit ZCppMain/ZMainHead.H 2025-10-13 22:52:13 +09:00
/* User with id == 0 is a fake user from git author */ sauron
5b692812db commit 2025-10-13 22:41 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 22:42:11 +09:00
/* User with id == 0 is a fake user from git author */ sauron
b1958e065a commit 2025-10-13 12:33 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 22:33:17 +09:00
/* User with id == 0 is a fake user from git author */ sauron
6cc8cff669 commit 2025-10-13 19:20 bug fix in ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) : ZCppMain/ZtCArray.H 2025-10-13 19:20:18 +09:00
/* User with id == 0 is a fake user from git author */ sauron
0e25b260de commit 2025-10-13 19:12 mr_CurrList => to first member in ZCNodePoint : ZCppMain/ZMainHead.H 2025-10-13 19:12:25 +09:00
/* User with id == 0 is a fake user from git author */ sauron
7a3b57f135 commit 2025-10-13 19:00 ZCLinkPoint => ZCNodePoint : ZCppMain/ZtCObjList.H 2025-10-13 19:00:57 +09:00
/* User with id == 0 is a fake user from git author */ sauron
388b87377a commit 2025-10-13 18:46 add TypeNode : ZCppMain/ZtCObjList.H 2025-10-13 18:46:22 +09:00
/* User with id == 0 is a fake user from git author */ sauron
093eb009d0 commit 2025-10-13 17:58 edit a bit ZCppMain/ZtCSimList.H 2025-10-13 17:58:21 +09:00
/* User with id == 0 is a fake user from git author */ sauron
18e0b5d9d4 commit 2025-10-13 17:08 edit a bit ZCppMain/ZtCSimList.H 2025-10-13 17:09:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
1bdcf7597b commit 2025-10-13 16:55 edit a bit ZCppMain/ZMainHead.H 2025-10-13 16:55:58 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bfe282e141 commit 2025-10-13 16:45 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 16:45:58 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bdc450d1b3 commit 2025-10-13 16:42 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 16:42:22 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bb547bd4f7 commit 2025-10-13 16:38 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 16:38:08 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e34ad6cfb1 commit 2025-10-13 16:33 add ZCLinkPoint for iterator ZCppMain/ZtCSimList.H 2025-10-13 16:33:44 +09:00
/* User with id == 0 is a fake user from git author */ sauron
df8ffa6024 commit 2025-10-13 14:56 edit a bit ZCppMain/ZMainHead.H 2025-10-13 14:56:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
bf32afc1cd commit 2025-10-13 14:10 edit a bit ZCppMain/ZMainHead.H 2025-10-13 14:10:53 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3deb3d3106 commit 2025-10-13 13:35 edit a bit ZCppMain/ZMainHead.H 2025-10-13 13:36:01 +09:00
/* User with id == 0 is a fake user from git author */ sauron
50019e94cd commit 2025-10-13 13:31 add __for_iter & __for_iterc ZCppMain/ZMainHead.H 2025-10-13 13:31:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3629380b37 commit 2025-10-13 12:28 add ZCLinkPointC ZCppMain/ZtCObjList.H 2025-10-13 12:28:24 +09:00
/* User with id == 0 is a fake user from git author */ sauron
870b50066d commit 2025-10-13 10:55 add ZCLinkPointEx ZCppMain/ZtCObjList.H 2025-10-13 10:55:10 +09:00
/* User with id == 0 is a fake user from git author */ sauron
17e25f8f5d commit 2025-10-13 01:17 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 01:17:13 +09:00
/* User with id == 0 is a fake user from git author */ sauron
033dd35cfc commit 2025-10-13 13:08 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 01:08:48 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e0b357be37 commit 2025-10-13 00:27 edit a bit ZCppMain/ZtCObjList.H 2025-10-13 00:27:26 +09:00
/* User with id == 0 is a fake user from git author */ sauron
0c52cb85af commit 2025-10-12 23:40 edit a bit ZCppMain/ZtCStringStd.H 2025-10-12 23:40:25 +09:00
/* User with id == 0 is a fake user from git author */ sauron
7b3605a929 commit 2025-10-12 23:29 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 23:29:43 +09:00
/* User with id == 0 is a fake user from git author */ sauron
fa52fe1027 commit 2025-10-12 23:10 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 23:10:34 +09:00
/* User with id == 0 is a fake user from git author */ sauron
cdca176fa9 commit 2025-10-12 19:32 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 19:32:33 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a112a17f0d commit 2025-10-12 19:22 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 19:22:12 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3c1aba34e9 commit 2025-10-12 19:18 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 19:18:39 +09:00
/* User with id == 0 is a fake user from git author */ sauron
29156b0dd0 commit 2025-10-12 19:15 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 19:15:06 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ae76c4626c commit 2025-10-12 19:12 edit a bit ZCppMain/ZMainHead.H 2025-10-12 19:12:50 +09:00
/* User with id == 0 is a fake user from git author */ sauron
66bec91d83 commit 2025-10-12 19:10 edit a bit ZCppMain/ZMainHead.H 2025-10-12 19:10:08 +09:00
/* User with id == 0 is a fake user from git author */ sauron
f8e1e7f062 commit 2025-10-12 19:03 edit a bit ZCppMain/ZtCObjList.H 2025-10-12 19:03:55 +09:00
/* User with id == 0 is a fake user from git author */ sauron
2c2b664d15 commit 2025-10-12 18:51 add iterator class in ZCppMain/ZtCObjList.H 2025-10-12 18:51:35 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3259618f1e commit 2025-10-12 08:03 is coding ZtCBaseList::CutLinkRangeIn() in ZCppMain/ZMainHead.H 2025-10-12 12:50:27 +09:00
/* User with id == 0 is a fake user from git author */ sauron
73d4d3daaf commit 2025-10-12 08:03 add MoveLinkAfter() etc in ZCppMain/ZtCLinkList.H 2025-10-12 08:03:38 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8f8ddb9460 commit 2025-10-12 00:58 add ZtCObjList::mp_TailLink : ZCppMain/ZtCObjList.H 2025-10-12 00:58:51 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a46afc5865 commit 2025-10-11 23:03 add ZtCBaseList::AddHeadDef() & AddTailDef() : ZCppMain/ZMainHead.H 2025-10-11 23:03:47 +09:00
/* User with id == 0 is a fake user from git author */ sauron
32ae22cc92 commit 2025-10-11 22:33 edit a bit ZCppMainTest/ZtCLinkList_001.cpp 2025-10-11 22:33:56 +09:00
/* User with id == 0 is a fake user from git author */ sauron
13b39d7b1b commit 2025-10-11 22:25 add ZtCLinkList::SwapLink() : ZCppMain/ZtCLinkList.H 2025-10-11 22:25:36 +09:00
/* User with id == 0 is a fake user from git author */ sauron
10eefea106 commit 2025-10-11 21:59 I64d => lld etc : ZCppMain/ZMainHead.H 2025-10-11 21:59:51 +09:00
/* User with id == 0 is a fake user from git author */ sauron
eb050b2c6c commit 2025-10-11 21:30 add ZtCBaseList::SendRangeIn() etc : ZCppMain/ZMainHead.H 2025-10-11 21:31:02 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3fbaa2f2a6 commit 2025-10-11 20:43 edit a bit ZCppMain/ZMainHead.H 2025-10-11 20:43:19 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ce958a5d74 commit 2025-10-11 20:41 add ZtCBaseList::MoveLinkAfter() etc : ZCppMain/ZMainHead.H 2025-10-11 20:41:16 +09:00
/* User with id == 0 is a fake user from git author */ sauron
3c13880b49 commit 2025-10-11 19:39 edit a bit ZtCBaseList::SwapLink() : ZCppMain/ZMainHead.H 2025-10-11 19:39:26 +09:00
/* User with id == 0 is a fake user from git author */ sauron
aa5d67daf4 commit 2025-10-11 19:29 add ZtCBaseList::SwapLink() : ZCppMain/ZMainHead.H 2025-10-11 19:29:10 +09:00
/* User with id == 0 is a fake user from git author */ sauron
a64b43b1e9 commit 2025-10-11 17:57 add ZtCBaseList::SwapLinkPrev() : ZCppMain/ZMainHead.H 2025-10-11 17:57:09 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8b226414b5 commit 2025-10-11 17:20 edit a bit ZCppMain/ZMainHead.H 2025-10-11 17:20:29 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e2ceca2cd8 commit 2025-10-11 17:16 edit a bit ZCppMain/ZMainHead.H 2025-10-11 17:16:41 +09:00
/* User with id == 0 is a fake user from git author */ sauron
f10ea286c0 commit 2025-10-11 17:04 edit a bit ZCppMain/ZMainHeadEx.H 2025-10-11 17:04:46 +09:00
/* User with id == 0 is a fake user from git author */ sauron
15edbd80d8 commit 2025-10-11 16:51 add ZtCBaseList::SwapLinkNext() : ZCppMain/ZMainHead.H 2025-10-11 16:51:09 +09:00
/* User with id == 0 is a fake user from git author */ sauron
22f85f03a4 commit 2025-10-11 06:38 edit a bit ZtCCount ZCppMain/ZMainHead.H 2025-10-11 06:39:14 +09:00
/* User with id == 0 is a fake user from git author */ sauron
89e67d93e3 commit 2025-10-10 21:45 add ZtCCount ZCppMain/ZMainHead.H 2025-10-10 21:47:00 +09:00
/* User with id == 0 is a fake user from git author */ sauron
e69cc7577f commit 2025-10-10 20:48 add ZCppMain/ZMainEnc.H 2025-10-10 20:48:24 +09:00
/* User with id == 0 is a fake user from git author */ sauron
016a45f648 commit 2025-10-10 20:45 edit by g++ option -Wall -Wno-unused-function -Wno-misleading-indentation 2025-10-10 20:45:38 +09:00
/* User with id == 0 is a fake user from git author */ sauron
467c46a5c3 commit 2025-10-10 14:58 edit a bit ZCppMainTest/ZtCLinkMoveList_000.cpp 2025-10-10 14:58:54 +09:00
/* User with id == 0 is a fake user from git author */ sauron
ed5f8509cd commit 2025-10-10 14:54 edit a bit ZCppMainTest/ZtCLinkMoveList_000.cpp 2025-10-10 14:54:44 +09:00
/* User with id == 0 is a fake user from git author */ sauron
9052a06bd5 commit 2025-10-10 14:49 add ZCLink::TypeLink : ZCppMain/ZMainHead.H 2025-10-10 14:49:25 +09:00
/* User with id == 0 is a fake user from git author */ sauron
8924a85c85 commit 2025-10-10 14:45 edit a bit : ZCppMain/ZMainHead.H 2025-10-10 14:48:25 +09:00
/* User with id == 0 is a fake user from git author */ sauron
93080593d1 commit 2025-10-10 14:24 add TypeData& operator()() in ZtCObjOpt : ZCppMain/ZMainHead.H 2025-10-10 14:24:34 +09:00
25 changed files with 9007 additions and 3150 deletions

View File

@ -348,7 +348,7 @@ namespace ZNsMain
typename TEnvVar , //= ZNsMain::ZNsCGI::ZNsBase::ZtCEnvVar<TStringData>,
typename TEnvVarSet //= NsCPP::ZtCObjAVL<TEnvVar>
>
class ZtCTypeEnvVarSet /*############################################################*/
class ZtCTypeEnvVarSet ##############################################################*/
}/*
namespace NsType*/

View File

@ -1040,7 +1040,7 @@ namespace ZNsMain
int AI_Offset= 0 ,
const char* APC_Padd = ""
)
/*################################################################*/
##################################################################*/
template<typename TString> void ZftGetBinHexFormat /*#############*/
@ -1258,7 +1258,7 @@ namespace ZNsMain
int AI_Offset=0 ,
const char* APC_Padd =""
)
/*################################################################*/
##################################################################*/
template<typename TString> void ZftGetBinHexFormatEx( /*##########*/

File diff suppressed because it is too large Load Diff

View File

@ -1157,7 +1157,7 @@ namespace ZNsMain
{
time_t VI_TimeSec=ZNsMain::ZCTime::MakeTimeInt(AI_Year, AI_Month, AI_Day, AI_Hour, AI_Min, AI_Sec);
if(VI_TimeSec<1) return false; *this+=VI_TimeSec; return true ;
if(VI_TimeSec<1){return false;} *this+=VI_TimeSec; return true ;
}/*
bool GetDiffSec(time_t& ARRI_TimeGap, int AI_Year,int AI_Month,int AI_Day,int AI_Hour,int AI_Min,int AI_Sec)*/
@ -1388,15 +1388,15 @@ namespace ZNsMain
static string& GetUniqueID(string& ARR_CString)
{
const int CI_BuffSize=100 ;
static int SI_Count =0 ;
static long SI_Count =0 ;
const char* CPC_Gap ="_" ;
char VCA_Buff[CI_BuffSize] ;
::sprintf( VCA_Buff,
"%d%s%d%s%d" ,
"%ld%s%ld%s%ld" ,
(long)GetNowSec(), // (long) 가 없으면 메모리 오류가 난다.
CPC_Gap , GetTickCount() ,
CPC_Gap , (++SI_Count)+ ::GetCurrentProcessId()
CPC_Gap , (long)GetTickCount() ,
CPC_Gap , (++SI_Count)+long(::GetCurrentProcessId())
/*////*/ );
return ARR_CString = VCA_Buff ;
@ -4268,7 +4268,7 @@ namespace ZNsMain
VB_RemoveFail=false;
}
while(VB_IsSearched = ::FindNextFileA(VH_File, &VO_CFileData));
while((VB_IsSearched = ::FindNextFileA(VH_File, &VO_CFileData))==TRUE);
::FindClose(VH_File);
@ -5290,7 +5290,7 @@ namespace ZNsMain
ZNsMain::ZNsEnum::ZERun (*APF_EachFile)(ZTypCPCh APC_NowPath, ZCFileData& AR_CFileData, void* APC_VoidKey),
ZNsMain::ZNsEnum::ZERun (*APF_EachDir )(ZTypCPCh APC_NowPath, ZCFileData& AR_CFileData, void* APC_VoidKey)=0
)
/*##########################################################################*/
############################################################################*/
/*////////////////////////////////////////////////////
@ -5762,11 +5762,11 @@ namespace ZNsMain
char* VP_NowDir = ::getcwd
((char*)ARR_CStringDir.data(), CI_BuffSize);
if(VP_NowDir==0) return false; ARR_CStringDir.
if(VP_NowDir==0){return false;} ARR_CStringDir.
resize(ZNsMain::ZftLength(VP_NowDir), ' ') ;
return true; /********************************/
return true; /*********************************/
}/*
if(false==AB_DoKeepPrev)*/
@ -7136,7 +7136,6 @@ namespace ZNsMain
{
return VI_EmptyBuffCnt;
}
////////////////
}
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
{
@ -7169,9 +7168,7 @@ namespace ZNsMain
{
if(mi_HeadPos<1) return ;
int VI_Index=0 ;
int i =mi_HeadPos;
int VI_Index= 0, i = mi_HeadPos;
int VI_ValidBuffCnt = GetSize() ;
for(; i<=mi_TailPos; ++i)
@ -7189,8 +7186,7 @@ namespace ZNsMain
}/*
for(i=0; i<mi_HeadPos; ++i)*/
mi_HeadPos=0 ;
mi_TailPos=VI_ValidBuffCnt-1;
mi_HeadPos= 0 ; mi_TailPos= VI_ValidBuffCnt-1;
}/*
void MoveFirst()*/
@ -7367,7 +7363,7 @@ namespace ZNsMain
ZTypCPCh APC_FileName , ZTypCPCh APC_Content ,
ZTypLength AL_ContentLen, bool AB_DoAppend=true, int AI_RightMode=-1
)
/*#####################################################################################################*/
#######################################################################################################*/
template<typename TStringData> bool ZftLoadFile /*////////////////////////////*/

View File

@ -22,78 +22,284 @@ namespace ZNsMain
typedef TTypArg TypeArg ;
typedef TSize TypeSize ;
public:
class ZCIterator;
class ZCNodePoint; class ZCNodePointN ;
public:
typedef Type* IterEasy;
typedef ZCIterator iterator;
typedef const ZCIterator const_iterator;
typedef TypeData* IterEasy ;
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
typedef ZCNodePoint TypeIter ;
typedef ZtCArray TypeThis ;
typedef const TypeThis TypeThisC ;
typedef const TypeData TypeDataC ;
typedef const TypeData* TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
typedef const TypeIter TypeIterC ;
typedef const TypeData* IterEasyC ;
/**********************************************/
typedef const ZCNodePoint ZCNodePointC;
typedef const ZCNodePoint iteratorC ;
/**********************************************/
typedef ZCNodePoint iterator ;
typedef ZCNodePointN const_iterator;
typedef ZCNodePointN iteratorN ;
typedef ZCNodePointN TypeIterN ;
public:
class ZCIterator
class ZCNodePoint
{
private: mutable
Type* mp_Data ; mutable
TSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
ZtCArray* mp_CArray;
private:
ZtCArray& mr_CArray; mutable
TypeData* mp_Data ; mutable
TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
public:
ZCIterator()
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)
{
mp_Data =0;
mp_CArray=0;
ml_ElePos=0;
ZCNodePoint VO_ZCLinkPoint(AR_CArray);
if(AR_CArray.size()>0) /****************************/
{
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
}
return VO_ZCLinkPoint; /****************************/
}/*
ZCIterator()*/
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)*/
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)
{
ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
ZCIterator(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
if(VL_ArrSize>0) /**********************************/
{
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
}
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)*/
public:
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
mr_CArray(AR_CArray)
/*****************************************************************/
{
mp_Data =&AR_CData ;
mp_CArray=&AR_CArray;
ml_ElePos=AL_ElePos ;
}/*
ZCIterator(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCIterator(ZtCArray& AR_CArray)
ZCNodePoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{
mp_Data = AR_CArray.mp_TypeArr ;
mp_CArray=&AR_CArray ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCIterator(ZtCArray& AR_CArray)*/
ZCNodePoint(ZtCArray& AR_CArray)*/
ZCIterator(const ZtCArray& AR_CArray)
ZCNodePoint(const ZCNodePoint& rhs) : mr_CArray(rhs.mr_CArray)
{
mp_Data = AR_CArray.mp_TypeArr ;
mp_CArray= const_cast<ZtCArray*>(&AR_CArray);
ml_ElePos= (AR_CArray.size()>0 ? 1 : 0 ) ;
mp_Data = rhs.mp_Data ;
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
}/*
ZCIterator(const ZtCArray& AR_CArray)*/
ZCNodePoint(const ZCNodePoint& rhs)*/
Type& operator*( ){return *mp_Data;}
Type* operator->(){return mp_Data;}
const Type& operator* () const{return *mp_Data;}
const Type* operator->() const{return mp_Data;}
TypeThis & GetMain() {return mr_CArray ;}
TypeNode GetNode() {return mp_Data ;}
ZCIterator& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
ZCIterator operator++(int){++mp_Data; ++ml_ElePos; return *this;}
TypeThisC& GetMain() const{return mr_CArray ;}
TypeNodeC GetNode() const{return mp_Data ;}
const ZCIterator& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCIterator operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
TypeSize GetPos () const{return ml_ElePos ;}
TypeSize size () const{return mr_CArray.size();}
ZCIterator operator+(TSize AL_AddPos) const
TypeData & operator* () {return *mp_Data;}
TypeData * operator->() {return mp_Data;}
TypeDataC& operator* () const{return *mp_Data;}
TypeDataC* operator->() const{return mp_Data;}
TypeIter & operator++( ) {++mp_Data; ++ml_ElePos; return *this;}
TypeIter operator++(int) {++mp_Data; ++ml_ElePos; return *this;}
TypeIter & operator--( ) {--mp_Data; --ml_ElePos; return *this;}
TypeIter operator--(int) {--mp_Data; --ml_ElePos; return *this;}
ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
ZCNodePointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
ZCNodePointC& operator--( ) const{--mp_Data; --ml_ElePos; return *this;}
ZCNodePointC operator--(int) const{--mp_Data; --ml_ElePos; return *this;}
TypeIter operator+(TSize AL_AddPos) const
{
return ZCIterator(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/*
ZCIterator operator+(TSize AL_AddPos) const*/
TypeIter operator+(TSize AL_AddPos) const*/
bool operator == (ZCNodePointC& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; }
bool operator != (ZCNodePointC& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; }
bool operator > (ZCNodePointC& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (ZCNodePointC& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (ZCNodePointC& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (ZCNodePointC& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const
{ return ml_ElePos == AL_Size; }
bool operator != (TypeSize AL_Size) const
{ return ml_ElePos != AL_Size; }
bool operator > (TypeSize AL_Size) const
{ return ml_ElePos > AL_Size; }
bool operator >= (TypeSize AL_Size) const
{ return ml_ElePos >= AL_Size; }
bool operator < (TypeSize AL_Size) const
{ return ml_ElePos < AL_Size; }
bool operator <= (TypeSize AL_Size) const
{ return ml_ElePos <= AL_Size; }
public:
};/*
class ZCIterator
class ZCNodePoint*/
public :*/
class ZCNodePointN
{
private:
mutable TypeData* mp_Data ;
mutable TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
const ZtCArray& mr_CArray;
public:
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)
{
ZCNodePointN VO_ZCLinkPoint(AR_CArray);
if(AR_CArray.size()>0) /****************************/
{
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
}
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)*/
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)
{
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
if(VL_ArrSize>0) /**********************************/
{
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
}
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)*/
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)
{
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
if(VL_ArrSize>0) /**********************************/
{
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
}
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)*/
public:
ZCNodePointN(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
mr_CArray(AR_CArray)
/*****************************************************************/
{
mp_Data =&AR_CData ;
ml_ElePos=AL_ElePos ;
}/*
ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{
mp_Data = AR_CArray.mp_Data ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointN(ZtCArray& AR_CArray)*/
ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
{
mp_Data = rhs.mp_Data ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointN(const ZCNodePointN& rhs)*/
ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
{
mp_Data = rhs.mp_Data ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointN(const ZCNodePoint & rhs)*/
TypeSize size () const{return mr_CArray.size();}
TypeSize GetPos() const{return ml_ElePos ;}
TypeDataC& operator* () const{return *mp_Data;}
TypeDataC* operator->() const{return mp_Data;}
TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
TypeIterN operator+(TSize AL_AddPos) const
{
return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/*
TypeIterN operator+(TSize AL_AddPos) const*/
bool operator == (const ZCNodePointN& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCNodePointN& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCNodePointN& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCNodePointN& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCNodePointN& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCNodePointN& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const
{ return ml_ElePos == AL_Size; }
bool operator != (TypeSize AL_Size) const
{ return ml_ElePos != AL_Size; }
bool operator > (TypeSize AL_Size) const
{ return ml_ElePos > AL_Size; }
bool operator >= (TypeSize AL_Size) const
{ return ml_ElePos >= AL_Size; }
bool operator < (TypeSize AL_Size) const
{ return ml_ElePos < AL_Size; }
bool operator <= (TypeSize AL_Size) const
{ return ml_ElePos <= AL_Size; }
public:
};/*
class ZCNodePointN*/
public :
/**************************************************************************/
protected:
enum{ZEAddSize=20};
protected:
@ -336,11 +542,17 @@ namespace ZNsMain
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
Type& push_front(){return AddHead();}
Type& push_back (){return AddTail();}
TypeData& push_front(){return AddHead();}
TypeData& push_back (){return AddTail();}
/***/ ZCIterator begin() {return ZCIterator(*this);}
const ZCIterator begin() const{return ZCIterator(*this);}
TypeIter begin () {return ZCNodePoint (*this);}
TypeIterN begin () const{return ZCNodePointN(*this);}
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
iteratorN end () const{ return ZCNodePointN::MakeTailPoint(*this); }
iteratorN cbegin() const{ return ZCNodePointN(*this); }
iteratorN cend () const{ return ZCNodePointN::MakeTailPoint(*this); }
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -535,103 +747,97 @@ namespace ZNsMain
-- 2011-06-12 20:42:00
GetDataInIter() 를 ItD() 로 대체. -- 2025-10-15 15:49
///////////////////////////////////////////////////////////////////////////*/
Type* GetHeadIterEasy (){return mp_TypeArr ;}
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;}
TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
IterEasyID GetHeadIterEasyID () {return (IterEasyID ) mp_TypeArr ;}
IterEasyID GetTailIterEasyID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
const Type* GetHeadIterEasy () const{return mp_TypeArr ;}
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc) mp_TypeArr ;}
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
void MoveNextIter(Type*& APR_CType ) const{++APR_CType ;}
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc) mp_TypeArr ;}
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
void MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
void MoveNextIter(IterEasyID & AI_IterEasyID) const
{ MoveNextIter((Type*&)AI_IterEasyID); }
void MoveNextIter(const Type*& APR_CType ) const{++APR_CType ;}
void MoveNextIter(const iterator& ARR_CIterator) const{++ARR_CIterator;}
void MoveNextIter(const IterEasyID& AI_IterEasyID)
const{ MoveNextIter((const Type*&)AI_IterEasyID); }
{ MoveNextIter((TypeData *&)AI_IterEasyID); }
void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
void MoveNextIter(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
void MoveNextIter(IterEasyIDc& AI_IterEasyID) const
{ MoveNextIter((TypeDataC*&)AI_IterEasyID); }
void MovePrevIter(Type*& APR_CType ) const{--APR_CType ;}
void MovePrevIter(TypeData* & APR_CType ) const{--APR_CType ;}
void MovePrevIter(iterator & ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(IterEasyID & AI_IterEasyID) const
{ MovePrevIter((Type*&)AI_IterEasyID); }
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;}
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(const IterEasyID& AI_IterEasyID)
const{ MovePrevIter((const Type*&)AI_IterEasyID); }
{ MovePrevIter((TypeData *&)AI_IterEasyID); }
void MovePrevIter(TypeDataC* & APR_CType ) const{--APR_CType ;}
void MovePrevIter(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(IterEasyIDc& AI_IterEasyID) const
{ MovePrevIter((TypeDataC*&)AI_IterEasyID); }
Type& GetDataInIter(Type* AP_CType ){return *AP_CType ;}
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;}
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;}
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;}
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;}
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const
{ return *(const Type*)AI_IterEasyID; }
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum)
{ return *(AP_Type + AI_FarNum) ; }
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum)
{ return *(ARR_CIterator+AI_FarNum) ; }
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); }
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const
{ return *(AP_Type + AI_FarNum); }
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const
{ return *(ARR_CIterator+AI_FarNum); }
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); }
Type* ItHEasy(){return mp_TypeArr ;}
Type* ItTEasy(){return mp_TypeArr+ml_UseSize-1 ;}
TypeData * ItHEasy() {return mp_TypeArr ;}
TypeData * ItTEasy() {return mp_TypeArr+ml_UseSize-1 ;}
IterEasyID ItHID () {return (IterEasyID ) mp_TypeArr ;}
IterEasyID ItTID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
const Type* ItHEasy () const{return mp_TypeArr ;}
const Type* ItTEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
const IterEasyID ItHID() const{return (IterEasyID) mp_TypeArr ;}
const IterEasyID ItTID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
TypeDataC* ItHEasy() const{return mp_TypeArr ;}
TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
IterEasyIDc ItHID () const{return (IterEasyIDc) mp_TypeArr ;}
IterEasyIDc ItTID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
void ItNext(Type*& APR_CType ) const{++APR_CType ;}
IterEasyIDc ItHIDc () const{return (IterEasyIDc) mp_TypeArr ;}
IterEasyIDc ItTIDc () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
void ItNext(TypeData* & APR_CType ) const{++APR_CType ;}
void ItNext(iterator & ARR_CIterator) const{++ARR_CIterator;}
void ItNext(IterEasyID & AI_IterEasyID) const
{ ItNext((Type*&)AI_IterEasyID); }
void ItNext(const Type*& APR_CType ) const{++APR_CType ;}
void ItNext(const iterator& ARR_CIterator) const{++ARR_CIterator;}
void ItNext(const IterEasyID& AI_IterEasyID)
const{ ItNext((const Type*&)AI_IterEasyID); }
{ ItNext((TypeData *&)AI_IterEasyID); }
void ItNext(TypeDataC* & APR_CType ) const{++APR_CType ;}
void ItNext(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
void ItNext(IterEasyIDc & AI_IterEasyID) const
{ ItNext((TypeDataC*&)AI_IterEasyID); }
void ItPrev(Type*& APR_CType ) const{--APR_CType ;}
void ItPrev(TypeData* & APR_CType ) const{--APR_CType ;}
void ItPrev(iterator & ARR_CIterator) const{--ARR_CIterator;}
void ItPrev(IterEasyID & AI_IterEasyID) const
{ ItPrev((Type*&)AI_IterEasyID); }
void ItPrev(const Type*& APR_CType ) const{--APR_CType ;}
void ItPrev(const iterator& ARR_CIterator) const{--ARR_CIterator;}
void ItPrev(const IterEasyID& AI_IterEasyID)
const{ ItPrev((const Type*&)AI_IterEasyID); }
{ ItPrev((TypeData *&)AI_IterEasyID); }
void ItPrev(TypeDataC* & APR_CType ) const{--APR_CType ;}
void ItPrev(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
void ItPrev(IterEasyIDc & AI_IterEasyID) const
{ ItPrev((TypeDataC*&)AI_IterEasyID); }
Type& ItD(Type* AP_Type ){return GetDataInIter(AP_Type );}
Type& ItD(iterator& ARR_CIterator ){return GetDataInIter(ARR_CIterator );}
Type& ItD(IterEasyID ARRI_IterEasyID ){return GetDataInIter(ARRI_IterEasyID );}
Type& ItD(Type* AP_Type , TypeSize AI_FarNum){return GetDataInIter(AP_Type , AI_FarNum );}
Type& ItD(iterator& ARR_CIterator , TypeSize AI_FarNum){return GetDataInIter(ARR_CIterator , AI_FarNum);}
Type& ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum){return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
TypeData& ItD(TypeData * AP_CType ) {return *AP_CType ;}
TypeData& ItD(iterator & ARR_CIterator) {return *ARR_CIterator;}
TypeData& ItD(IterEasyID AI_IterEasyID)
{ return *(TypeData *)AI_IterEasyID; }
const Type& ItD(const Type* AP_Type ) const{return GetDataInIter(AP_Type );}
const Type& ItD(const iterator& ARR_CIterator ) const{return GetDataInIter(ARR_CIterator );}
const Type& ItD(const IterEasyID ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );}
const Type& ItD(const Type* AP_Type , TypeSize AI_FarNum) const{return GetDataInIter(AP_Type );}
const Type& ItD(const iterator& ARR_CIterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_CIterator , AI_FarNum);}
const Type& ItD(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
TypeDataC& ItD(TypeDataC * AP_CType ) const{return *AP_CType;}
TypeDataC& ItD(iteratorC & ARR_CIterator) const{return *ARR_CIterator;}
TypeDataC& ItD(IterEasyIDc AI_IterEasyID) const
{ return *(TypeDataC*)AI_IterEasyID; }
TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum)
{ return *(AP_Type + AI_FarNum) ; }
TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum)
{ return *(ARR_CIterator+AI_FarNum) ; }
TypeData & ItD(IterEasyID AH_IterEasyID , TypeSize AI_FarNum)
{ return ItD((TypeData*)AH_IterEasyID , AI_FarNum); }
TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const
{ return *(AP_Type + AI_FarNum); }
TypeDataC& ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) const
{ return *(ARR_CIterator+AI_FarNum); }
TypeDataC& ItD(IterEasyIDc AH_IterEasyID , TypeSize AI_FarNum) const
{ return ItD((TypeDataC*)AH_IterEasyID, AI_FarNum); }
public:
};/*

File diff suppressed because it is too large Load Diff

View File

@ -480,7 +480,7 @@ namespace ZNsMain
(
const TypeChar* AP_CharID, ZCStringData& ARR_CStringSave
) const
/*#############################################################################*/
###############################################################################*/
ZCStringData GetElementValueByID(const ZCStringData& AR_CStringID) const
@ -4040,7 +4040,7 @@ namespace ZNsMain
const TypeChar* APC_XmlData ,
TypeLength AI_DataLen
)
/*#############################################################################*/
###############################################################################*/
template<typename TViewLoadXml, typename TMainChars>
ZERunEx Exec(TViewLoadXml& AR_CViewLoadXml, const TMainChars& AR_CMainChars)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -767,6 +767,10 @@ namespace ZNsMain
class ZtCSimList /*##########################################################*/
{
public:
class ZCLink ;
class ZCNodePoint ;
class ZNodekPointN;
/**************************************************/
typedef TType Type ;
typedef TType TypeData ;
typedef TTypArgu TypeArg ;
@ -774,9 +778,29 @@ namespace ZNsMain
typedef TTypCInit TypeInit ;
typedef TTypSize TypeSize ;
typedef TMoveObj TypeMoveObj ;
public:
typedef ZCLink TypeLink ;
typedef ZCLink TypeNode ;
typedef ZtCSimList TypeList ;
typedef ZtCSimList TypeThis ;
typedef ZCNodePoint TypeIter ;
/**************************************************/
typedef const ZCLink ZCLinkC ;
typedef const TypeThis TypeThisC ;
typedef const TypeData TypeDataC ;
typedef const TypeList TypeListC ;
typedef const TypeLink TypeLinkC ;
typedef const TypeNode TypeNodeC ;
typedef const TypeIter TypeIterC ;
/**************************************************/
typedef ZCNodePoint iterator ;
typedef ZNodekPointN const_iterator ;
typedef ZNodekPointN iteratorN ;
/**************************************************/
typedef typename TFeeeHeap::
template ZtCBody<ZtCSimList> ZCFreeHeap;
/**************************************************/
public:
@ -859,35 +883,29 @@ namespace ZNsMain
}/*
const TType& GetData() const*/
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0
TType& GetData(TypeSize AL_FarNum) // must AL_FarNum >= 0
{
return GetNextPtr(AL_FarNum)->mo_DataObjt;
}/*
TType& GetData(TTypSize AL_FarNum)*/
TType& GetData(TypeSize AL_FarNum)*/
const TType& GetData(TTypSize AL_FarNum) const
const TType& GetData(TypeSize AL_FarNum) const
{
return GetNextPtr(AL_FarNum)->mo_DataObjt;
}/*
const TType& GetData(TTypSize AL_FarNum) const*/
const TType& GetData(TypeSize AL_FarNum) const*/
TType& operator*()
TType& operator* (){return mo_DataObjt;}
TType& operator()(){return mo_DataObjt;}
const TType& operator* () const{return mo_DataObjt;}
const TType& operator()() const{return mo_DataObjt;}
ZCLink* GetNextPtr(TypeSize AL_FarNum) // must AL_FarNum > 0
{
return mo_DataObjt;
}/*
TType& operator*()*/
const TType& operator*() const
{
return mo_DataObjt;
}/*
const TType& operator*() const*/
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0
{
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도
// 이 멤버 함수는 TypeSize 가 용랑이 큰 object 라 할지라도
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
ZCLink* VP_TmpLink=this;
@ -898,13 +916,13 @@ namespace ZNsMain
return VP_TmpLink;
}/*
ZCLink* GetNextPtr(TTypSize AL_FarNum)*/
ZCLink* GetNextPtr(TypeSize AL_FarNum)*/
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TTypSize AL_FarNum) const
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TypeSize AL_FarNum) const
{
// TTypSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
// TTypSize 을 참조로 받으면 안된다.
// TypeSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
// TypeSize 을 참조로 받으면 안된다.
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
@ -918,20 +936,11 @@ namespace ZNsMain
return VP_TmpLink;
}/*
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const*/
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const*/
inline ZCLink* GetNextPtr()
{
return mp_NextLink;
}/*
inline ZCLink* GetNextPtr()*/
inline const ZCLink* const GetNextPtr() const
{
return mp_NextLink;
}/*
inline const ZCLink* const GetNextPtr() const*/
inline ZCLink * GetNextPtr() { return mp_NextLink; }
inline ZCLinkC* const GetNextPtr() const{ return mp_NextLink; }
ZCLink& operator=(TypeArg AR_Type)
{
@ -939,36 +948,301 @@ namespace ZNsMain
}/*
ZCLink& operator=(TypeArg AR_Type)*/
ZCLink* operator+(TypeSize AL_Offset)
ZCLink& operator+(TypeSize AL_Offset)
{
ZCLink* VP_CLinkLoop=this;
__for0(TTypSize, i, AL_Offset)
__for0(TypeSize, i, AL_Offset)
{
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
}/*
__for0(TTypSize, i, AL_Offset)*/
__for0(TypeSize, i, AL_Offset)*/
return *this;
}/*
ZCLink* operator+(TypeSize AL_Offset)
ZCLink& operator+(TypeSize AL_Offset)
public:*/
};/*
class ZCLink*/
//////////////////////////////////////////////////
class ZCNodePoint
{
private:
/*****/ TypeList& mr_CurrList;
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ;
public:
ZCNodePoint(TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList)
{
mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ;
}
ZCNodePoint(const ZCNodePoint& rhs) :
mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos )
{}
public :
/*************** end class ZCLink ***************/
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
{
ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
//////////////////////////////////////////////////
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
{
ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/
}/*
static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
public :
TypeThis & GetMain() {return mr_CurrList;}
TypeNode & GetNode() {return *mp_CurrLink;}
TypeThisC& GetMain() const{return mr_CurrList;}
TypeNodeC& GetNode() const{return *mp_CurrLink;}
/***************************************************/
TypeSize GetPos () const{return ml_CurrPos ;}
/***************************************************/
//public :
bool IsValid() const{return mr_CurrList.size()>0;}
bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
TypeData & operator*() {return **mp_CurrLink;}
TypeDataC& operator*() const{return **mp_CurrLink;}
operator TypeLink * () {return mp_CurrLink;}
operator TypeLinkC* () const{return mp_CurrLink;}
operator TypeLink & () {return *mp_CurrLink;}
operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCNodePoint& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCNodePoint& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCNodePoint& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCNodePoint& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCNodePoint& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCNodePoint& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const
{ return ml_CurrPos == AL_Size; }
bool operator != (TypeSize AL_Size) const
{ return ml_CurrPos != AL_Size; }
bool operator > (TypeSize AL_Size) const
{ return ml_CurrPos > AL_Size; }
bool operator >= (TypeSize AL_Size) const
{ return ml_CurrPos >= AL_Size; }
bool operator < (TypeSize AL_Size) const
{ return ml_CurrPos < AL_Size; }
bool operator <= (TypeSize AL_Size) const
{ return ml_CurrPos <= AL_Size; }
const ZCNodePoint& operator++() const
{
mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ;
}/*
const ZCNodePoint& operator++() const*/
ZCNodePoint operator++(int) const
{
ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ;
}/*
ZCNodePoint operator++(int) const*/
const ZCNodePoint& operator+=(TypeSize AL_Distance) const
{
if(IsEmpty()){return *this;}
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
ml_CurrPos += AL_Distance ;
return *this; /*:::::::::::::::::::::::::::*/
}/*
const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
public:
};/*
class ZCNodePoint*/
class ZNodekPointN
{
protected:
const TypeList& mr_CurrList;
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ;
public :
ZNodekPointN(const TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList)
{
mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ;
}
ZNodekPointN(const ZCNodePoint & rhs) :
mr_CurrList( rhs.GetMain()),
mp_CurrLink(&rhs.GetNode()),
ml_CurrPos ( rhs.GetPos ())
{}
ZNodekPointN(const ZNodekPointN& rhs) :
mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos )
{}
public :
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)
{
ZNodekPointN VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/
}/*
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)*/
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)
{
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/
}/*
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)
{
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/
}/*
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)*/
public :
TypeListC& GetMain() const{return mr_CurrList;}
TypeLinkC& GetNode() const{return *mp_CurrLink;}
/***************************************************/
TypeSize GetPos () const{return ml_CurrPos ;}
/***************************************************/
bool IsValid() const{return mr_CurrList.size()>0;}
bool IsEmpty() const{return mr_CurrList.size()<1;}
ZNodekPointN& operator= (const ZNodekPointN& rhs){ return *this; }
TypeDataC& operator*() const{return **mp_CurrLink;}
operator TypeLinkC* () const{return mp_CurrLink;}
operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZNodekPointN& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZNodekPointN& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZNodekPointN& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZNodekPointN& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZNodekPointN& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZNodekPointN& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const
{ return ml_CurrPos == AL_Size; }
bool operator != (TypeSize AL_Size) const
{ return ml_CurrPos != AL_Size; }
bool operator > (TypeSize AL_Size) const
{ return ml_CurrPos > AL_Size; }
bool operator >= (TypeSize AL_Size) const
{ return ml_CurrPos >= AL_Size; }
bool operator < (TypeSize AL_Size) const
{ return ml_CurrPos < AL_Size; }
bool operator <= (TypeSize AL_Size) const
{ return ml_CurrPos <= AL_Size; }
const ZNodekPointN& operator++() const
{
mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ;
}/*
const ZNodekPointN& operator++() const*/
ZNodekPointN operator++(int) const
{
ZNodekPointN VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ;
}/*
ZNodekPointN operator++(int) const*/
const ZNodekPointN& operator+=(TypeSize AL_Distance) const
{
if(IsEmpty()){return *this;}
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
ml_CurrPos += AL_Distance ;
return *this; /*:::::::::::::::::::::::::::*/
}/*
const ZNodekPointN& operator+=(TypeSize AL_Distance) const*/
public:
};/*
class ZNodekPointN*/
public :
/*************************************************************/
protected:
TTypSize ml_LinkSize ;
TypeSize ml_LinkSize ;
ZCLink* mp_HeadLink ;
ZCLink* mp_TailLink ; mutable
ZCFreeHeap mo_FreeObjt ;
@ -979,8 +1253,8 @@ namespace ZNsMain
ZtCSimList& CopyLink /*######################################*/
(
const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum ,
ZCLinkC* AP_CopyLink ,
TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs
) const
/*###########################################################*/
@ -1012,8 +1286,8 @@ namespace ZNsMain
}/*
ZtCSimList& CopyLink ##########################################
(
const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum ,
ZCLinkC* AP_CopyLink ,
TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs
) const
#############################################################*/
@ -1056,7 +1330,7 @@ namespace ZNsMain
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
{
if(AP_CutLink==mp_HeadLink)
{
@ -1087,14 +1361,14 @@ namespace ZNsMain
return (--ml_LinkSize, AP_CutLink);
}/*
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
ZtCSimList& CutLink /*###############################*/
(
ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead , TTypSize AL_CutHeadPos,
ZCLink* AP_CutTail , TTypSize AL_CutTailPos,
ZCLink* AP_CutHead , TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail , TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList
)
/*###################################################*/
@ -1141,8 +1415,8 @@ namespace ZNsMain
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl;
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl;
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,"<<std::endl;
fileout<<" ZCLink* AP_CutTail, TypeSize AL_CutTailPos" <<std::endl;
fileout<<" /****************/ )" <<std::endl;
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
fileout.close();
@ -1161,14 +1435,14 @@ namespace ZNsMain
ZtCSimList& CutLink ///////////////////////////////
(
ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos,
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList
)
/////////////////////////////////////////////////*/
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
{
if(AL_DefaultSize<=0) return ARR_StoreList;
@ -1185,7 +1459,7 @@ namespace ZNsMain
return ARR_StoreList;
}/*
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
protected: */
@ -1248,17 +1522,17 @@ namespace ZNsMain
ZtCSimList& operator()(TypeArg AR_Type)*/
TType& operator[](TTypSize AL_Index)
TType& operator[](TypeSize AL_Index)
{
return GetLinkPtr(AL_Index)->mo_DataObjt;
}/*
TType& operator[](TTypSize AL_Index)*/
TType& operator[](TypeSize AL_Index)*/
const TType& operator[](TTypSize AL_Index) const
const TType& operator[](TypeSize AL_Index) const
{
return GetLinkPtr(AL_Index)->mo_DataObjt;
}/*
const TType& operator[](TTypSize AL_Index) const*/
const TType& operator[](TypeSize AL_Index) const*/
operator TType&(){return AddTailDef()->mo_DataObjt;}
@ -1372,7 +1646,7 @@ namespace ZNsMain
ZCLink* AddTailDef()*/
void AddHeadDef(TTypSize AL_DefaultSize)
void AddHeadDef(TypeSize AL_DefaultSize)
{
if(AL_DefaultSize<1) return;
@ -1382,9 +1656,9 @@ namespace ZNsMain
);
//////////////////////////////////
}/*
void AddHeadDef(TTypSize AL_DefaultSize)*/
void AddHeadDef(TypeSize AL_DefaultSize)*/
void AddTailDef(TTypSize AL_DefaultSize)
void AddTailDef(TypeSize AL_DefaultSize)
{
if(AL_DefaultSize<1) return;
@ -1394,7 +1668,14 @@ namespace ZNsMain
);
//////////////////////////////////
}/*
void AddTailDef(TTypSize AL_DefaultSize)*/
void AddTailDef(TypeSize AL_DefaultSize)*/
TypeData & front() {return mp_HeadLink->mo_DataObjt;}
TypeData & back () {return mp_TailLink->mo_DataObjt;}
TypeDataC& front() const{return mp_HeadLink->mo_DataObjt;}
TypeDataC& back () const{return mp_TailLink->mo_DataObjt;}
ZCLink * GetHeadLinkPtr () {return mp_HeadLink;}
@ -1405,72 +1686,29 @@ namespace ZNsMain
ZCLink * GetTailIterEasy () {return mp_TailLink;}
IterEasyID GetTailIterEasyID () {return (IterEasyID )mp_TailLink;}
TType& front(){return mp_HeadLink->mo_DataObjt;}
TType& back (){return mp_TailLink->mo_DataObjt;}
ZCLinkC* GetHeadLinkPtr () const{return mp_HeadLink;}
ZCLinkC* GetHeadIterEasy () const{return mp_HeadLink;}
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc)mp_HeadLink;}
ZCLinkC* GetTailLinkPtr () const{return mp_TailLink;}
ZCLinkC* GetTailIterEasy () const{return mp_TailLink;}
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)mp_TailLink;}
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc)mp_HeadLink;}
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)mp_TailLink;}
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;}
const ZCLink* GetHeadIterEasy () const{return mp_HeadLink;}
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID)mp_HeadLink;}
void pop_back (TypeArg AR_Type){ return AddHead(AR_Type); }
void push_back(TypeArg AR_Type){ return AddTail(AR_Type); }
const ZCLink* GetTailLinkPtr () const{return mp_TailLink;}
const ZCLink* GetTailIterEasy () const{return mp_TailLink;}
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;}
TypeData & GetHeadData() { return mp_HeadLink->mo_DataObjt; }
TypeDataC& GetHeadData() const{ return mp_HeadLink->mo_DataObjt; }
const TType& front() const{return mp_HeadLink->mo_DataObjt;}
const TType& back () const{return mp_TailLink->mo_DataObjt;}
TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; }
TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; }
void pop_back(TypeArg AR_Type)
{
return AddHead(AR_Type);
}/*
void pop_back(TypeArg AR_Type)*/
void push_back(TypeArg AR_Type)
{
return AddTail(AR_Type);
}/*
void push_back(TypeArg AR_Type)*/
TType& GetHeadData()
{
return mp_HeadLink->mo_DataObjt;
}/*
TType& GetHeadData()*/
const TType& GetHeadData() const
{
return mp_HeadLink->mo_DataObjt;
}/*
const TType& GetHeadData() const*/
TType& GetTailData()
{
return mp_TailLink->mo_DataObjt ;
}/*
TType& GetTailData()*/
const TType& GetTailData() const
{
return mp_TailLink->mo_DataObjt ;
}/*
const TType& GetTailData() const*/
TType& GetData(TTypSize AL_Index)
{
return GetLinkPtr(AL_Index)->mo_DataObjt;
}/*
TType& GetData(TTypSize AL_Index)*/
TType GetData(TTypSize AL_Index) const
{
return GetLinkPtr(AL_Index)->mo_DataObjt;
}/*
TType GetData(TTypSize AL_Index) const*/
TypeData & GetData(TypeSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; }
TypeDataC& GetData(TypeSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; }
void JoinHead(ZCLink* AP_Link)
@ -1586,7 +1824,7 @@ namespace ZNsMain
}/*
void DeleteHead()*/
void DeleteHead(TTypSize AL_DelSize)
void DeleteHead(TypeSize AL_DelSize)
{
// AL_DelSize 개의 링크를 앞 부분에서 삭제
@ -1621,7 +1859,7 @@ namespace ZNsMain
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
}/*
void DeleteHead(TTypSize AL_DelSize)*/
void DeleteHead(TypeSize AL_DelSize)*/
void DeleteTail()
{
@ -1656,18 +1894,18 @@ namespace ZNsMain
}/*
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
{
GetCFreeHeap().RecvFreeIn
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) );
}/*
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
void Delete /*###################################*/
(
ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
)
/*###############################################*/
{
@ -1684,8 +1922,8 @@ namespace ZNsMain
void Delete ///////////////////////////////////////
(
ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
)
/////////////////////////////////////////////////*/
@ -1714,7 +1952,7 @@ namespace ZNsMain
void clear(){DeleteAll();}
TTypSize Find(const ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const
TypeSize Find(ZCLinkC* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const
{
const bool CB_DoStop = //////////////////////
(
@ -1725,7 +1963,7 @@ namespace ZNsMain
if(CB_DoStop) {return 0;} ///////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ;
TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -1742,9 +1980,9 @@ namespace ZNsMain
}
while(true);
}/*
TTypSize Find(ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const*/
TypeSize Find(ZCLink* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const*/
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)
{
const bool CB_DoStop = //////////////////////
(
@ -1755,7 +1993,7 @@ namespace ZNsMain
if(CB_DoStop) return 0; /////////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ;
TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -1772,7 +2010,7 @@ namespace ZNsMain
}
while(true);
}/*
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)*/
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)*/
/*////////////////////////////////////////////////////////////////////////////////////////
@ -1784,40 +2022,29 @@ namespace ZNsMain
////////////////////////////////////////////////////////////////////////////////////////*/
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const
{
return Find(AR_TypeArg, AL_FirstFindIndex);
}/*
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const*/
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const*/
ZCLink* GetLinkPtr(TTypSize AL_Index)
{
return mp_HeadLink->GetNextPtr(AL_Index-1);
}/*
ZCLink* GetLinkPtr(TTypSize AL_Index)*/
ZCLink * GetLinkPtr(TypeSize AL_Index)
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
ZCLinkC* GetLinkPtr(TypeSize AL_Index) const
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
const ZCLink* GetLinkPtr(TTypSize AL_Index) const
{
return mp_HeadLink->GetNextPtr(AL_Index-1);
}/*
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/
ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;}
ZCFreeHeap& GetCFreeHeap() const
{
return mo_FreeObjt;
}/*
ZCFreeHeap& GetCFreeHeap() const*/
inline TTypSize GetSize() const
inline TypeSize GetSize() const
{ return ml_LinkSize; }
inline TTypSize size () const
inline TypeSize size () const
{ return ml_LinkSize; }
inline TTypSize capacity() const
inline TypeSize capacity() const
{ return size()+mo_FreeObjt.size(); }
inline TypeSize GetFreeSize() const
@ -2052,7 +2279,7 @@ namespace ZNsMain
TTypSize AL_WorkDistance,
TFunctor AO_Functor
)
/*#################################################################*/
###################################################################*/
// ******************************************************************
@ -2074,125 +2301,74 @@ namespace ZNsMain
-- 2011-06-07 20:25:00
GetDataInIter() 를 추가했다.
-- 2011-06-12 17:12:00
///////////////////////////////////////////////////////////////////////////*/
void MoveNextIter(ZCLink*& APR_CLink)
{
APR_CLink=APR_CLink->GetNextPtr();
}/*
void MoveNextIter(ZCLink*& APR_CLink)*/
void MoveNextIter(ZCLink* & APR_CLink ) { APR_CLink=APR_CLink->GetNextPtr() ; }
void MoveNextIter(iterator & ARR_iterator ) { ++ARR_iterator ; }
void MoveNextIter(IterEasyID & APPI_IterEasyID)
{
MoveNextIter((ZCLink*&)APPI_IterEasyID);
}/*
void MoveNextIter(IterEasyID& APPI_IterEasyID)*/
void MoveNextIter(const ZCLink*& APR_CLink) const
{
APR_CLink=APR_CLink->GetNextPtr();
}/*
void MoveNextIter(const ZCLink*& APR_CLink) const*/
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const
{
MoveNextIter((const ZCLink*&)APPI_IterEasyID);
}/*
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const*/
TType& GetDataInIter(ZCLink* AP_CLink)
{
return **AP_CLink;
}/*
TType& GetDataInIter(ZCLink* AP_CLink)*/
TType& GetDataInIter(IterEasyID APPI_IterEasyID)
{
return GetDataInIter((ZCLink*)APPI_IterEasyID);
}/*
TType& GetDataInIter(IterEasyID APPI_IterEasyID)*/
const TType& GetDataInIter(const ZCLink* AP_CLink) const
{
return **AP_CLink;
}/*
const TType& GetDataInIter(const ZCLink* AP_CLink) const*/
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const
{
return GetDataInIter((const ZCLink*)APPI_IterEasyID);
}/*
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const*/
{ MoveNextIter((ZCLink* &)APPI_IterEasyID); }
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
ZCLink* ItHEasy() {return mp_HeadLink;}
IterEasyID ItHID () {return (IterEasyID)mp_HeadLink;}
void MoveNextIter(ZCLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ; }
void MoveNextIter(iteratorN & ARR_iterator ) const{ ++ARR_iterator ; }
void MoveNextIter(IterEasyIDc& APPI_IterEasyID) const
{ MoveNextIter((ZCLinkC*&)APPI_IterEasyID); }
ZCLink * ItHEasy() {return mp_HeadLink;}
ZCLink * ItTEasy() {return mp_TailLink;}
IterEasyID ItHID () {return (IterEasyID )mp_HeadLink;}
IterEasyID ItTID () {return (IterEasyID )mp_TailLink;}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
const ZCLink* ItHEasy() const{return mp_HeadLink;}
const IterEasyID ItHID () const{return (IterEasyIDc)mp_HeadLink;}
ZCLinkC* ItHEasy() const{return mp_HeadLink;}
ZCLinkC* ItTEasy() const{return mp_TailLink;}
IterEasyIDc ItHID () const{return (IterEasyIDc)mp_HeadLink;}
IterEasyIDc ItTID () const{return (IterEasyIDc)mp_TailLink;}
const ZCLink* ItTEasy() const{return mp_TailLink;}
const IterEasyID ItTID () const{return (IterEasyIDc)mp_TailLink;}
IterEasyIDc ItHIDc () const{return (IterEasyIDc)mp_HeadLink;}
IterEasyIDc ItTIDc () const{return (IterEasyIDc)mp_TailLink;}
void ItNext(ZCLink*& APR_CLink)
{
MoveNextIter(APR_CLink);
}/*
void ItNext(ZCLink*& APR_CLink)*/
void ItNext(IterEasyID& APPI_IterEasyID)
{
MoveNextIter(APPI_IterEasyID);
}/*
void ItNext(IterEasyID& APPI_IterEasyID)*/
void ItNext(const ZCLink*& APR_CLink) const
{
MoveNextIter(APR_CLink);
}/*
void ItNext(const ZCLink*& APR_CLink) const*/
void ItNext(const IterEasyID& APPI_IterEasyID) const
{
MoveNextIter(APPI_IterEasyID);
}/*
void ItNext(const IterEasyID& APPI_IterEasyID) const*/
void ItNext(ZCLink* & APR_CLink ) { MoveNextIter(APR_CLink) ; }
void ItNext(IterEasyID & AH_IterEasyID) { MoveNextIter(AH_IterEasyID); }
void ItNext(iterator & ARR_Iterator ) { ++ARR_Iterator ; }
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void ItNext(ZCLinkC* & APR_CLink ) const{ MoveNextIter(APR_CLink) ; }
void ItNext(IterEasyIDc & AH_IterEasyID) const{ MoveNextIter(AH_IterEasyID); }
void ItNext(iteratorN & ARR_Iterator ) const{ ++ARR_Iterator ; }
TType& ItD(ZCLink* AP_CLink)
{
return **AP_CLink;
}/*
TType& ItD(ZCLink* AP_CLink)*/
TypeData & ItD(ZCLink* AP_CLink ) { return **AP_CLink; }
TypeData & ItD(IterEasyID AH_IterEasyID) { return **((ZCLink *)AH_IterEasyID); }
TypeData & ItD(iterator & ARR_Iterator ) { return *ARR_Iterator; }
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
TypeDataC& ItD(ZCLinkC* AP_CLink ) const{ return **AP_CLink; }
TypeDataC& ItD(IterEasyIDc AH_IterEasyID) const{ return **((ZCLinkC*)AH_IterEasyID); }
TypeDataC& ItD(iteratorN& ARR_Iterator ) const{ return *ARR_Iterator; }
TType& ItD(IterEasyID APPI_IterEasyID)
{
return ItD((ZCLink*)APPI_IterEasyID);
}/*
TType& ItD(IterEasyID APPI_IterEasyID)*/
const TType& ItD(const ZCLink* AP_CLink) const
{
return **AP_CLink;
}/*
const TType& ItD(const ZCLink* AP_CLink) const*/
iterator begin () { return ZCNodePoint (*this); }
iteratorN begin () const{ return ZNodekPointN(*this); }
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
iteratorN end () const{ return ZNodekPointN::MakeTailPoint(*this); }
const TType& ItD(const IterEasyID APPI_IterEasyID) const
{
return ItD((const ZCLink*)APPI_IterEasyID);
}/*
const TType& ItD(const IterEasyID APPI_IterEasyID) const*/
iteratorN cbegin() const{ return ZNodekPointN(*this); }
iteratorN cend () const{ return ZNodekPointN::MakeTailPoint(*this); }
ZCLink * HeadPtr() {return mp_HeadLink;}
ZCLink * TailPtr() {return mp_TailLink;}
ZCLinkC* HeadPtr() const{return mp_HeadLink;}
ZCLinkC* TailPtr() const{return mp_TailLink;}
ZCLink * HeadPtr(TypeSize AI_Distance) {return &((*mp_HeadLink)+AI_Distance);}
ZCLinkC* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
ZCLink & HeadRef() {return *mp_HeadLink;}
ZCLinkC& HeadRef() const{return *mp_HeadLink;}
ZCLink & HeadRef(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;}
ZCLinkC& HeadRef(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;}
public:
};/*

View File

@ -160,7 +160,7 @@ namespace ZNsMain
typedef TypeSize size_type ; // for stl string/wstring
public:
};/*
class ZtCCharType /*#####################################################*/
class ZtCCharType #######################################################*/
@ -307,10 +307,10 @@ namespace ZNsMain
typedef const TTypCh* TypeCharCP ;
typedef const TTypCh* TypeCPChar ;
typedef TTypCh* TypePChar ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef TTypeString ZCTypeString;
typedef ZtCStringBase ZCStringBase;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef ZtCStringBase TypeThis ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
@ -320,20 +320,21 @@ namespace ZNsMain
typedef typename ZCTypeString::TypeLong TypeLong ;
typedef typename ZCTypeString::TypeLong TypeSize ;
typedef typename ZCTypeString::TypeLong TypeLength ;
public:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef typename ZCTypeChars ::ZCChars ZCChars ;
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
public:
typedef const ZCChars ZCCharsC ;
typedef const ZCChars ZCCharViewC ;
public:
typedef TypeChar TypeData ;
typedef ZCStringList TypeList ;
public:
typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ;
typedef typename ZCCharType::TypeInt TypeCharInt;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
typedef ZtCCharType<ZtCStringBase> ZCCharType ;
typedef typename ZCCharType::TypeInt TypeCharInt;
typedef ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
typedef TypeSize size_type ; // for strl string/wstring
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@ -747,7 +748,8 @@ namespace ZNsMain
}
/////////////////////////////////////////////////////////
/*public : /*++++++++++++++++++++++++++++++++++++++++++++++*/
public :
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++*/
protected:
TypeLength ml_AllLen;
TypeLength ml_UseLen;
@ -1063,7 +1065,7 @@ namespace ZNsMain
TypeChar* APC_Buff, TypeLength AL_BuffSize, bool AB_DoEndNull=true
)
const
/*#############################################################################*/
###############################################################################*/
ZCStringBase& Invalid(TypeLength AL_Index=0)
@ -1171,11 +1173,11 @@ namespace ZNsMain
const ZCCharView& AR_View, TypeLength AL_StartPos)*/
ZCStringBase& InvalidSearchFromEnd
ZCStringBase& InvalidSearchFromEnd /*///////////////*/
(
TypeCharC* APC_Search, TypeLength AL_SearchLen
)
/*#################################*/
/*##################################################*/
{
// APC_Search 를 뒤로부터 찾아서 그 부분을 무효화시킨다.
@ -1186,12 +1188,8 @@ namespace ZNsMain
APC_Search, AL_SearchLen, ml_UseLen-1
);
/*<<<<<<<<<<<<<<<<<<<<<<<<<<*/
}/*
ZCStringBase& InvalidSearchFromEnd
(
TypeCharC* APC_Search, TypeLength AL_SearchLen
)
/*###############################*/
}
/*##################################################*/
ZCStringBase& InvalidSearchFromEnd(const ZCCharView& AR_View)
{
@ -1647,21 +1645,13 @@ namespace ZNsMain
ZCStringBase& operator()(ZTypLLong ALL_LLongParam)
{
const int CI_BuffSize= 41; TypeChar VCA_BuffParam[CI_BuffSize] ;
#ifdef _WIN
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%I64d", ALL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%I64d", ALL_LLongParam)
);
#else
int VI_ResultSize =
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%lld" , ALL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%lld" , ALL_LLongParam)
);
#endif
return (*this)(VCA_BuffParam, VI_ResultSize); /*::::::::::::::*/
}/*
ZCStringBase& operator()(ZTypLLong ALL_LLongParam)*/
@ -1669,21 +1659,13 @@ namespace ZNsMain
ZCStringBase& operator()(ZTypULLong AULL_LLongParam)
{
const int CI_BuffSize= 41; TypeChar VCA_BuffParam[CI_BuffSize] ;
#ifdef _WIN
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*+++++++*/ "%I64u", AULL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%I64u", AULL_LLongParam)
);
#else
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%llu" , AULL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%llu" , AULL_LLongParam)
);
#endif
return (*this)(VCA_BuffParam, VI_ResultSize); /*::::::::::::::*/
}/*
ZCStringBase& operator()(ZTypULLong AULL_LLongParam)*/
@ -1819,7 +1801,7 @@ namespace ZNsMain
(
TypeLength AL_Index, TypeCharC* APC_Search, TypeLength AL_SearchLen
)
/*#############################################################################*/
###############################################################################*/
TypeLength ReadLong(TypeLength AL_Index, const ZCCharView& AR_View)
@ -1859,7 +1841,7 @@ namespace ZNsMain
);
/*///////////////////////////////////////////////*/
if(CB_IsTrue) return ARR_Rhs; return
if(CB_IsTrue){return ARR_Rhs;} return
ARR_Rhs( mpc_Data+AL_Index1, AL_Index2-AL_Index1+1 );
}/*
@ -1869,7 +1851,7 @@ namespace ZNsMain
TypeLength AL_Index1 ,
TypeLength AL_Index2
)
/*#############################################################################*/
###############################################################################*/
ZCStringBase& ReadCStr //////////////////////////
@ -1991,7 +1973,7 @@ namespace ZNsMain
(
TypeChar AC_SearchChar, TypeChar AC_ReplaceChar, TypeLength AI_StartPos=0
)
/*#############################################################################*/
###############################################################################*/
ZCStringBase& ReplaceOnce /*///////////////////////////////////////////////////*/
@ -2020,7 +2002,7 @@ namespace ZNsMain
TypeLength AL_SearchLen, TypeLength AL_ReplaceLen,
TypeLength AL_StartPos=0
)
/*#############################################################################*/
###############################################################################*/
ZCStringBase& ReplaceOnce /*///////////////////////////////////////////////////*/
(
@ -2227,7 +2209,7 @@ namespace ZNsMain
for(int j=AL_SectPos-1; j>=0; --j)
{
*VPC_Dest-- = APC_Origin[j] ;
}/*
}
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
ARR_Rhs.data()[VL_AllMemSize]=0;
@ -2401,7 +2383,7 @@ namespace ZNsMain
AR_Origin.size(), AR_Replace.size()
);
//////////////////////////
}/*
}
/*############################################################################*/
@ -2953,7 +2935,7 @@ namespace ZNsMain
(
TypeLength AL_Index, TypeLength AL_Count, ZCStringBase& ARR_Rhs
)
/*#############################################################################*/
###############################################################################*/
static ZCStringBase& GetSubSearch /*##########################################*/
@ -3621,7 +3603,7 @@ namespace ZNsMain
TypeLength AL_OriginLen ,
TypeLength AL_SearchLen
)
/*###############################################################*/
#################################################################*/
template<typename TFunctor> void Split( //////////////////////////
@ -3799,7 +3781,7 @@ namespace ZNsMain
/* bool AB_DoExecNull 이 true 이면 구분 문자로 잘린 문자열 길이
가 0 인 경우에도 AO_TFunctor 를 수행한다. */
if(AL_OriginLen<1) return; int VL_SearchCount=0;
if(AL_OriginLen<1){return;} int VL_SearchCount=0;
if(AL_SearchLen<1)
{
@ -3883,7 +3865,7 @@ namespace ZNsMain
TypeLength AL_SearchLen ,
bool AB_DoExecNull =true
)
/*##############################################################*/
################################################################*/
template<typename TFunctor> void SplitEach /*/////////////////////////////////*/
@ -4049,7 +4031,7 @@ namespace ZNsMain
bool AB_DoAppendEachLink=false,
bool AB_DoAppendEmpty =false
)
/*#############################################################*/
###############################################################*/
template<typename TStringList>
@ -4578,7 +4560,7 @@ namespace ZNsMain
for(k=0; k<AL_SearchMinLen; ++k)
{
if(*VPC_CloseChar++ != *VPC_SearchChar++) break; ++VL_ClosePos;
if(*VPC_CloseChar++ != *VPC_SearchChar++){break;} ++VL_ClosePos;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
@ -4739,7 +4721,7 @@ namespace ZNsMain
for(k=0; k<AL_SearchMinLen; ++k)
{
if(*VPC_CloseChar++ != *VPC_SearchChar++) break; ++VL_ClosePos;
if(*VPC_CloseChar++ != *VPC_SearchChar++){break;} ++VL_ClosePos;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
@ -4749,7 +4731,7 @@ namespace ZNsMain
{
for(k=AL_SearchMinLen; k<VL_SearchLen; ++k)
{
if(*VPC_CloseChar++ != *VPC_SearchChar++) break; ++VL_ClosePos;
if(*VPC_CloseChar++ != *VPC_SearchChar++){break;} ++VL_ClosePos;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
}/*
@ -4816,7 +4798,7 @@ namespace ZNsMain
TypeLength AL_OriginLen ,
TypeLength AL_SearchMinLen=1
)
/*##############################################################*/
################################################################*/
template<typename TSaveList, typename TFindList>
@ -4928,7 +4910,7 @@ namespace ZNsMain
TypeLength AL_Search2Len ,
bool AB_DoIncludeSearch=false
)
/*##############################################################*/
################################################################*/
ZCStringList& ExtractBetweenToList /*##########################*/
@ -4962,7 +4944,7 @@ namespace ZNsMain
TypeLength AL_Search2Len ,
bool AB_DoIncludeSearch=false
)
/*##############################################################*/
################################################################*/
ZCStringList& ExtractBetweenToList /*###########################*/
@ -5869,7 +5851,7 @@ namespace ZNsMain
for(; j<AL_SearchLen; ++j)
{ if(APC_Origin[i+j]!=APC_Search[j]) break; }
if(j==AL_SearchLen) return i; --i;
if(j==AL_SearchLen){return i;} --i;
}/*
while(i>=0)*/
@ -5938,7 +5920,7 @@ namespace ZNsMain
const bool CB_IsBad = (
AL_OriginLen<1 || AL_StartPos>=AL_OriginLen || AR_SearchList.size()<1 );
if(CB_IsBad) return -1; TypeLength VL_SearchCnt=AR_SearchList.size();
if(CB_IsBad){return -1;} TypeLength VL_SearchCnt=AR_SearchList.size();
for(TypeLength i=AL_StartPos; i<AL_OriginLen; ++i)
{
@ -6855,7 +6837,7 @@ namespace ZNsMain
ZCStringBase& ARR_CStrNoExt, ZCStringBase& ARR_CStrExt,
TypeCharC* APC_FullPath , TypeLength AL_FullPathLen
)
/*#############################################################################*/
###############################################################################*/
static void SplitPath(
ZCStringBase& ARR_CStrNoExt, ZCStringBase& ARR_CStrExt, TypeCharC* APC_FullPath)
@ -6936,7 +6918,7 @@ namespace ZNsMain
(
HANDLE AH_File, ZTypLLong ALL_Offset, DWORD ADW_MoveMethod=FILE_BEGIN
)
/*#############################################################################*/
###############################################################################*/
static inline LARGE_INTEGER To_LARGE_INTEGER (__int64 ALL_Distance)
@ -7090,7 +7072,7 @@ namespace ZNsMain
TypeLength VL_TempPos = mr_CString.
FindPos(APC_FindChars, AL_FindLen, ml_NowPos);
if(VL_TempPos<0) return -1; return ml_NowPos=VL_TempPos;
if(VL_TempPos<0){return -1;} return ml_NowPos=VL_TempPos;
}/*
TypeLength Find(TypeCharC* APC_FindChars, TypeLength AL_FindLen)*/
@ -7114,7 +7096,7 @@ namespace ZNsMain
(APC_FindChars, AL_FindLen, ml_NowPos);
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
if(VL_TempPos<0) return -1; return ml_NowPos=VL_TempPos;
if(VL_TempPos<0){return -1;} return ml_NowPos=VL_TempPos;
}/*
TypeLength Find(TypeCharC* APC_FindChars, TypeLength AL_FindLen)*/
@ -7194,7 +7176,9 @@ namespace ZNsMain
typedef ZtCStringBase
<TTypCh, TAlloc, TAllocSize, TTypeString> ZCStringBase;
typedef typename ZCStringBase::ZCStringList ZCStringList;
typedef typename ZCStringBase::ZCCharView ZCCharView ;
typedef typename ZCStringBase::TypeLength TypeLength ;
typedef typename ZCStringBase::TypeLength TypeSize ;
protected:
typedef ZtCStringEx ZCStringEx ;
protected:
@ -7238,6 +7222,13 @@ namespace ZNsMain
}/*
ZtCStringEx(const TypeChar* APC_Data)*/
ZtCStringEx(const ZCCharView& AR_View) : TypeBase(AR_View)
{
ml_ListBuffAllByte=0;
}/*
ZtCStringEx(const ZCCharView& AR_View)*/
ZCStringEx& operator=(const ZtCStringEx& rhs)
{
if(this==&rhs) return *this;
@ -7480,7 +7471,7 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////////////////////////////*/
if(AR_CStringBase.size()>0) AR_COStream<<AR_CStringBase.data(); return AR_COStream;
if(AR_CStringBase.size()>0){AR_COStream<<AR_CStringBase.data();} return AR_COStream;
}/*
template
<typename TTypCh, typename TAlloc, typename TAllocSize, typename TTypeString>
@ -7628,7 +7619,7 @@ namespace ZNsMain
typename TTypCh , typename TAlloc,
typename TAllocSize, typename TTypeString
>
class ZtCMoveObj /*##################################################
class ZtCMoveObj ####################################################
<
ZtCStringBase<TTypCh, TAlloc, TAllocSize, TTypeString> ,
ZtCStringBase<TTypCh, TAlloc, TAllocSize, TTypeString>&, true

View File

@ -36,7 +36,7 @@ namespace ZNsMain
typedef TypeSize size_type ; // for stl string/wstring
public:
};/*
class ZtCCharType /*#####################################################*/
class ZtCCharType #######################################################*/
@ -362,7 +362,7 @@ namespace ZNsMain
ZtCStringStd& operator()(ZtCStringStd& rhs)
{
if(this==&rhs) return *this; this->append(rhs); return *this;
if(this==&rhs) {return *this;} this->append(rhs); return *this;
}/*
ZtCStringStd& operator()(ZtCStringStd& rhs)*/
@ -472,21 +472,13 @@ namespace ZNsMain
ZtCStringStd& operator()(ZTypLLong ALL_LLongParam)
{
const int CI_BuffSize= 41; TypeChar VCA_BuffParam[CI_BuffSize] ;
#ifdef _WIN
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%I64d", ALL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%I64d", ALL_LLongParam)
);
#else
int VI_ResultSize =
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%lld" , ALL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%lld" , ALL_LLongParam)
);
#endif
return (*this)(VCA_BuffParam, VI_ResultSize); /*::::::::::::::*/
}/*
ZtCStringStd& operator()(ZTypLLong ALL_LLongParam)*/
@ -494,21 +486,13 @@ namespace ZNsMain
ZtCStringStd& operator()(ZTypULLong AULL_LLongParam)
{
const int CI_BuffSize= 41; TypeChar VCA_BuffParam[CI_BuffSize] ;
#ifdef _WIN
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*+++++++*/ "%I64u", AULL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%I64u", AULL_LLongParam)
);
#else
int VI_ResultSize = /*::::::::::::::::::::::::::::::::::::::::*/
(
sizeof(TypeChar)<=1
? ::sprintf ((char* )VCA_BuffParam, /*++++++++*/ "%llu" , AULL_LLongParam)
: ::swprintf((wchar_t*)VCA_BuffParam, CI_BuffSize, L"%llu" , AULL_LLongParam)
);
#endif
return (*this)(VCA_BuffParam, VI_ResultSize); /*::::::::::::::*/
}/*
ZtCStringStd& operator()(ZTypULLong AULL_LLongParam)*/
@ -538,9 +522,10 @@ namespace ZNsMain
public:
};/*
template
template //////////////////////////////////////////////////////////
< typename TTypString = std::string >
class ZtCStringStd : public TTypString */
class ZtCStringStd
#################################################################*/
typedef ZtCStringStd<std::string > ZCStringStd ;

View File

@ -264,7 +264,7 @@ namespace ZNsMain
}/*
template<typename TViewClass> ZNsMain::ZNsEnum::ZERun IterPreOrder
(TViewClass& AR_CViewClass, TypeSize AI_StartDepth=0, TypeSize AI_NodeIndex=0)
/*##############################################################*/
################################################################*/
template<typename TViewClass> ZNsMain::ZNsEnum::ZERun IterPostOrder
( TViewClass& AR_CViewClass, TypeSize AI_StartDepth=0, TypeSize AI_NodeIndex=0 )
@ -318,7 +318,7 @@ namespace ZNsMain
}/*
template<typename TViewClass> ZNsMain::ZNsEnum::ZERun IterPostOrder
(TViewClass& AR_CViewClass, TypeSize AI_StartDepth=0, TypeSize AI_NodeIndex=0)
/*###############################################################*/
#################################################################*/
public:
};/*
@ -470,6 +470,7 @@ namespace ZNsMain
■ class ZtCTreeData 예제 -- 2015-08-14 14:00
#include <iostream>
#include "ZCppMain/ZtCStringEx.H"
#include "ZCppMain/ZtCTreeData.H"
using namespace std ;

View File

@ -89,8 +89,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZMainCGI_000_EnvSet.exe ZMainCGI_000_EnvSet.cpp -I../
g++ -std=c++98 -o ZMainCGI_000_EnvSet_D.exe ZMainCGI_000_EnvSet.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZMainCGI_000_EnvSet.exe ZMainCGI_000_EnvSet.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZMainCGI_000_EnvSet_D.exe ZMainCGI_000_EnvSet.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -218,8 +218,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZtCArray_000.exe ZtCArray_000.cpp -I../
g++ -std=c++98 -o ZtCArray_000_D.exe ZtCArray_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCArray_000.exe ZtCArray_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCArray_000_D.exe ZtCArray_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -111,7 +111,12 @@ namespace ZNsMain
>;
///////////////////////////////////////////////////////////////////////////
/*****************************************************************************/
typedef typename ZCBaseList::ZCLink ZCLink ;
/*****************************************************************************/
typedef typename ZCBaseList::iterator iterator ;
typedef typename ZCBaseList::const_iterator const_iterator;
/*****************************************************************************/
public :
@ -216,8 +221,13 @@ namespace ZNsMain
>;
///////////////////////////////////////////////////////////////////////////
typedef typename ZCBaseList::ZCLink ZCLink;
/*****************************************************************************/
typedef typename ZCBaseList::ZCLink ZCLink ;
/*****************************************************************************/
typedef typename ZCBaseList::iterator iterator ;
typedef typename ZCBaseList::const_iterator const_iterator;
/*****************************************************************************/
public :
_VT_ ZTypLong capacity() const
@ -366,8 +376,59 @@ namespace ZNsMain
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/
class ZCTypeView
{
public:
template<typename TTypChain> void OnMeetType()
{
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TTypChain, typename TTypHelp> void OnMeetType(int& AR_CallNo)
{
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
};/*
class ZCTypeView*/
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
typedef ZtCTypeChain
<
double , ZtCTypeChain<
int , ZtCTypeChain<
wchar_t, ZtCTypeChain<
char ,
ZCEmpty > > >
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
int VI_CallNo = 0;
cout<<"*** tmpl chain size = "<<ZCTypeChain::Size()<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
ZTypLong VI_CallCnt=0;
CStringBase VO_CStringBase;
@ -548,6 +609,267 @@ namespace ZNsMain
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLinkNext(1th)"<<endl;
VO_ZCBaseListEx10_2.SwapLinkNext(VO_ZCBaseListEx10_2.HeadRef());
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLinkNext(last)"<<endl;
VO_ZCBaseListEx10_2.SwapLinkNext(VO_ZCBaseListEx10_2.TailRef());
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLinkNext(last-1)"<<endl;
VO_ZCBaseListEx10_2.SwapLinkNext(VO_ZCBaseListEx10_2.TailRef(1));
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2 : Iter Rev"<<endl;
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLinkRev(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLinkPrev(2th)"<<endl;
VO_ZCBaseListEx10_2.SwapLinkPrev(VO_ZCBaseListEx10_2.HeadRef(1));
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLinkPrev(last)"<<endl;
VO_ZCBaseListEx10_2.SwapLinkPrev(VO_ZCBaseListEx10_2.TailRef());
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(1th, 4th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(), VO_ZCBaseListEx10_2.HeadRef(3) );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(2th, 1th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(1), VO_ZCBaseListEx10_2.HeadRef() );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(2th, 5th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(1), VO_ZCBaseListEx10_2.HeadRef(4) );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(4th, 5th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(3), VO_ZCBaseListEx10_2.HeadRef(4) );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(6th, 2th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(5), VO_ZCBaseListEx10_2.HeadRef(1) );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(6th, 5th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(5), VO_ZCBaseListEx10_2.HeadRef(4) );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SwapLink(6th, 1th)"<<endl;
VO_ZCBaseListEx10_2.SwapLink
( VO_ZCBaseListEx10_2.HeadRef(5), VO_ZCBaseListEx10_2.HeadRef() );
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkHead(2th)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkHead( VO_ZCBaseListEx10_2.HeadRef(1));
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkTail(1th)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkTail( VO_ZCBaseListEx10_2.HeadRef());
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkAfter(1th, 6th)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkAfter
( VO_ZCBaseListEx10_2.HeadRef(), VO_ZCBaseListEx10_2.HeadOpt(5));
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkBefore(5th, 1th)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkBefore
( VO_ZCBaseListEx10_2.HeadRef(4), VO_ZCBaseListEx10_2.HeadOpt());
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkAfter(1th, 2th)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkAfter
( VO_ZCBaseListEx10_2.HeadRef(), VO_ZCBaseListEx10_2.HeadOpt(1));
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInAfter(1th~3th => 6th)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeInAfter
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadOpt(5)
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInBefore(4th~6th => 1th)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeInBefore
(
VO_ZCBaseListEx10_2.HeadRef(3),
VO_ZCBaseListEx10_2.HeadRef(5),
VO_ZCBaseListEx10_2.HeadOpt( )
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it() show "<<endl;
__for_it(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it_r() show "<<endl;
__for_it_r(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<endl<<"# VO_ZCBaseListEx10_2 for_itc() show "<<endl;
__for_itc(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<"*****************************************************"<<endl;
_FOR_ITER_EASY_START0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
{
cout<<"# list10_2 const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
cout<<"*****************************************************"<<endl;
_FOR_ITER_EASY_START0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
{
cout<<"# list10_2 rev const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
cout<<"*****************************************************"<<endl;
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 3th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(3th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(6th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(5),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(1th, 3th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(5th, 6th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef(4),
VO_ZCBaseListEx10_2.HeadRef(5),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(2th, 3th, 4th after)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(3),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
@ -582,8 +904,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ mingw 컴파일
g++.exe -o ZtCBaseList_000_mw.exe ZtCBaseList_000.cpp -I../ -lWs2_32
g++.exe -o ZtCBaseList_000_mw_D.exe ZtCBaseList_000.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -o ZtCBaseList_000_mw.exe ZtCBaseList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation
g++.exe -o ZtCBaseList_000_mw_D.exe ZtCBaseList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
./ZtCBaseList_000_mw.exe
./ZtCBaseList_000_mw_D.exe
@ -603,8 +925,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZtCBaseList_000.exe ZtCBaseList_000.cpp -I../
g++ -std=c++98 -o ZtCBaseList_000_D.exe ZtCBaseList_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCBaseList_000.exe ZtCBaseList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCBaseList_000_D.exe ZtCBaseList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -74,7 +74,11 @@ namespace ZNsMain
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
if(VO_StrLinkOpt.has_value())
{
cout<<"# value by VO_StrLinkOpt : "<<VO_StrLinkOpt.value()<<endl;
cout<<"# value by VO_StrLinkOpt() : "<<VO_StrLinkOpt() <<endl;
}/*
if(VO_StrLinkOpt.has_value())*/
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
@ -208,8 +212,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
<EFBFBD><EFBFBD> Linux <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g++ -std=c++98 -o ZtCLinkList_000.exe ZtCLinkList_000.cpp -I../
g++ -std=c++98 -o ZtCLinkList_000_D.exe ZtCLinkList_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCLinkList_000.exe ZtCLinkList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCLinkList_000_D.exe ZtCLinkList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -1,4 +1,4 @@

#include <iostream>
#include <string>
@ -71,12 +71,14 @@ namespace ZNsMain
typedef ZNsIFaceEx::ZtCLink
<ZCEmpty, ZCLinkData> ZCLinkBase;
typedef ZNsIFaceEx::ZtCLink
<string , ZCEmpty > ZCLinkStr ;
public:
typedef ZCLinkData ZCLinkCStr ;
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList;
typedef ZtCLinkList<ZCLinkBase> ZCLinkDataList;
typedef ZtCLinkList<ZCLinkStr > ZCLinkStrList ;
typedef typename
ZCLinkStrList::ZCLinkOpt ZCStrLinkOpt ;
ZCLinkDataList::ZCLinkOpt ZCStrLinkOpt ;
public:
@ -109,115 +111,220 @@ namespace ZNsMain
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
ZTypLong VI_CallCnt =0 ;
ZCLinkStrList VO_ZCLinkStrLis1;
ZCLinkStrList VO_ZCLinkStrLis2;
ZCStrLinkOpt VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
ZCLinkDataList VO_CDataList1;
ZCLinkDataList VO_CDataList2;
ZCLinkStrList VO_CStrLis20 ;
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
VO_ZCLinkStrLis1.AddTail()().GetData()=string("123");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("ABC");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("xyz");
VO_CDataList1.AddTail()().GetData()=string("123");
VO_CDataList1.AddTail()().GetData()=string("ABC");
VO_CDataList1.AddTail()().GetData()=string("xyz");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z01");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z02");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z03");
VO_CDataList2.AddTail()().GetData()=string("Z01");
VO_CDataList2.AddTail()().GetData()=string("Z02");
VO_CDataList2.AddTail()().GetData()=string("Z03");
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
VO_CStrLis20.AddTail()()=string("__1");
VO_CStrLis20.AddTail()()=string("__2");
VO_CStrLis20.AddTail()()=string("__3");
VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
if(VO_StrLinkOpt.has_value())
{
cout<<"# value by VO_StrLinkOpt : "<<VO_StrLinkOpt.value()().GetData()<<endl;
cout<<"# value by VO_StrLinkOpt() : "<<VO_StrLinkOpt() ().GetData()<<endl;
}/*
if(VO_StrLinkOpt.has_value())*/
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
VO_StrLinkOpt = VO_CDataList1.GetTailOpt();
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
if(VO_StrLinkOpt.has_value())
{
cout<<"# value by VO_StrLinkOpt : "<<VO_StrLinkOpt.value()().GetData()<<endl;
cout<<"# value by VO_StrLinkOpt() : "<<VO_StrLinkOpt() ().GetData()<<endl;
}/*
if(VO_StrLinkOpt.has_value())*/
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2);
VO_CDataList1.JoinHead(VO_CDataList2);
cout<<"# after VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2)"<<endl;
cout<<"# after VO_CDataList1.JoinHead(VO_CDataList2)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1 ;
VO_CDataList2 = VO_CDataList1 ;
cout<<"# after VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1"<<endl;
cout<<"# after VO_CDataList2 = VO_CDataList1"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&AppendEach);
VO_CDataList1.IterElement(&AppendEach);
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SendRangeOutAfter
VO_CDataList1.SendRangeOutAfter
(
VO_ZCLinkStrLis1.GetObjOpt(1).value()
, VO_ZCLinkStrLis1.GetObjOpt(2).value()
VO_CDataList1.GetObjOpt(1).value()
, VO_CDataList1.GetObjOpt(2).value()
, 2
, VO_ZCLinkStrLis2
, VO_ZCLinkStrLis2.GetObjOpt(1)
, VO_CDataList2
, VO_CDataList2.GetObjOpt(1)
) ;
cout<<"# after VO_ZCLinkStrLis1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
cout<<"# after VO_CDataList1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.SendRangeOutBefore
VO_CDataList2.SendRangeOutBefore
(
VO_ZCLinkStrLis2.GetObjOpt(7).value()
, VO_ZCLinkStrLis2.GetObjOpt(8).value()
VO_CDataList2.GetObjOpt(7).value()
, VO_CDataList2.GetObjOpt(8).value()
, 2
, VO_ZCLinkStrLis1
, VO_ZCLinkStrLis1.GetObjOpt(1)
, VO_CDataList1
, VO_CDataList1.GetObjOpt(1)
) ;
cout<<"# after VO_ZCLinkStrLis2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
cout<<"# after VO_CDataList2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) );
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl;
VO_CDataList2.CopyThis( RR(VO_CDataList1) );
cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveLinkTail
(VO_CDataList1.HeadRef());
cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
_FOR_ITER_EASY_START0_C (VO_CDataList1, VH_NowIter, i)
{
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
}
_FOR_ITER_EASY_CLOSE0_C (VO_CDataList1, VH_NowIter, i)
cout<<"***********************************************"<<endl;
_FOR_ITER_EASY_START0_RC(VO_CDataList1, VH_NowIter, i)
{
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
}
_FOR_ITER_EASY_CLOSE0_RC(VO_CDataList1, VH_NowIter, i)
cout<<"***********************************************"<<endl;
__for_it(ZCLinkDataList, VO_CDataList1, VH_NowIter)
{
cout<<"# list1 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter).GetData()<<endl;
}
cout<<"***********************************************"<<endl;
__for_it(ZCLinkStrList , VO_CStrLis20, VH_NowIter)
{
cout<<"# list20 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter)<<endl;
}
_FOR_ITER_EASY_START0_C(VO_CStrLis20, VH_NowIter, i)
{
cout<<"# list20 const: "<<(i+1)<<" "<<VO_CStrLis20.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_C(VO_CStrLis20, VH_NowIter, i)
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef( ),
VO_CDataList1.HeadRef(1 ),
VO_CDataList1.HeadRef(11),
true
);
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 12th, after)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef(1 ),
VO_CDataList1.HeadRef(11),
VO_CDataList1.HeadRef( ),
false
);
cout<<"# after VO_CDataList1.MoveRangeIn(2th, 12th, 1th, before)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef( ),
VO_CDataList1.HeadRef(1),
VO_CDataList1.HeadRef(2),
false
);
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 3th, before)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
return 0;
}/*
@ -252,15 +359,15 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
/*////////////////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD> cygwin <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cygwin 컴파일
// g++ -mno-cygwin -o ZtCLinkList_001.exe ZtCLinkList_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
// g++ -mno-cygwin -o ZtCLinkList_001_D.exe ZtCLinkList_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
<EFBFBD><EFBFBD> mingw <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mingw 컴파일
g++.exe -o ZtCLinkList_001_mw.exe ZtCLinkList_001.cpp -I../ -lWs2_32
g++.exe -o ZtCLinkList_001_mw_D.exe ZtCLinkList_001.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -o ZtCLinkList_001_mw.exe ZtCLinkList_001.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation
g++.exe -o ZtCLinkList_001_mw_D.exe ZtCLinkList_001.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
./ZtCLinkList_001_mw.exe
./ZtCLinkList_001_mw_D.exe
@ -278,10 +385,10 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
<EFBFBD><EFBFBD> Linux <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Linux 컴파일
g++ -std=c++98 -o ZtCLinkList_001.exe ZtCLinkList_001.cpp -I../
g++ -std=c++98 -o ZtCLinkList_001_D.exe ZtCLinkList_001.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCLinkList_001.exe ZtCLinkList_001.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCLinkList_001_D.exe ZtCLinkList_001.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
@ -316,7 +423,7 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
■ 실행
./ZtCLinkList_001.exe
./ZtCLinkList_001_D.exe

View File

@ -72,7 +72,11 @@ namespace ZNsMain
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
if(VO_StrLinkOpt.has_value())
{
cout<<"# value by VO_StrLinkOpt : "<<VO_StrLinkOpt.value()<<endl;
cout<<"# value by VO_StrLinkOpt() : "<<VO_StrLinkOpt() <<endl;
cout<<"# value by VO_StrLinkOpt()(): "<<VO_StrLinkOpt() <<endl;
}
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
@ -80,7 +84,11 @@ namespace ZNsMain
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
if(VO_StrLinkOpt.has_value())
{
cout<<"# value by VO_StrLinkOpt : "<<VO_StrLinkOpt.value()<<endl;
cout<<"# value by VO_StrLinkOpt() : "<<VO_StrLinkOpt() <<endl;
cout<<"# value by VO_StrLinkOpt()(): "<<VO_StrLinkOpt()() <<endl;
}
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
@ -216,8 +224,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
<EFBFBD><EFBFBD> Linux <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g++ -std=c++98 -o ZtCLinkMoveList_000.exe ZtCLinkMoveList_000.cpp -I../
g++ -std=c++98 -o ZtCLinkMoveList_000_D.exe ZtCLinkMoveList_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCLinkMoveList_000.exe ZtCLinkMoveList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCLinkMoveList_000_D.exe ZtCLinkMoveList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -0,0 +1,140 @@
#include <string>
#include <iostream>
#include "ZCppMain/ZtCLinkList.H"
using namespace std;
namespace ZNsMain
{
namespace ZNsExam
{
class ZCLinkEx :
public ZtCLink<ZCEmpty, ZCLinkEx>
{
};
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
typedef ZtCLink<ZCEmpty, ZCEmpty> ZCLink1;
typedef ZtCLink<string , ZCEmpty> ZCLink2;
typedef ZtCLink<ZCEmpty, string > ZCLink3;
typedef ZtCLink<string , string > ZCLink4;
typedef ZCLinkEx ZCLink5;
cout<<"# ZCLink1::TypeThis -> "<<typeid(ZCLink1::TypeThis ).name()<<endl;
cout<<"# ZCLink1::TypeBase -> "<<typeid(ZCLink1::TypeBase ).name()<<endl;
cout<<"# ZCLink1::TypeChild-> "<<typeid(ZCLink1::TypeChild).name()<<endl;
cout<<"**********************************************************"<<endl;
cout<<"# ZCLink2::TypeThis -> "<<typeid(ZCLink2::TypeThis ).name()<<endl;
cout<<"# ZCLink2::TypeBase -> "<<typeid(ZCLink2::TypeBase ).name()<<endl;
cout<<"# ZCLink2::TypeChild-> "<<typeid(ZCLink2::TypeChild).name()<<endl;
cout<<"**********************************************************"<<endl;
cout<<"# ZCLink3::TypeThis -> "<<typeid(ZCLink3::TypeThis ).name()<<endl;
cout<<"# ZCLink3::TypeBase -> "<<typeid(ZCLink3::TypeBase ).name()<<endl;
cout<<"# ZCLink3::TypeChild-> "<<typeid(ZCLink3::TypeChild).name()<<endl;
cout<<"**********************************************************"<<endl;
cout<<"# ZCLink4::TypeThis -> "<<typeid(ZCLink4::TypeThis ).name()<<endl;
cout<<"# ZCLink4::TypeBase -> "<<typeid(ZCLink4::TypeBase ).name()<<endl;
cout<<"# ZCLink4::TypeChild-> "<<typeid(ZCLink4::TypeChild).name()<<endl;
cout<<"**********************************************************"<<endl;
cout<<"# ZCLink5::TypeThis -> "<<typeid(ZCLink5::TypeThis ).name()<<endl;
cout<<"# ZCLink5::TypeBase -> "<<typeid(ZCLink5::TypeBase ).name()<<endl;
cout<<"# ZCLink5::TypeChild-> "<<typeid(ZCLink5::TypeChild).name()<<endl;
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
}/*
namespace ZNsExam*/
}/*
namespace ZNsMain*/
int main(int AI_ArgCnt, char* APP_ArgVal[])
{
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
}/*
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
/*////////////////////////////////////////////////////////////////////////////////////////
■ cygwin 컴파일
// g++ -mno-cygwin -o ZtCLink_001.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
// g++ -mno-cygwin -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
■ mingw 컴파일
g++.exe -o ZtCLink_001_mw.exe ZtCLink_001.cpp -I../
g++.exe -o ZtCLink_001_mw_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
./ZtCLink_001_mw.exe
./ZtCLink_001_mw_D.exe
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
# date
Sun Aug 24 10:47:09 KST 2025
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
# g++ --version
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
■ Linux 컴파일
g++ -std=c++98 -o ZtCLink_001.exe ZtCLink_001.cpp -I../
g++ -std=c++98 -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
Sun Aug 24 00:05:51 DST 2025
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[sauron@q381-2657 ZCppMainTest]$ g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
■ 실행
./ZtCLink_001.exe
./ZtCLink_001_D.exe
////////////////////////////////////////////////////////////////////////////////////////*/

View File

@ -117,8 +117,8 @@ namespace ZNsMain
CStringList1 VO_ListOfStr10 ;
CStringList2 VO_ListOfStr20 ;
ZCDataOpt1 VO_ZCDataOpt1 = VO_ListOfStr10.GetHeadDataOpt() ;
ZCLinkOpt1 VO_ZCLinkOpt1 = VO_ListOfStr10.GetTailLinkOpt() ;
ZCDataOpt1 VO_ZCDataOpt1 = VO_ListOfStr10.HeadOptD() ;
ZCLinkOpt1 VO_ZCLinkOpt1 = VO_ListOfStr10.TailOpt() ;
if(bool(VO_ZCDataOpt1))
cout<<"# VO_ListOfStr10's head data : " <<*VO_ZCDataOpt1<<endl;
@ -136,8 +136,8 @@ namespace ZNsMain
cout<<"# VO_CStringBase data : " <<VO_CStringBase<<endl;
VO_ZCDataOpt1 = VO_ListOfStr10.GetHeadDataOpt() ;
VO_ZCLinkOpt1 = VO_ListOfStr10.GetTailLinkOpt() ;
VO_ZCDataOpt1 = VO_ListOfStr10.HeadOptD() ;
VO_ZCLinkOpt1 = VO_ListOfStr10.TailOpt() ;
if(bool(VO_ZCDataOpt1))
cout<<"# VO_ListOfStr10's head data : " <<*VO_ZCDataOpt1<<endl;
@ -357,6 +357,79 @@ namespace ZNsMain
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.Rotate();
cout<<"# list11 Rotate() ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
cout<<"*****************************************************"<<endl;
cout<<"# list11 IterElemLinkRev() ################"<<endl;
VO_ListOfStr11.IterElemLinkRev(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
cout<<"*****************************************************"<<endl;
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(1)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveLinkIn(1th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(5)
, *VO_ListOfStr11.GetLinkPtr(1)
, false
);
cout<<"# list11 MoveLinkIn(5th, 1th, before)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(6)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveLinkIn(6th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveRangeIn
(
*VO_ListOfStr11.GetLinkPtr(1)
, *VO_ListOfStr11.GetLinkPtr(2)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveRangeIn(1th, 2th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
typedef CStringList1::iterator iterator1 ;
//typedef CStringList1::ZCLinkPointEx iteratorEx1;
typedef CStringList1::ZCNodePointN iteratorN1 ;
iterator1 VO_Iter1 = VO_ListOfStr11.end();
//iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
iteratorN1 VO_IterN1(VO_Iter1);
__for_itc (CStringList1, VO_ListOfStr11, VO_NowIter)
{
cout<<"(by for_itc ) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
}
__for_it_r(CStringList1, VO_ListOfStr11, VO_NowIter)
{
cout<<"(by for_it_r) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
}
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
@ -391,8 +464,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ mingw 컴파일
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas -D_DEBUG
./ZtCObjList_000_mw.exe
./ZtCObjList_000_mw_D.exe
@ -412,8 +485,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZtCObjList_000.exe ZtCObjList_000.cpp -I../
g++ -std=c++98 -o ZtCObjList_000_D.exe ZtCObjList_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCObjList_000.exe ZtCObjList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder
g++ -std=c++98 -o ZtCObjList_000_D.exe ZtCObjList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -293,8 +293,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZtCSimList_000.exe ZtCSimList_000.cpp -I../
g++ -std=c++98 -o ZtCSimList_000_D.exe ZtCSimList_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCSimList_000.exe ZtCSimList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCSimList_000_D.exe ZtCSimList_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -240,8 +240,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ mingw 컴파일
g++.exe -o ZtCStringBase_000_mw.exe ZtCStringBase_000.cpp -I../ -lWs2_32
g++.exe -o ZtCStringBase_000_mw_D.exe ZtCStringBase_000.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -o ZtCStringBase_000_mw.exe ZtCStringBase_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation
g++.exe -o ZtCStringBase_000_mw_D.exe ZtCStringBase_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
./ZtCStringBase_000_mw.exe
./ZtCStringBase_000_mw_D.exe
@ -264,6 +264,9 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
g++ -std=c++98 -o ZtCStringBase_000.exe ZtCStringBase_000.cpp -I../
g++ -std=c++98 -o ZtCStringBase_000_D.exe ZtCStringBase_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCStringBase_000.exe ZtCStringBase_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCStringBase_000_D.exe ZtCStringBase_000.cpp -I../ -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.

View File

@ -172,6 +172,9 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
g++.exe -std=c++98 -o ZtCThreadEx_002_MutexCond_mw.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lWs2_32
g++.exe -std=c++98 -o ZtCThreadEx_002_MutexCond_mw_D.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -std=c++98 -o ZtCThreadEx_002_MutexCond_mw.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lWs2_32
g++.exe -std=c++98 -o ZtCThreadEx_002_MutexCond_mw_D.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lWs2_32 -D_DEBUG
./ZtCThreadEx_002_MutexCond_mw.exe
./ZtCThreadEx_002_MutexCond_mw_D.exe
@ -190,8 +193,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ Linux 컴파일
g++ -std=c++98 -o ZtCThreadEx_002_MutexCond.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lpthread
g++ -std=c++98 -o ZtCThreadEx_002_MutexCond_D.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lpthread -D_DEBUG
g++ -std=c++98 -o ZtCThreadEx_002_MutexCond.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lpthread -Wall -Wno-unused-function -Wno-misleading-indentation
g++ -std=c++98 -o ZtCThreadEx_002_MutexCond_D.exe ZtCThreadEx_002_MutexCond.cpp -I../ -lpthread -Wall -Wno-unused-function -Wno-misleading-indentation -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0

View File

@ -0,0 +1,317 @@
#include <iostream>
#include <string>
#include "ZCppMain/ZMainHead.H"
using namespace std ;
using namespace ZNsMain;
namespace ZNsMain
{
namespace ZNsExam
{
template<typename TType> class ZtCTest
{
public:
template<TType TTypeVar> class ZCTypeVar
{
public:
TType MO_TypeVar;
public:
ZCTypeVar()
{
MO_TypeVar=TTypeVar;
}
public:
};/*
template<TType TTypeVar> class ZCTypeVar*/
public:
};/*
template<typename TType> class ZtCTest*/
template<typename TType, TType TTypeVar> class ZtCTest2
{
public:
TType MO_TypeVar;
public:
ZtCTest2()
{
MO_TypeVar=TTypeVar;
}
public:
};/*
template<typename TType, TType TTypeVar> class ZtCTest2*/
class ZCTypeView
{
public:
ZCTypeView()
{
cout<<"# ZCTypeView()"<<endl;
}
ZCTypeView(const ZCTypeView& rhs)
{
cout<<"ZCTypeView(const ZCTypeView& rhs)"<<endl;
}
~ZCTypeView()
{
cout<<"# ~ZCTypeView()"<<endl;
}
template<typename TTypChain> void OnMeetType()
{
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TTypChain, typename TTypHelp> void OnMeetType(TTypHelp& AR_CallNo)
{
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TTypChain> void OnMeetTypeVal()
{
cout<<"* Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TTypChain, typename TTypHelp> void OnMeetTypeVal(TTypHelp& AR_CallNo)
{
cout<<"* Call No="<<++AR_CallNo<<" : Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain)
{
cout<<"* Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
}
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain, int& ARI_CallNo)
{
cout<<"# CallNo="<<++ARI_CallNo<<" : Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
}
};/*
class ZCTypeView*/
template<typename TType> class ZCShowType
{
public:
ZCShowType()
{
cout<<"# TType typename="<<typeid(TType).name()<<endl;
}
};
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
ZCShowType<int> myShowType1;
ZCShowType<double> myShowType2;
ZCShowType<ZTypLLong> myShowType3;
//ZCShowType<"abc"> myShowType4; //error
const int CI_Var1=10;
const int CI_Var2=20;
const int CI_Var3=30;
ZtCTest<int>::ZCTypeVar<CI_Var1> myintvar1 ;
ZtCTest2<int, CI_Var2> myintvar2 ;
ZtCTest2<ZTypLLong, CI_Var3> myintvar3 ;
cout<<myintvar1.MO_TypeVar<<endl;
cout<<myintvar2.MO_TypeVar<<endl;
cout<<myintvar3.MO_TypeVar<<endl;
typedef ZtCMiniValChain
<
char , 'a' , ZtCMiniValChain<
char , 'b' , ZtCMiniValChain<
char , 'c' , ZtCMiniValChain<
//double, 10.2 , ZtCMiniValChain< // error in linux
//string, string("123") , ZtCMiniValChain< // error
long , 10 , ZtCMiniValChain<
int , 19 ,
ZCEmpty > > > >
> ZCMiniValChain; ZCTypeView VO_ZCTypeView; int VI_CallNo = 0;
cout<<"# ZCMiniValChain.size()="<<ZCMiniValChain::size()<<endl;
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
cout<<"************************************"<<endl;
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
cout<<"************************************"<<endl;
typedef ZtCTypeChain
<
double , ZtCTypeChain<
int , ZtCTypeChain<
wchar_t, ZtCTypeChain<
char ,
ZCEmpty > > >
> ZCTypeChain;
cout<<"tmpl chain size = "<<ZCTypeChain::Size()<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
cout<<"@** call start : ZCTypeView(rhs) **********@"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
cout<<"@******************************************@"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
cout<<"@*** call close : ZCTypeView(rhs) *********@"<<endl;
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
cout<<"************************************"<<endl;
typedef ZtCDataRing<std::string> ZCDataRing;
ZCDataRing VO_CDataRing = string("123");
VO_CDataRing.AddTail(string("ABC"));
VO_CDataRing.AddTail(string("XYZ"));
cout<<"# VO_CDataRing Size = "<<VO_CDataRing.size()<<endl;
cout<<"# VO_CDataRing Data = "<<VO_CDataRing <<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterThis = "<<endl;
VO_CDataRing.IterThis(&ZftPrint<string>); cout<<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterHead = "<<endl;
VO_CDataRing.IterHead(&ZftPrint<string>); cout<<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterTail = "<<endl;
VO_CDataRing.IterTail(&ZftPrint<string>); cout<<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterThisRev = "<<endl;
VO_CDataRing.IterThisRev(&ZftPrint<string>); cout<<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterThisRev(HelpType char(',')) = "<<endl;
VO_CDataRing.IterThisRev(&ZftPrint<string, char>, char(',')); cout<<endl;
cout<<"************************************"<<endl;
cout<<"# VO_CDataRing IterTail(HelpType char(',')) = "<<endl;
VO_CDataRing.IterTail (&ZftPrint<string, char>, char(',')); cout<<endl;
cout<<"************************************"<<endl;
typedef ZtCDataRing<ZCTypeView> ZCViewRing;
ZCViewRing VO_ZCViewRing;
VO_ZCViewRing.AddTail();
VO_ZCViewRing.AddTail();
VO_ZCViewRing.DeleteAll();
cout<<"************************************"<<endl;
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
}/*
namespace ZNsExam*/
}/*
namespace ZNsMain*/
int main(int AI_ArgCnt, char* APP_ArgVal[])
{
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
}/*
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
/*////////////////////////////////////////////////////////////////////////////////////////
■ cygwin 컴파일
// g++ -mno-cygwin -o c++_test_006.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
// g++ -mno-cygwin -o c++_test_006_D.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
■ mingw 컴파일
g++.exe -o c++_test_006_mw.exe c++_test_006.cpp -I../
g++.exe -o c++_test_006_mw_D.exe c++_test_006.cpp -I../ -D_DEBUG
./c++_test_006_mw.exe
./c++_test_006_mw_D.exe
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
# date
Sun Aug 24 10:47:09 KST 2025
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
# g++ --version
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
■ Linux 컴파일
g++ -std=c++98 -o c++_test_006.exe c++_test_006.cpp -I../
g++ -std=c++98 -o c++_test_006_D.exe c++_test_006.cpp -I../ -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
Sun Aug 24 00:05:51 DST 2025
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[sauron@q381-2657 ZCppMainTest]$ g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
■ 실행
./c++_test_006.exe
./c++_test_006_D.exe
////////////////////////////////////////////////////////////////////////////////////////*/