Compare commits

130 Commits

Author SHA1 Message Date
/* 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
14 changed files with 5630 additions and 1925 deletions

File diff suppressed because it is too large Load Diff

View File

@ -7136,7 +7136,6 @@ namespace ZNsMain
{ {
return VI_EmptyBuffCnt; return VI_EmptyBuffCnt;
} }
////////////////
} }
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len) else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
{ {
@ -7167,12 +7166,10 @@ namespace ZNsMain
void MoveFirst() void MoveFirst()
{ {
if(mi_HeadPos<1) return; if(mi_HeadPos<1) return ;
int VI_Index=0 ; int VI_Index= 0, i = mi_HeadPos;
int i =mi_HeadPos; int VI_ValidBuffCnt = GetSize() ;
int VI_ValidBuffCnt=GetSize();
for(; i<=mi_TailPos; ++i) for(; i<=mi_TailPos; ++i)
{ {
@ -7189,8 +7186,7 @@ namespace ZNsMain
}/* }/*
for(i=0; i<mi_HeadPos; ++i)*/ for(i=0; i<mi_HeadPos; ++i)*/
mi_HeadPos=0 ; mi_HeadPos= 0 ; mi_TailPos= VI_ValidBuffCnt-1;
mi_TailPos=VI_ValidBuffCnt-1;
}/* }/*
void MoveFirst()*/ void MoveFirst()*/

View File

@ -17,90 +17,138 @@ namespace ZNsMain
class ZtCArray ////////////////////////// class ZtCArray //////////////////////////
{ {
public: public:
typedef TType Type ; typedef TType Type ;
typedef TType TypeData; typedef TType TypeData ;
typedef TTypArg TypeArg ; typedef TTypArg TypeArg ;
typedef TSize TypeSize; typedef TSize TypeSize ;
public: public:
class ZCDataPoint; class ZCDataPointC; class ZCNodePoint; class ZCNodePointN ;
public: public:
typedef Type* IterEasy; typedef TypeData* IterEasy ;
typedef ZCDataPoint TypeIter; typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
/**********************************************/ typedef ZCNodePoint TypeIter ;
typedef ZtCArray TypeThis ;
typedef const TypeThis TypeThisC ;
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const IterEasy IterEasyC ; typedef const TypeData* TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
typedef const TypeIter TypeIterC ;
typedef const TypeData* IterEasyC ;
/**********************************************/ /**********************************************/
typedef ZCDataPointC iteratorC ; typedef const ZCNodePoint ZCNodePointC;
typedef const ZCNodePoint iteratorC ;
/**********************************************/ /**********************************************/
typedef ZCDataPoint iterator ; typedef ZCNodePoint iterator ;
typedef ZCDataPointC const_iterator; typedef ZCNodePointN const_iterator;
typedef ZCNodePointN iteratorN ;
typedef ZCNodePointN TypeIterN ;
public: public:
class ZCDataPoint class ZCNodePoint
{ {
private: mutable private:
ZtCArray& mr_CArray; mutable
TypeData* mp_Data ; mutable TypeData* mp_Data ; mutable
TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치 TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
ZtCArray& mr_CArray;
public: public:
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) : static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)
{
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; /****************************/
}/*
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)*/
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)
{
ZCNodePoint 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 ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)*/
public:
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
mr_CArray(AR_CArray) mr_CArray(AR_CArray)
/*****************************************************************/ /*****************************************************************/
{ {
mp_Data =&AR_CData ; mp_Data =&AR_CData ;
mr_CArray=&AR_CArray;
ml_ElePos=AL_ElePos ; ml_ElePos=AL_ElePos ;
}/* }/*
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/ ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCDataPoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray) ZCNodePoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{ {
mp_Data = AR_CArray.mp_TypeArr ; mp_Data = AR_CArray.mp_TypeArr ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPoint(ZtCArray& AR_CArray)*/ ZCNodePoint(ZtCArray& AR_CArray)*/
ZCDataPoint(const ZCDataPoint& rhs) : mr_CArray(rhs.mr_CArray) ZCNodePoint(const ZCNodePoint& rhs) : mr_CArray(rhs.mr_CArray)
{ {
mp_Data = rhs.mp_TypeArr ; mp_Data = rhs.mp_Data ;
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 ); ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
}/* }/*
ZCDataPoint(const ZCDataPoint& rhs)*/ ZCNodePoint(const ZCNodePoint& rhs)*/
TypeSize size () const{return mr_CArray.size();}
TypeSize GetPos() const{return ml_ElePos ;} TypeThis & GetMain() {return mr_CArray ;}
TypeNode GetNode() {return mp_Data ;}
TypeThisC& GetMain() const{return mr_CArray ;}
TypeNodeC GetNode() const{return mp_Data ;}
TypeSize GetPos () const{return ml_ElePos ;}
TypeSize size () const{return mr_CArray.size();}
TypeData & operator* () {return *mp_Data;} TypeData & operator* () {return *mp_Data;}
TypeData * operator->() {return mp_Data;} TypeData * operator->() {return mp_Data;}
TypeDataC& operator* () const{return *mp_Data;} TypeDataC& operator* () const{return *mp_Data;}
TypeDataC* operator->() const{return mp_Data;} TypeDataC* operator->() const{return mp_Data;}
ZCDataPoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;} TypeIter & operator++( ) {++mp_Data; ++ml_ElePos; return *this;}
ZCDataPoint operator++(int){++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;}
const ZCDataPoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;} ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCDataPoint operator++(int) 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;}
ZCDataPoint operator+(TSize AL_AddPos) const TypeIter operator+(TSize AL_AddPos) const
{ {
return ZCDataPoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos); return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/* }/*
ZCDataPoint operator+(TSize AL_AddPos) const*/ TypeIter operator+(TSize AL_AddPos) const*/
bool operator == (const ZCDataPoint& rhs) const bool operator == (ZCNodePointC& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; } { return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCDataPoint& rhs) const bool operator != (ZCNodePointC& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; } { return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCDataPoint& rhs) const bool operator > (ZCNodePointC& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; } { return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCDataPoint& rhs) const bool operator >= (ZCNodePointC& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; } { return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCDataPoint& rhs) const bool operator < (ZCNodePointC& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; } { return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCDataPoint& rhs) const bool operator <= (ZCNodePointC& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; } { return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -118,10 +166,10 @@ namespace ZNsMain
public: public:
};/* };/*
class ZCDataPoint*/ class ZCNodePoint*/
class ZCDataPointC class ZCNodePointN
{ {
private: private:
mutable TypeData* mp_Data ; mutable TypeData* mp_Data ;
@ -129,35 +177,77 @@ namespace ZNsMain
const ZtCArray& mr_CArray; const ZtCArray& mr_CArray;
public: public:
ZCDataPointC(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) : 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) mr_CArray(AR_CArray)
/*****************************************************************/ /*****************************************************************/
{ {
mp_Data =&AR_CData ; mp_Data =&AR_CData ;
mr_CArray=&AR_CArray;
ml_ElePos=AL_ElePos ; ml_ElePos=AL_ElePos ;
}/* }/*
ZCDataPointC(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/ ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCDataPointC(ZtCArray& AR_CArray) : mr_CArray(AR_CArray) ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{ {
mp_Data = AR_CArray.mp_TypeArr ; mp_Data = AR_CArray.mp_Data ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPointC(ZtCArray& AR_CArray)*/ ZCNodePointN(ZtCArray& AR_CArray)*/
ZCDataPointC(const ZCDataPointC& rhs) : mr_CArray(rhs.mr_CArray) ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
{ {
mp_Data = rhs.mp_TypeArr ; mp_Data = rhs.mp_Data ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPointC(const ZCDataPointC& rhs)*/ ZCNodePointN(const ZCNodePointN& rhs)*/
ZCDataPointC(const ZCDataPoint & rhs) : mr_CArray(rhs.mr_CArray) ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
{ {
mp_Data = rhs.mp_TypeArr ; mp_Data = rhs.mp_Data ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPointC(const ZCDataPoint & rhs)*/ ZCNodePointN(const ZCNodePoint & rhs)*/
TypeSize size () const{return mr_CArray.size();} TypeSize size () const{return mr_CArray.size();}
@ -167,30 +257,27 @@ namespace ZNsMain
TypeDataC* operator->() const{return mp_Data;} TypeDataC* operator->() const{return mp_Data;}
ZCDataPointC& operator++( ){++mp_Data; ++ml_ElePos; return *this;} TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
ZCDataPointC operator++(int){++mp_Data; ++ml_ElePos; return *this;} TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCDataPointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;} TypeIterN operator+(TSize AL_AddPos) const
const ZCDataPointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
ZCDataPointC operator+(TSize AL_AddPos) const
{ {
return ZCDataPointC(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos); return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/* }/*
ZCDataPointC operator+(TSize AL_AddPos) const*/ TypeIterN operator+(TSize AL_AddPos) const*/
bool operator == (const ZCDataPointC& rhs) const bool operator == (const ZCNodePointN& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; } { return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCDataPointC& rhs) const bool operator != (const ZCNodePointN& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; } { return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCDataPointC& rhs) const bool operator > (const ZCNodePointN& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; } { return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCDataPointC& rhs) const bool operator >= (const ZCNodePointN& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; } { return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCDataPointC& rhs) const bool operator < (const ZCNodePointN& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; } { return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCDataPointC& rhs) const bool operator <= (const ZCNodePointN& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; } { return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -208,7 +295,7 @@ namespace ZNsMain
public: public:
};/* };/*
class ZCDataPointC*/ class ZCNodePointN*/
public : public :
@ -455,11 +542,17 @@ namespace ZNsMain
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);} void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);} void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
Type& push_front(){return AddHead();} TypeData& push_front(){return AddHead();}
Type& push_back (){return AddTail();} TypeData& push_back (){return AddTail();}
/***/ ZCDataPoint begin() {return ZCDataPoint(*this);} TypeIter begin () {return ZCNodePoint (*this);}
const ZCDataPoint begin() const{return ZCDataPoint(*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) template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -654,103 +747,97 @@ namespace ZNsMain
-- 2011-06-12 20:42:00 -- 2011-06-12 20:42:00
GetDataInIter() 를 ItD() 로 대체. -- 2025-10-15 15:49
///////////////////////////////////////////////////////////////////////////*/ ///////////////////////////////////////////////////////////////////////////*/
Type* GetHeadIterEasy (){return mp_TypeArr ;} TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;} TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
IterEasyID GetHeadIterEasyID(){return (IterEasyID) mp_TypeArr ;} IterEasyID GetHeadIterEasyID () {return (IterEasyID ) mp_TypeArr ;}
IterEasyID GetTailIterEasyID(){return (IterEasyID)(mp_TypeArr+ml_UseSize-1);} IterEasyID GetTailIterEasyID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
const Type* GetHeadIterEasy () const{return mp_TypeArr ;} TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;} TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;} IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc) mp_TypeArr ;}
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);} 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 ;}
void MoveNextIter(iterator& ARR_CIterator) const{++ARR_CIterator;} IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
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); }
void MovePrevIter(Type*& APR_CType ) const{--APR_CType ;} void MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
void MovePrevIter(iterator& ARR_CIterator) const{--ARR_CIterator;} void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
void MovePrevIter(IterEasyID& AI_IterEasyID) const void MoveNextIter(IterEasyID & AI_IterEasyID) const
{ MovePrevIter((Type*&)AI_IterEasyID); } { MoveNextIter((TypeData *&)AI_IterEasyID); }
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;} void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;} void MoveNextIter(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
void MovePrevIter(const IterEasyID& AI_IterEasyID) void MoveNextIter(IterEasyIDc& AI_IterEasyID) const
const{ MovePrevIter((const Type*&)AI_IterEasyID); } { MoveNextIter((TypeDataC*&)AI_IterEasyID); }
void MovePrevIter(TypeData* & APR_CType ) const{--APR_CType ;}
void MovePrevIter(iterator & ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(IterEasyID & AI_IterEasyID) const
{ 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 ;} TypeData * ItHEasy() {return mp_TypeArr ;}
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;} TypeData * ItTEasy() {return mp_TypeArr+ml_UseSize-1 ;}
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;} IterEasyID ItHID () {return (IterEasyID ) mp_TypeArr ;}
IterEasyID ItTID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;} TypeDataC* ItHEasy() const{return mp_TypeArr ;}
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;} TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const IterEasyIDc ItHID () const{return (IterEasyIDc) mp_TypeArr ;}
{ return *(const Type*)AI_IterEasyID; } IterEasyIDc ItTID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
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((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(TypeData* & APR_CType ) const{--APR_CType ;}
void ItPrev(iterator & ARR_CIterator) const{--ARR_CIterator;}
void ItPrev(IterEasyID & AI_IterEasyID) const
{ 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); }
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; }
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; }
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum) TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum)
{ return *(AP_Type + AI_FarNum) ; } { return *(AP_Type + AI_FarNum) ; }
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum) TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum)
{ return *(ARR_CIterator+AI_FarNum) ; } { return *(ARR_CIterator+AI_FarNum) ; }
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) TypeData & ItD(IterEasyID AH_IterEasyID , TypeSize AI_FarNum)
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); } { return ItD((TypeData*)AH_IterEasyID , AI_FarNum); }
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const
{ return *(AP_Type + AI_FarNum); } { return *(AP_Type + AI_FarNum); }
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const TypeDataC& ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) const
{ return *(ARR_CIterator+AI_FarNum); } { return *(ARR_CIterator+AI_FarNum); }
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const TypeDataC& ItD(IterEasyIDc AH_IterEasyID , TypeSize AI_FarNum) const
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); } { return ItD((TypeDataC*)AH_IterEasyID, AI_FarNum); }
Type* ItHEasy(){return mp_TypeArr ;}
Type* 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);}
void ItNext(Type*& 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); }
void ItPrev(Type*& 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); }
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);}
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);}
public: public:
};/* };/*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -767,16 +767,40 @@ namespace ZNsMain
class ZtCSimList /*##########################################################*/ class ZtCSimList /*##########################################################*/
{ {
public: public:
typedef TType Type ; class ZCLink ;
typedef TType TypeData ; class ZCNodePoint ;
typedef TTypArgu TypeArg ; class ZNodekPointN;
typedef TTypCAlloc TypeAlloc ; /**************************************************/
typedef TTypCInit TypeInit ; typedef TType Type ;
typedef TTypSize TypeSize ; typedef TType TypeData ;
typedef TMoveObj TypeMoveObj; typedef TTypArgu TypeArg ;
public: typedef TTypCAlloc TypeAlloc ;
typedef TTypCInit TypeInit ;
typedef TTypSize TypeSize ;
typedef TMoveObj TypeMoveObj ;
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:: typedef typename TFeeeHeap::
template ZtCBody<ZtCSimList> ZCFreeHeap; template ZtCBody<ZtCSimList> ZCFreeHeap;
/**************************************************/
public: public:
@ -859,17 +883,17 @@ namespace ZNsMain
}/* }/*
const TType& GetData() const*/ 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; 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; return GetNextPtr(AL_FarNum)->mo_DataObjt;
}/* }/*
const TType& GetData(TTypSize AL_FarNum) const*/ const TType& GetData(TypeSize AL_FarNum) const*/
TType& operator* (){return mo_DataObjt;} TType& operator* (){return mo_DataObjt;}
@ -879,9 +903,9 @@ namespace ZNsMain
const TType& operator()() const{return mo_DataObjt;} const TType& operator()() const{return mo_DataObjt;}
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0 ZCLink* GetNextPtr(TypeSize AL_FarNum) // must AL_FarNum > 0
{ {
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도 // 이 멤버 함수는 TypeSize 가 용랑이 큰 object 라 할지라도
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다. // 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
ZCLink* VP_TmpLink=this; ZCLink* VP_TmpLink=this;
@ -892,13 +916,13 @@ namespace ZNsMain
return VP_TmpLink; 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 의 값이 이 함수에서 변하고 있으므로 // TypeSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
// TTypSize 을 참조로 받으면 안된다. // TypeSize 을 참조로 받으면 안된다.
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this); ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
@ -912,20 +936,11 @@ namespace ZNsMain
return VP_TmpLink; return VP_TmpLink;
}/* }/*
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const*/ ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const*/
inline ZCLink* GetNextPtr() inline ZCLink * GetNextPtr() { return mp_NextLink; }
{ inline ZCLinkC* const GetNextPtr() const{ return mp_NextLink; }
return mp_NextLink;
}/*
inline ZCLink* GetNextPtr()*/
inline const ZCLink* const GetNextPtr() const
{
return mp_NextLink;
}/*
inline const ZCLink* const GetNextPtr() const*/
ZCLink& operator=(TypeArg AR_Type) ZCLink& operator=(TypeArg AR_Type)
{ {
@ -933,36 +948,301 @@ namespace ZNsMain
}/* }/*
ZCLink& operator=(TypeArg AR_Type)*/ ZCLink& operator=(TypeArg AR_Type)*/
ZCLink* operator+(TypeSize AL_Offset) ZCLink& operator+(TypeSize AL_Offset)
{ {
ZCLink* VP_CLinkLoop=this; ZCLink* VP_CLinkLoop=this;
__for0(TTypSize, i, AL_Offset) __for0(TypeSize, i, AL_Offset)
{ {
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink; VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
}/* }/*
__for0(TTypSize, i, AL_Offset)*/ __for0(TypeSize, i, AL_Offset)*/
return *this; return *this;
}/* }/*
ZCLink* operator+(TypeSize AL_Offset) ZCLink& operator+(TypeSize AL_Offset)
public:*/ public:*/
};/* };/*
class ZCLink*/ 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: protected:
TTypSize ml_LinkSize ; TypeSize ml_LinkSize ;
ZCLink* mp_HeadLink ; ZCLink* mp_HeadLink ;
ZCLink* mp_TailLink ; mutable ZCLink* mp_TailLink ; mutable
ZCFreeHeap mo_FreeObjt ; ZCFreeHeap mo_FreeObjt ;
@ -973,9 +1253,9 @@ namespace ZNsMain
ZtCSimList& CopyLink /*######################################*/ ZtCSimList& CopyLink /*######################################*/
( (
const ZCLink* const AP_CopyLink , ZCLinkC* AP_CopyLink ,
TTypSize AL_FarNum , TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs ZtCSimList& ARR_Rhs
) const ) const
/*###########################################################*/ /*###########################################################*/
{ {
@ -1006,9 +1286,9 @@ namespace ZNsMain
}/* }/*
ZtCSimList& CopyLink ########################################## ZtCSimList& CopyLink ##########################################
( (
const ZCLink* const AP_CopyLink , ZCLinkC* AP_CopyLink ,
TTypSize AL_FarNum , TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs ZtCSimList& ARR_Rhs
) const ) const
#############################################################*/ #############################################################*/
@ -1050,7 +1330,7 @@ namespace ZNsMain
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/ 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) if(AP_CutLink==mp_HeadLink)
{ {
@ -1081,14 +1361,14 @@ namespace ZNsMain
return (--ml_LinkSize, AP_CutLink); 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 /*###############################*/ ZtCSimList& CutLink /*###############################*/
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead , TTypSize AL_CutHeadPos, ZCLink* AP_CutHead , TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail , TTypSize AL_CutTailPos, ZCLink* AP_CutTail , TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList ZtCSimList& ARR_StoreList
) )
/*###################################################*/ /*###################################################*/
@ -1135,8 +1415,8 @@ namespace ZNsMain
{ {
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app); std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl; 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<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,"<<std::endl;
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl; fileout<<" ZCLink* AP_CutTail, TypeSize AL_CutTailPos" <<std::endl;
fileout<<" /****************/ )" <<std::endl; fileout<<" /****************/ )" <<std::endl;
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl; fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
fileout.close(); fileout.close();
@ -1155,14 +1435,14 @@ namespace ZNsMain
ZtCSimList& CutLink /////////////////////////////// ZtCSimList& CutLink ///////////////////////////////
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos, ZCLink* AP_CutTail, TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList 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; if(AL_DefaultSize<=0) return ARR_StoreList;
@ -1179,7 +1459,7 @@ namespace ZNsMain
return ARR_StoreList; return ARR_StoreList;
}/* }/*
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
protected: */ protected: */
@ -1242,17 +1522,17 @@ namespace ZNsMain
ZtCSimList& operator()(TypeArg AR_Type)*/ ZtCSimList& operator()(TypeArg AR_Type)*/
TType& operator[](TTypSize AL_Index) TType& operator[](TypeSize AL_Index)
{ {
return GetLinkPtr(AL_Index)->mo_DataObjt; 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; 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;} operator TType&(){return AddTailDef()->mo_DataObjt;}
@ -1366,7 +1646,7 @@ namespace ZNsMain
ZCLink* AddTailDef()*/ ZCLink* AddTailDef()*/
void AddHeadDef(TTypSize AL_DefaultSize) void AddHeadDef(TypeSize AL_DefaultSize)
{ {
if(AL_DefaultSize<1) return; if(AL_DefaultSize<1) return;
@ -1376,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; if(AL_DefaultSize<1) return;
@ -1388,83 +1668,47 @@ namespace ZNsMain
); );
////////////////////////////////// //////////////////////////////////
}/* }/*
void AddTailDef(TTypSize AL_DefaultSize)*/ void AddTailDef(TypeSize AL_DefaultSize)*/
ZCLink* GetHeadLinkPtr (){return mp_HeadLink;} TypeData & front() {return mp_HeadLink->mo_DataObjt;}
ZCLink* GetHeadIterEasy (){return mp_HeadLink;} TypeData & back () {return mp_TailLink->mo_DataObjt;}
IterEasyID GetHeadIterEasyID(){return (IterEasyID)mp_HeadLink;}
ZCLink* GetTailLinkPtr (){return mp_TailLink;} TypeDataC& front() const{return mp_HeadLink->mo_DataObjt;}
ZCLink* GetTailIterEasy (){return mp_TailLink;} TypeDataC& back () const{return mp_TailLink->mo_DataObjt;}
IterEasyID GetTailIterEasyID(){return (IterEasyID)mp_TailLink;}
TType& front(){return mp_HeadLink->mo_DataObjt;}
TType& back (){return mp_TailLink->mo_DataObjt;}
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;} ZCLink * GetHeadLinkPtr () {return mp_HeadLink;}
const ZCLink* GetHeadIterEasy () const{return mp_HeadLink;} ZCLink * GetHeadIterEasy () {return mp_HeadLink;}
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID)mp_HeadLink;} IterEasyID GetHeadIterEasyID () {return (IterEasyID )mp_HeadLink;}
const ZCLink* GetTailLinkPtr () const{return mp_TailLink;} ZCLink * GetTailLinkPtr () {return mp_TailLink;}
const ZCLink* GetTailIterEasy () const{return mp_TailLink;} ZCLink * GetTailIterEasy () {return mp_TailLink;}
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;} IterEasyID GetTailIterEasyID () {return (IterEasyID )mp_TailLink;}
const TType& front() const{return mp_HeadLink->mo_DataObjt;} ZCLinkC* GetHeadLinkPtr () const{return mp_HeadLink;}
const TType& back () const{return mp_TailLink->mo_DataObjt;} 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;}
void pop_back(TypeArg AR_Type) void pop_back (TypeArg AR_Type){ return AddHead(AR_Type); }
{ void push_back(TypeArg AR_Type){ return AddTail(AR_Type); }
return AddHead(AR_Type);
}/*
void pop_back(TypeArg AR_Type)*/
void push_back(TypeArg AR_Type) TypeData & GetHeadData() { return mp_HeadLink->mo_DataObjt; }
{ TypeDataC& GetHeadData() const{ return mp_HeadLink->mo_DataObjt; }
return AddTail(AR_Type);
}/*
void push_back(TypeArg AR_Type)*/
TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; }
TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; }
TType& GetHeadData() TypeData & GetData(TypeSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; }
{ TypeDataC& GetData(TypeSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; }
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*/
void JoinHead(ZCLink* AP_Link) void JoinHead(ZCLink* AP_Link)
@ -1580,7 +1824,7 @@ namespace ZNsMain
}/* }/*
void DeleteHead()*/ void DeleteHead()*/
void DeleteHead(TTypSize AL_DelSize) void DeleteHead(TypeSize AL_DelSize)
{ {
// AL_DelSize 개의 링크를 앞 부분에서 삭제 // AL_DelSize 개의 링크를 앞 부분에서 삭제
@ -1615,7 +1859,7 @@ namespace ZNsMain
ZCLink::MakeRing(mp_HeadLink, mp_TailLink); ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
}/* }/*
void DeleteHead(TTypSize AL_DelSize)*/ void DeleteHead(TypeSize AL_DelSize)*/
void DeleteTail() void DeleteTail()
{ {
@ -1650,18 +1894,18 @@ namespace ZNsMain
}/* }/*
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/ 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 GetCFreeHeap().RecvFreeIn
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) ); ( 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 /*###################################*/ void Delete /*###################################*/
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos ZCLink* AP_CutTail, TypeSize AL_CutTailPos
) )
/*###############################################*/ /*###############################################*/
{ {
@ -1678,8 +1922,8 @@ namespace ZNsMain
void Delete /////////////////////////////////////// void Delete ///////////////////////////////////////
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos ZCLink* AP_CutTail, TypeSize AL_CutTailPos
) )
/////////////////////////////////////////////////*/ /////////////////////////////////////////////////*/
@ -1708,7 +1952,7 @@ namespace ZNsMain
void clear(){DeleteAll();} 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 = ////////////////////// const bool CB_DoStop = //////////////////////
( (
@ -1719,7 +1963,7 @@ namespace ZNsMain
if(CB_DoStop) {return 0;} /////////////////// if(CB_DoStop) {return 0;} ///////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ; TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex)); <ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -1736,9 +1980,9 @@ namespace ZNsMain
} }
while(true); 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 = ////////////////////// const bool CB_DoStop = //////////////////////
( (
@ -1749,7 +1993,7 @@ namespace ZNsMain
if(CB_DoStop) return 0; ///////////////////// if(CB_DoStop) return 0; /////////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ; TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex)); <ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -1766,7 +2010,7 @@ namespace ZNsMain
} }
while(true); while(true);
}/* }/*
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)*/ TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)*/
/*//////////////////////////////////////////////////////////////////////////////////////// /*////////////////////////////////////////////////////////////////////////////////////////
@ -1778,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); 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) ZCLink * GetLinkPtr(TypeSize AL_Index)
{ { return mp_HeadLink->GetNextPtr(AL_Index-1); }
return mp_HeadLink->GetNextPtr(AL_Index-1);
}/* ZCLinkC* GetLinkPtr(TypeSize AL_Index) const
ZCLink* GetLinkPtr(TTypSize AL_Index)*/ { return mp_HeadLink->GetNextPtr(AL_Index-1); }
const ZCLink* GetLinkPtr(TTypSize AL_Index) const ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;}
{
return mp_HeadLink->GetNextPtr(AL_Index-1);
}/*
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/
ZCFreeHeap& GetCFreeHeap() const inline TypeSize GetSize() const
{
return mo_FreeObjt;
}/*
ZCFreeHeap& GetCFreeHeap() const*/
inline TTypSize GetSize() const
{ return ml_LinkSize; } { return ml_LinkSize; }
inline TTypSize size () const inline TypeSize size () const
{ return ml_LinkSize; } { return ml_LinkSize; }
inline TTypSize capacity() const inline TypeSize capacity() const
{ return size()+mo_FreeObjt.size(); } { return size()+mo_FreeObjt.size(); }
inline TypeSize GetFreeSize() const inline TypeSize GetFreeSize() const
@ -2068,125 +2301,74 @@ namespace ZNsMain
-- 2011-06-07 20:25:00 -- 2011-06-07 20:25:00
GetDataInIter() 를 추가했다.
-- 2011-06-12 17:12:00
///////////////////////////////////////////////////////////////////////////*/ ///////////////////////////////////////////////////////////////////////////*/
void MoveNextIter(ZCLink*& APR_CLink) void MoveNextIter(ZCLink* & APR_CLink ) { APR_CLink=APR_CLink->GetNextPtr() ; }
{ void MoveNextIter(iterator & ARR_iterator ) { ++ARR_iterator ; }
APR_CLink=APR_CLink->GetNextPtr(); void MoveNextIter(IterEasyID & APPI_IterEasyID)
}/* { MoveNextIter((ZCLink* &)APPI_IterEasyID); }
void MoveNextIter(ZCLink*& APR_CLink)*/
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*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
ZCLink* ItHEasy() {return mp_HeadLink;} void MoveNextIter(ZCLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ; }
IterEasyID ItHID () {return (IterEasyID)mp_HeadLink;} void MoveNextIter(iteratorN & ARR_iterator ) const{ ++ARR_iterator ; }
void MoveNextIter(IterEasyIDc& APPI_IterEasyID) const
{ MoveNextIter((ZCLinkC*&)APPI_IterEasyID); }
ZCLink* ItTEasy() {return mp_TailLink;}
IterEasyID ItTID () {return (IterEasyID)mp_TailLink;} 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;} ZCLinkC* ItHEasy() const{return mp_HeadLink;}
const IterEasyID ItHID () const{return (IterEasyIDc)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;} IterEasyIDc ItHIDc () const{return (IterEasyIDc)mp_HeadLink;}
const IterEasyID ItTID () const{return (IterEasyIDc)mp_TailLink;} IterEasyIDc ItTIDc () const{return (IterEasyIDc)mp_TailLink;}
void ItNext(ZCLink*& APR_CLink) void ItNext(ZCLink* & APR_CLink ) { MoveNextIter(APR_CLink) ; }
{ void ItNext(IterEasyID & AH_IterEasyID) { MoveNextIter(AH_IterEasyID); }
MoveNextIter(APR_CLink); void ItNext(iterator & ARR_Iterator ) { ++ARR_Iterator ; }
}/* /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void ItNext(ZCLink*& APR_CLink)*/ void ItNext(ZCLinkC* & APR_CLink ) const{ MoveNextIter(APR_CLink) ; }
void ItNext(IterEasyIDc & AH_IterEasyID) const{ MoveNextIter(AH_IterEasyID); }
void ItNext(IterEasyID& APPI_IterEasyID) void ItNext(iteratorN & ARR_Iterator ) const{ ++ARR_Iterator ; }
{
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*/
TType& ItD(ZCLink* AP_CLink) TypeData & ItD(ZCLink* AP_CLink ) { return **AP_CLink; }
{ TypeData & ItD(IterEasyID AH_IterEasyID) { return **((ZCLink *)AH_IterEasyID); }
return **AP_CLink; TypeData & ItD(iterator & ARR_Iterator ) { return *ARR_Iterator; }
}/* /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
TType& ItD(ZCLink* AP_CLink)*/ 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 iterator begin () { return ZCNodePoint (*this); }
{ iteratorN begin () const{ return ZNodekPointN(*this); }
return **AP_CLink; iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
}/* iteratorN end () const{ return ZNodekPointN::MakeTailPoint(*this); }
const TType& ItD(const ZCLink* AP_CLink) const*/
const TType& ItD(const IterEasyID APPI_IterEasyID) const iteratorN cbegin() const{ return ZNodekPointN(*this); }
{ iteratorN cend () const{ return ZNodekPointN::MakeTailPoint(*this); }
return ItD((const ZCLink*)APPI_IterEasyID);
}/*
const TType& ItD(const IterEasyID APPI_IterEasyID) const*/ 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: public:
};/* };/*

View File

@ -307,10 +307,10 @@ namespace ZNsMain
typedef const TTypCh* TypeCharCP ; typedef const TTypCh* TypeCharCP ;
typedef const TTypCh* TypeCPChar ; typedef const TTypCh* TypeCPChar ;
typedef TTypCh* TypePChar ; typedef TTypCh* TypePChar ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef TTypeString ZCTypeString; typedef TTypeString ZCTypeString;
typedef ZtCStringBase ZCStringBase; typedef ZtCStringBase ZCStringBase;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef ZtCStringBase TypeThis ; typedef ZtCStringBase TypeThis ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ; typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
@ -320,21 +320,22 @@ namespace ZNsMain
typedef typename ZCTypeString::TypeLong TypeLong ; typedef typename ZCTypeString::TypeLong TypeLong ;
typedef typename ZCTypeString::TypeLong TypeSize ; typedef typename ZCTypeString::TypeLong TypeSize ;
typedef typename ZCTypeString::TypeLong TypeLength ; 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 typename ZCTypeChars ::ZCChars ZCChars ;
typedef TypeSize size_type ; // for strl string/wstring typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
typedef const ZCChars ZCCharsC ;
typedef const ZCChars ZCCharViewC ;
typedef TypeChar TypeData ;
typedef ZCStringList TypeList ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
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
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
enum EWriteFile // WriteFile() 에서 사용한다. enum EWriteFile // WriteFile() 에서 사용한다.

View File

@ -470,6 +470,7 @@ namespace ZNsMain
■ class ZtCTreeData 예제 -- 2015-08-14 14:00 ■ class ZtCTreeData 예제 -- 2015-08-14 14:00
#include <iostream> #include <iostream>
#include "ZCppMain/ZtCStringEx.H"
#include "ZCppMain/ZtCTreeData.H" #include "ZCppMain/ZtCTreeData.H"
using namespace std ; using namespace std ;

View File

@ -376,8 +376,59 @@ namespace ZNsMain
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/ 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) 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; ZTypLong VI_CallCnt=0;
CStringBase VO_CStringBase; CStringBase VO_CStringBase;
@ -657,34 +708,168 @@ namespace ZNsMain
cout<<"*****************************************************"<<endl; cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0)); VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInAfter(1th~3th => 6th)"<<endl; cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInAfter(1th~3th => 6th)"<<endl;
VO_ZCBaseListEx10_2.SendRangeInAfter VO_ZCBaseListEx10_2.MoveRangeInAfter
( (
VO_ZCBaseListEx10_2.HeadRef( ), VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2), VO_ZCBaseListEx10_2.HeadRef(2),
3,
VO_ZCBaseListEx10_2.HeadOpt(5) VO_ZCBaseListEx10_2.HeadOpt(5)
); );
cout<<"*****************************************************"<<endl; cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0)); VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInBefore(4th~6th => 1th)"<<endl; cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInBefore(4th~6th => 1th)"<<endl;
VO_ZCBaseListEx10_2.SendRangeInBefore VO_ZCBaseListEx10_2.MoveRangeInBefore
( (
VO_ZCBaseListEx10_2.HeadRef(3), VO_ZCBaseListEx10_2.HeadRef(3),
VO_ZCBaseListEx10_2.HeadRef(5), VO_ZCBaseListEx10_2.HeadRef(5),
3,
VO_ZCBaseListEx10_2.HeadOpt( ) VO_ZCBaseListEx10_2.HeadOpt( )
); );
cout<<"*****************************************************"<<endl; cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0)); VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# VO_ZCBaseListEx10_2 for_iter() show "<<endl; cout<<endl<<"# VO_ZCBaseListEx10_2 for_it() show "<<endl;
__for_iter(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter) __for_it(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{ {
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl; 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; return 0;
}/* }/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/ static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/

View File

@ -71,12 +71,14 @@ namespace ZNsMain
typedef ZNsIFaceEx::ZtCLink typedef ZNsIFaceEx::ZtCLink
<ZCEmpty, ZCLinkData> ZCLinkBase; <ZCEmpty, ZCLinkData> ZCLinkBase;
typedef ZNsIFaceEx::ZtCLink
<string , ZCEmpty > ZCLinkStr ;
public: public:
typedef ZCLinkData ZCLinkCStr ; typedef ZtCLinkList<ZCLinkBase> ZCLinkDataList;
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList; typedef ZtCLinkList<ZCLinkStr > ZCLinkStrList ;
typedef typename typedef typename
ZCLinkStrList::ZCLinkOpt ZCStrLinkOpt ; ZCLinkDataList::ZCLinkOpt ZCStrLinkOpt ;
public: public:
@ -108,23 +110,28 @@ namespace ZNsMain
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0) static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{ {
ZTypLong VI_CallCnt = 0 ; ZTypLong VI_CallCnt =0 ;
ZCLinkStrList VO_ZCLinkStrLis1; ZCLinkDataList VO_CDataList1;
ZCLinkStrList VO_ZCLinkStrLis2; ZCLinkDataList VO_CDataList2;
ZCStrLinkOpt VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1); ZCLinkStrList VO_CStrLis20 ;
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl; cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl; cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
VO_ZCLinkStrLis1.AddTail()().GetData()=string("123"); VO_CDataList1.AddTail()().GetData()=string("123");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("ABC"); VO_CDataList1.AddTail()().GetData()=string("ABC");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("xyz"); VO_CDataList1.AddTail()().GetData()=string("xyz");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z01"); VO_CDataList2.AddTail()().GetData()=string("Z01");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z02"); VO_CDataList2.AddTail()().GetData()=string("Z02");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z03"); 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) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl; cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
@ -136,7 +143,7 @@ namespace ZNsMain
}/* }/*
if(VO_StrLinkOpt.has_value())*/ 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() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl; cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
@ -150,107 +157,175 @@ namespace ZNsMain
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; 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; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; 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; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&AppendEach); VO_CDataList1.IterElement(&AppendEach);
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SendRangeOutAfter VO_CDataList1.SendRangeOutAfter
( (
VO_ZCLinkStrLis1.GetObjOpt(1).value() VO_CDataList1.GetObjOpt(1).value()
, VO_ZCLinkStrLis1.GetObjOpt(2).value() , VO_CDataList1.GetObjOpt(2).value()
, 2 , 2
, VO_ZCLinkStrLis2 , VO_CDataList2
, VO_ZCLinkStrLis2.GetObjOpt(1) , 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; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.SendRangeOutBefore VO_CDataList2.SendRangeOutBefore
( (
VO_ZCLinkStrLis2.GetObjOpt(7).value() VO_CDataList2.GetObjOpt(7).value()
, VO_ZCLinkStrLis2.GetObjOpt(8).value() , VO_CDataList2.GetObjOpt(8).value()
, 2 , 2
, VO_ZCLinkStrLis1 , VO_CDataList1
, VO_ZCLinkStrLis1.GetObjOpt(1) , 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; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) ); VO_CDataList2.CopyThis( RR(VO_CDataList1) );
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl; cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl; cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink VO_CDataList1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(1)); (VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 2th)"<<endl; cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink VO_CDataList1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(11)); (VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 12th)"<<endl; cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink VO_CDataList1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(11), VO_ZCLinkStrLis1.HeadRef(10)); (VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(12th, 11th)"<<endl; cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.MoveLinkTail VO_CDataList1.MoveLinkTail
(VO_ZCLinkStrLis1.HeadRef()); (VO_CDataList1.HeadRef());
cout<<"# after VO_ZCLinkStrLis1.MoveLinkTail(1th)"<<endl; cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0)); VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl; 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; return 0;
}/* }/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/ static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=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

@ -367,18 +367,66 @@ namespace ZNsMain
cout<<"*****************************************************"<<endl; 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::iterator iterator1 ;
typedef CStringList1::ZCLinkPointEx iteratorEx1; //typedef CStringList1::ZCLinkPointEx iteratorEx1;
typedef CStringList1::ZCLinkPointC iteratorC1 ; typedef CStringList1::ZCNodePointN iteratorN1 ;
iterator1 VO_Iter1 = VO_ListOfStr11.end(); iterator1 VO_Iter1 = VO_ListOfStr11.end();
iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end(); //iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
iteratorC1 VO_IterC1(VO_Iter1); iteratorN1 VO_IterN1(VO_Iter1);
int VI_LoopCnt = 0;
__for_iter(CStringList1, VO_ListOfStr11, VO_NowIter) __for_itc (CStringList1, VO_ListOfStr11, VO_NowIter)
{ {
cout<<"(by for_iter) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl; 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;
} }
@ -416,8 +464,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
■ mingw 컴파일 ■ mingw 컴파일
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32 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 -D_DEBUG 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.exe
./ZtCObjList_000_mw_D.exe ./ZtCObjList_000_mw_D.exe

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
////////////////////////////////////////////////////////////////////////////////////////*/