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;
}
////////////////
}
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
{
@ -7169,9 +7168,7 @@ namespace ZNsMain
{
if(mi_HeadPos<1) return ;
int VI_Index=0 ;
int i =mi_HeadPos;
int VI_Index= 0, i = mi_HeadPos;
int VI_ValidBuffCnt = GetSize() ;
for(; i<=mi_TailPos; ++i)
@ -7189,8 +7186,7 @@ namespace ZNsMain
}/*
for(i=0; i<mi_HeadPos; ++i)*/
mi_HeadPos=0 ;
mi_TailPos=VI_ValidBuffCnt-1;
mi_HeadPos= 0 ; mi_TailPos= VI_ValidBuffCnt-1;
}/*
void MoveFirst()*/

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -291,7 +291,7 @@ namespace ZNsMain
static int Minus /*#################################################*/
(
const TypeChar* APC_Left , const TypeChar* APC_Right,
TypeCharC* APC_Left , TypeCharC* APC_Right,
TypeLength AL_LeftLength, TypeLength AL_RightLength
)
/*##################################################################*/
@ -350,7 +350,7 @@ namespace ZNsMain
}/*
static int Minus #@###################################################
(
const TypeChar* APC_Left , const TypeChar* APC_Right,
TypeCharC* APC_Left , TypeCharC* APC_Right,
TypeLength AL_LeftLength, TypeLength AL_RightLength
)
####################################################################*/
@ -547,8 +547,12 @@ namespace ZNsMain
}/*
template<typename TTyChars> static bool DoClose(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch) */
static bool DoClose(
TypeCharC* APC_Origin, TypeCharC* APC_Search, TypeLength AL_OriginLength, TypeLength AL_SearchLength)
static bool DoClose /*//////////////////////////////////////*/
(
TypeCharC* APC_Origin , TypeCharC* APC_Search,
TypeLength AL_OriginLength, TypeLength AL_SearchLength
)
/*##########################################################*/
{
const bool CB_IsBad = /*:::::::::::::::*/
(
@ -569,8 +573,12 @@ namespace ZNsMain
return true;
}/*
static bool DoClose(
TypeCharC* APC_Origin, TypeCharC* APC_Search, TypeLength AL_OriginLength, TypeLength AL_SearchLength)*/
static bool DoClose //////////////////////////////////////////
(
TypeCharC* APC_Origin , TypeCharC* APC_Search,
TypeLength AL_OriginLength, TypeLength AL_SearchLength
)
############################################################*/
template<typename TTyChars> static bool DoEndLinear(
@ -816,7 +824,8 @@ namespace ZNsMain
//////////// ) ////////////////////////////////////////////////*/
static TypeLength FindPosEsc( ////////////////////////////////////
static TypeLength FindPosEsc /////////////////////////////////////
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeCharC* APC_Escape ,
@ -824,7 +833,8 @@ namespace ZNsMain
TypeLength AL_SearchLen ,
TypeLength AL_EscapeLen ,
TypeLength AL_StartPos=0
/*//////////*/ ) /////////////////////////////////////////////////
)
//////////////////////////////////////////////////////////////////
{
if(AL_EscapeLen<1) return ZtCMainChars::FindPos
(
@ -841,7 +851,7 @@ namespace ZNsMain
if(CB_IsBad) return -1;
const TypeChar* VP_Origin = APC_Origin+AL_StartPos ;
TypeCharC* VP_Origin = APC_Origin+AL_StartPos ;
bool VB_DoEscape= false ;
TypeLength i = 0 ;
TypeLength VL_MaxLoop =
@ -894,7 +904,8 @@ namespace ZNsMain
return -1;
}/*
static TypeLength FindPosEsc( ////////////////////////////////////
static TypeLength FindPosEsc /////////////////////////////////////
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeCharC* APC_Escape ,
@ -902,7 +913,8 @@ namespace ZNsMain
TypeLength AL_SearchLen ,
TypeLength AL_EscapeLen ,
TypeLength AL_StartPos=0
////////////// ) ///////////////////////////////////////////////*/
)
////////////////////////////////////////////////////////////////*/
template<typename TTyChars> static TypeLength FindPosEsc(
@ -919,7 +931,8 @@ namespace ZNsMain
/* APC_Search 문자열을 찾는데 APC_WrapStart 로 시작한다면 APC_WrapClose
을 찾고 바로 다음에 APC_Search 이 있어야 그 위치를 반환한다. */
static TypeLength FindPosEscWrap( ////////////////////////////////
static TypeLength FindPosEscWrap /////////////////////////////////
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeCharC* APC_Escape ,
@ -931,7 +944,8 @@ namespace ZNsMain
TypeLength AL_WrapStartLen ,
TypeLength AL_WrapCloseLen ,
TypeLength AL_StartPos=0
/*//////////*/ ) ///////////////////////////////////////////////*/
)
//////////////////////////////////////////////////////////////////
{
const bool CB_IsBad = ///////////////////////
(
@ -984,9 +998,11 @@ namespace ZNsMain
}/*
if(CB_DoStart) */
return ZtCMainChars::FindPos(APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos);
return ZtCMainChars::FindPos
(APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos);
}/*
static TypeLength FindPosEscWrap( ////////////////////////////////
static TypeLength FindPosEscWrap /////////////////////////////////
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeCharC* APC_Escape ,
@ -998,32 +1014,27 @@ namespace ZNsMain
TypeLength AL_WrapStartLen ,
TypeLength AL_WrapCloseLen ,
TypeLength AL_StartPos=0
////////////// ) ///////////////////////////////////////////////*/
)
////////////////////////////////////////////////////////////////*/
template<typename TTyChars> static TypeLength FindPosEscWrap( //////
template<typename TTyChars> static TypeLength FindPosEscWrap /////
(
const TTyChars& AR_CCharsOrigin ,
const TTyChars& AR_CCharsSearch ,
const TTyChars& AR_CCharsEscape ,
const TTyChars& AR_CCharsWrapStart,
const TTyChars& AR_CCharsWrapClose,
TypeLength AL_StartPos=0
/*//////////*/ ) ///////////////////////////////////////////////*/
)
//////////////////////////////////////////////////////////////////
{
return ZtCMainChars::FindPosEscWrap(
return ZtCMainChars::FindPosEscWrap
(
AR_CCharsOrigin.data(), AR_CCharsSearch.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(),
AR_CCharsOrigin.size(), AR_CCharsSearch.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), AL_StartPos
/*/////////*/ );
}/*
template<typename TTyChars> static TypeLength FindPosEscWrap( //////
const TTyChars& AR_CCharsOrigin ,
const TTyChars& AR_CCharsSearch ,
const TTyChars& AR_CCharsEscape ,
const TTyChars& AR_CCharsWrapStart,
const TTyChars& AR_CCharsWrapClose,
TypeLength AL_StartPos=0
////////////// ) ///////////////////////////////////////////////*/
);
/*********************************/
}
/*////////////////////////////////////////////////////////////////
■ FindPosEscWrap() 테스트.
@ -1057,7 +1068,8 @@ namespace ZNsMain
template<
typename TStringArray, typename TString> /////////////////////
static TypeLength FindPosEscWrap2(
static TypeLength FindPosEscWrap2
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Escape ,
TypeCharC* APC_WrapStart ,
@ -1068,7 +1080,8 @@ namespace ZNsMain
TypeLength AL_WrapCloseLen ,
TStringArray& ARA_SearchArray ,
TString*& APR_CStringStart
/*//////////*/ ) ///////////////////////////////////////////////*/
)
//////////////////////////////////////////////////////////////////
{
if(AL_OriginLen<1) return -1;
@ -1120,7 +1133,8 @@ namespace ZNsMain
}/*
template<
typename TStringArray, typename TString> /////////////////////
static TypeLength FindPosEscWrap2(
static TypeLength FindPosEscWrap2
(
TypeCharC* APC_Origin ,
TypeCharC* APC_Escape ,
TypeCharC* APC_WrapStart ,
@ -1131,7 +1145,8 @@ namespace ZNsMain
TypeLength AL_WrapCloseLen ,
TStringArray& ARA_SearchArray ,
TString*& APR_CStringStart
////////////// ) ///////////////////////////////////////////////*/
)
////////////////////////////////////////////////////////////////*/
template<
typename TTyChars, typename TStringArray, typename TString>
@ -1144,23 +1159,13 @@ namespace ZNsMain
TString*& APR_CStringStart
/*//////////*/ ) ///////////////////////////////////////////////*/
{
return ZtCMainChars::FindPosEscWrap2(
return ZtCMainChars::FindPosEscWrap2
(
AR_CCharsOrigin.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(),
AR_CCharsOrigin.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), ARA_SearchArray, RR(APR_CStringStart)
/*:::::*/ );
}/*
template<
typename TTyChars, typename TStringArray, typename TString>
static TypeLength FindPosEscWrap2( ///////////////////////////////
const TTyChars& AR_CCharsOrigin ,
const TTyChars& AR_CCharsEscape ,
const TTyChars& AR_CCharsWrapStart,
const TTyChars& AR_CCharsWrapClose,
TStringArray& ARA_SearchArray ,
TString*& APR_CStringStart
////////////// ) ///////////////////////////////////////////////*/
);
/*::::::::::::::::::::::::::::::::*/
}
/*////////////////////////////////////////////////////////////////
■ FindPosEscWrap2() 테스트.
@ -1367,7 +1372,8 @@ namespace ZNsMain
const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsWrapStart, const TTyChars& AR_CCharsWrapClose)*/
static TypeLength FindPosLinear( /////////////////////////////////
static TypeLength FindPosLinear //////////////////////////////////
(
TypeCharC* APC_Origin1 ,
TypeCharC* APC_Origin2 ,
TypeCharC* APC_Search ,
@ -1378,7 +1384,8 @@ namespace ZNsMain
TypeLength& ARRL_SearchedPos2 ,
TypeLength& ARRL_SearchedLen1 ,
TypeLength& ARRL_SearchedLen2
/*//////////*/ ) ///////////////////////////////////////////////*/
)
/*##############################################################*/
{
/* APC_Origin1 과 APC_Origin2 이 이어진 문자열로 보았을때
APC_Search 이 나오는 위치를 구한다.
@ -1468,7 +1475,8 @@ namespace ZNsMain
return ARRL_SearchedPos2;
}/*
static TypeLength FindPosLinear( /////////////////////////////////
static TypeLength FindPosLinear //////////////////////////////////
(
TypeCharC* APC_Origin1 ,
TypeCharC* APC_Origin2 ,
TypeCharC* APC_Search ,
@ -1479,9 +1487,11 @@ namespace ZNsMain
TypeLength& ARRL_SearchedPos2 ,
TypeLength& ARRL_SearchedLen1 ,
TypeLength& ARRL_SearchedLen2
////////////// ) ///////////////////////////////////////////////*/
)
################################################################*/
template<typename TTyChars> static TypeLength FindPosLinear( /////
template<typename TTyChars> static TypeLength FindPosLinear //////
(
const TTyChars& AR_CCharsOrigin1 ,
const TTyChars& AR_CCharsOrigin2 ,
const TTyChars& AR_CCharsSearch ,
@ -1489,7 +1499,8 @@ namespace ZNsMain
TypeLength& ARRL_SearchedPos2,
TypeLength& ARRL_SearchedLen1,
TypeLength& ARRL_SearchedLen2
/*//////////*/ ) ///////////////////////////////////////////////*/
)
/*##############################################################*/
{
return ZtCMainChars::FindPosLinear
(
@ -1497,17 +1508,9 @@ namespace ZNsMain
AR_CCharsOrigin1.size(), AR_CCharsOrigin2.size(), AR_CCharsSearch.size(),
RR(ARRL_SearchedPos1) , RR(ARRL_SearchedPos2) , RR(ARRL_SearchedLen1) , RR(ARRL_SearchedLen2)
);
/*++++++++++++++++++++++++++++++*/
}/*
template<typename TTyChars> static TypeLength FindPosLinear( /////
const TTyChars& AR_CCharsOrigin1 ,
const TTyChars& AR_CCharsOrigin2 ,
const TTyChars& AR_CCharsSearch ,
TypeLength& ARRL_SearchedPos1,
TypeLength& ARRL_SearchedPos2,
TypeLength& ARRL_SearchedLen1,
TypeLength& ARRL_SearchedLen2
////////////// ) ///////////////////////////////////////////////*/
/*::::::::::::::::::::::::::::::*/
}
/*##############################################################*/
/*////////////////////////////////////////////////////////////////////////////////////////////
@ -3066,14 +3069,16 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////////////////*/
template<typename TSearchInfoList> static void MakeSplitInfoList(
template<typename TSearchInfoList> static void MakeSplitInfoList //////////
(
TypeCharC* APC_OriginChar,
TypeCharC* APC_Search ,
TypeLength AL_OriginLen ,
TypeLength AL_SearchLen ,
TypeLength AL_StartPos ,
TSearchInfoList& ARR_InfoList
/*//////////*/ ) //////////////////////////////////////////////*/
)
/*#######################################################################*/
{
typedef typename TSearchInfoList::TypeData ZCSearchInfo;
@ -3125,14 +3130,16 @@ namespace ZNsMain
}/*
if(VL_PrevPos<AL_OriginLen)*/
}/*
template<typename TSearchInfoList> static void MakeSplitInfoList(
template<typename TSearchInfoList> static void MakeSplitInfoList //////////
(
TypeCharC* APC_OriginChar,
TypeCharC* APC_Search ,
TypeLength AL_OriginLen ,
TypeLength AL_SearchLen ,
TypeLength AL_StartPos ,
TSearchInfoList& ARR_InfoList
////////////// ) //////////////////////////////////////////////*/
)
#########################################################################*/
template<typename TTyChars, typename TSearchInfoList> static void MakeSplitInfoList
(
@ -3157,10 +3164,12 @@ namespace ZNsMain
// APC_Search 문자열을 찾아서, 있으면 그 문자열 길이까지 구한다.
static TypeLength GetLength_Find(
static TypeLength GetLength_Find //////////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
/*//////////*/ )
)
/*#######################################################################*/
{
if(AL_OriginLen<1 || AL_SearchLen<1 || AL_OriginLen<AL_SearchLen)
return 0;
@ -3193,10 +3202,12 @@ namespace ZNsMain
return 0;
}/*
static TypeLength GetLength_Find(
static TypeLength GetLength_Find //////////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
////////////// ) */
)
#########################################################################*/
template<typename TTyChars> static TypeLength
GetLength_Find(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
@ -3213,8 +3224,11 @@ namespace ZNsMain
/* ARA_SearchArray 의 앞 원소인 문자열부터 찾기 시작하므로,
먼저 찾아야 하는 문자열은 ARA_SearchArray 의 앞에 있는 것이 좋다. */
template<typename TStringArray> static TypeLength GetLength_Find2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
template<typename TStringArray> static TypeLength GetLength_Find2 /////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
)
/*#######################################################################*/
{
TypeLength VL_ArrSize=ARA_SearchArray.size();
TypeLength VL_NowSize;
@ -3242,8 +3256,11 @@ namespace ZNsMain
return 0;
}/*
template<typename TStringArray> static TypeLength GetLength_Find2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
template<typename TStringArray> static TypeLength GetLength_Find2 /////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
)
#########################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Find2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
@ -3256,10 +3273,12 @@ namespace ZNsMain
// APC_Search 문자열의 문자 중에 하나라도 일치하면 그 길이까지 구해온다.
static TypeLength GetLength_FindChar(
static TypeLength GetLength_FindChar //////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
/*//////////*/ )
)
/*#######################################################################*/
{
if(AL_OriginLen<1 || AL_SearchLen<1) return 0;
@ -3287,24 +3306,31 @@ namespace ZNsMain
return 0;
}/*
static TypeLength GetLength_FindChar(
static TypeLength GetLength_FindChar //////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
////////////// ) */
)
#########################################################################*/
template<typename TTyChars>
static TypeLength GetLength_FindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
template<typename TTyChars> static TypeLength GetLength_FindChar
(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
{
return ZtCMainChars::GetLength_FindChar(
CCharsOrigin.data(), CCharsOrigin.size(),
CCharsSearch.data(), CCharsSearch.size()
/*//////////*/ );
}/*
template<typename TTyChars>
static TypeLength GetLength_FindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch) */
}
/*#######################################################################*/
template<typename TStringArray> static TypeLength GetLength_FindChar2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
template<typename TStringArray> static TypeLength GetLength_FindChar2 /////
(
TypeCharC* APC_Origin ,
TypeLength AL_OriginLen ,
const TStringArray& ARA_SearchArray
)
/*#######################################################################*/
{
TypeLength VL_ArrSize=ARA_SearchArray.size();
TypeLength VL_NowSize=0;
@ -3334,8 +3360,13 @@ namespace ZNsMain
return VL_NowSize;
}/*
template<typename TStringArray> static TypeLength GetLength_FindChar2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
template<typename TStringArray> static TypeLength GetLength_FindChar2 /////
(
TypeCharC* APC_Origin ,
TypeLength AL_OriginLen ,
const TStringArray& ARA_SearchArray
)
#########################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_FindChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
@ -3349,13 +3380,13 @@ namespace ZNsMain
/* APC_Search 문자열을 찾아서, 있으면 그 문자열 길이까지 구한다.
단 찾는 문자열 앞에 APC_Escape 문자열이 없어야 한다. */
static TypeLength GetLength_FindEscape
static TypeLength GetLength_FindEscape ////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen,
TypeCharC* APC_Escape, TypeLength AL_EscapeLen
)
//////////////////////////////////////
/*#######################################################################*/
{
if(AL_EscapeLen<1) return ZtCMainChars::
GetLength_Find(APC_Origin, AL_OriginLen, APC_Search,AL_SearchLen);
@ -3408,13 +3439,13 @@ namespace ZNsMain
return 0;
}/*
static TypeLength GetLength_FindEscape
static TypeLength GetLength_FindEscape ////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen,
TypeCharC* APC_Escape, TypeLength AL_EscapeLen
)
////////////////////////////////////*/
#########################################################################*/
template<typename TTyChars> static TypeLength GetLength_FindEscape(
const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch, const TTyChars& AR_CCharsEscape)
@ -3556,10 +3587,12 @@ namespace ZNsMain
static TypeLength GetLength_FindSerial(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
static TypeLength GetLength_FindSerialChar(
static TypeLength GetLength_FindSerialChar ////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
/*//////////*/ )
)
/*#######################################################################*/
{
// APC_Search 의 각 문자가 APC_Origin 에 순서대로 있어야 한다.
@ -3587,10 +3620,12 @@ namespace ZNsMain
return VL_FindCnt<AL_SearchLen ? 0 : VL_NowPos ;
}/*
static TypeLength GetLength_FindSerialChar(
static TypeLength GetLength_FindSerialChar
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
////////////// ) */
)
#########################################################################*/
template<typename TTyChars>
static TypeLength GetLength_FindSerialChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
@ -3603,8 +3638,11 @@ namespace ZNsMain
template<typename TTyChars>
static TypeLength GetLength_FindSerialChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch) */
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
)
/*#######################################################################*/
{
TypeLength VL_ArrSize=ARA_SearchArray.size();
TypeLength VL_NowSize=0;
@ -3635,8 +3673,11 @@ namespace ZNsMain
return VL_SumSize;
}/*
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
)
#########################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_FindSerialChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
@ -3647,13 +3688,13 @@ namespace ZNsMain
static TypeLength GetLength_FindSerialChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
template<typename TStringArray> static TypeLength GetLength_StartFind
template<typename TStringArray> static TypeLength GetLength_StartFind /////
(
TypeCharC* APC_Origin ,
TypeLength AL_Length , const
TStringArray& ARA_SearchArray
)
/*#################################################################*/
/*#######################################################################*/
{
/*//////////////////////////////////////////////////
@ -3706,13 +3747,14 @@ namespace ZNsMain
return VL_SumSize;
}/*
template<typename TStringArray> static TypeLength GetLength_StartFind
template<typename TStringArray> static TypeLength GetLength_StartFind /////
(
TypeCharC* APC_Origin,
TypeLength AL_Length , const
TStringArray& ARA_SearchArray
) */
/*#################################################################*/
)
#########################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_StartFind(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
@ -3725,12 +3767,12 @@ namespace ZNsMain
// GetLength_FindSerialChar() 와 비슷하나, 1 번 원소의 1 번 문자로 시작해야 하는 점이 다르다.
static TypeLength GetLength_StartFindChar
static TypeLength GetLength_StartFindChar /////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
)
/////////////////////////////////////////
/*#######################################################################*/
{
// APC_Search 의 각 문자가 APC_Origin 에 순서대로 있어야 한다.
@ -3768,12 +3810,12 @@ namespace ZNsMain
return VL_FindCnt<AL_SearchLen ? 0 : VL_NowPos ;
}/*
static TypeLength GetLength_StartFindChar
static TypeLength GetLength_StartFindChar /////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
TypeCharC* APC_Search, TypeLength AL_SearchLen
)
///////////////////////////////////////*/
#########################################################################*/
template<typename TTyChars> static TypeLength
GetLength_StartFindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
@ -3962,12 +4004,12 @@ namespace ZNsMain
static TypeLength GetLength_PermitRange(const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray) */
static TypeLength GetLength_PermitChar
static TypeLength GetLength_PermitChar ////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_Length,
TypeCharC* APC_Permit, TypeLength AL_PermitLength
)
//////////////////////////////////////
/*#######################################################################*/
{
if(AL_Length<1 || AL_PermitLength<1) return 0;
@ -3997,12 +4039,13 @@ namespace ZNsMain
return VL_SearchLen;
}/*
static TypeLength GetLength_PermitChar
static TypeLength GetLength_PermitChar ////////////////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_Length,
TypeCharC* APC_Permit, TypeLength AL_PermitLength
)
////////////////////////////////////*/
#########################################################################*/
template<typename TTyChars>
static TypeLength GetLength_PermitChar(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch)
@ -4328,12 +4371,12 @@ namespace ZNsMain
const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray) */
static TypeLength GetLength_NoPermitChar
static TypeLength GetLength_NoPermitChar //////////////////////////////////
(
TypeCharC* APC_Origin , TypeLength AL_Length,
TypeCharC* APC_NoPermit, TypeLength AL_NoPermitLength
)
////////////////////////////////////////
/*#######################################################################*/
{
if(AL_Length<1 || AL_NoPermitLength<1) return 0;
@ -4359,12 +4402,12 @@ namespace ZNsMain
return VL_SearchLen;
}/*
static TypeLength GetLength_NoPermitChar
static TypeLength GetLength_NoPermitChar //////////////////////////////////
(
TypeCharC* APC_Origin , TypeLength AL_Length,
TypeCharC* APC_NoPermit, TypeLength AL_NoPermitLength
)
//////////////////////////////////////*/
#########################################################################*/
template<typename TTyChars>
static TypeLength GetLength_NoPermitChar(
@ -4434,12 +4477,12 @@ namespace ZNsMain
const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
static TypeLength GetLength_NoPermitCharRange
static TypeLength GetLength_NoPermitCharRange ///////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_Length,
TypeCharC* APC_Permit, TypeLength AL_PermitLength
)
/*#########################################*/
/*#####################################################################*/
{
/*////////////////////////////////////////////////
@ -4481,12 +4524,12 @@ namespace ZNsMain
return VL_SearchLen;
}/*
static TypeLength GetLength_NoPermitCharRange
static TypeLength GetLength_NoPermitCharRange ///////////////////////////
(
TypeCharC* APC_Origin, TypeLength AL_Length,
TypeCharC* APC_Permit, TypeLength AL_PermitLength
)
###########################################*/
#######################################################################*/
template<typename TTyChars>
static TypeLength GetLength_NoPermitCharRange(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch)
@ -4654,15 +4697,16 @@ namespace ZNsMain
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
template<typename TStringArray>
static TypeLength GetLength_Repeat_FindChar( ///////////////////////////////
template<typename TStringArray> static TypeLength GetLength_Repeat_FindChar
(
int AI_RepeatMin ,
int AI_RepeatMax ,
TypeCharC* APC_Origin ,
TypeLength AL_Length ,
const TStringArray& ARA_SearchArray ,
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
/*/////////*/ )
)
/*#######################################################################*/
{
int VI_RepeatCnt=0;
TypeLength VL_LengthAll=0;
@ -4726,15 +4770,16 @@ namespace ZNsMain
return VL_LengthAll;
}/*
template<typename TStringArray>
static TypeLength GetLength_Repeat_FindChar( ///////////////////////////////
template<typename TStringArray> static TypeLength GetLength_Repeat_FindChar
(
int AI_RepeatMin ,
int AI_RepeatMax ,
TypeCharC* APC_Origin ,
TypeLength AL_Length ,
const TStringArray& ARA_SearchArray ,
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
/?/////////// ) */
)
#########################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_FindChar(
@ -5822,15 +5867,17 @@ namespace ZNsMain
//////////////////////////////////////////////////////////////////////////////*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitRange(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
static TypeLength GetLength_Repeat_NoPermitRange
(
int AI_RepeatMin, int AI_RepeatMax ,
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
)
{
return ZtCMainChars::GetLength_Repeat_NoPermitRange(
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
}/*
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitRange(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
}
/*###########################################################################*/
template<typename TStringArray> static TypeLength GetLength_Repeat_NoPermitChar
@ -5922,15 +5969,18 @@ namespace ZNsMain
#############################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitChar(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
static TypeLength GetLength_Repeat_NoPermitChar
(
int AI_RepeatMin, int AI_RepeatMax ,
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
)
/*################################################################################*/
{
return ZtCMainChars::GetLength_Repeat_NoPermitChar(
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
}/*
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitChar(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
}
/*################################################################################*/
template<typename TStringArray> static TypeLength GetLength_Repeat_NoPermitCharRange
@ -6022,15 +6072,18 @@ namespace ZNsMain
##################################################################################*/
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitCharRange(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
static TypeLength GetLength_Repeat_NoPermitCharRange
(
int AI_RepeatMin, int AI_RepeatMax ,
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
)
/*################################################################################*/
{
return ZtCMainChars::GetLength_Repeat_NoPermitCharRange(
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
}/*
template<typename TTyChars, typename TStringArray>
static TypeLength GetLength_Repeat_NoPermitCharRange(
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
}
/*################################################################################*/
public:
};/*
@ -6147,11 +6200,15 @@ namespace ZNsMain
}/*
ZtCSearchCChars()*/
ZtCSearchCChars(int AI_RepeatCntMin , int AI_RepeatCntMax ,
ZtCSearchCChars //////////////////////////////////////////////////
(
int AI_RepeatCntMin , int AI_RepeatCntMax ,
int AI_SearchCharMin, int AI_SearchCharMax,
int AI_SearchSumMin , int AI_SearchSumMax ,
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
/*//////////*/ )
ZERegFlag AE_ERegFlag,
ZESearchMax AE_ESearchMax = ZNsEnum::ZESearchMax_Over
)
/*##############################################################*/
{
Init(AI_RepeatCntMin, AI_RepeatCntMax, AI_SearchCharMin, AI_SearchCharMax, AI_SearchSumMin, AI_SearchSumMax, AE_ERegFlag, AE_ESearchMax);
}/*
@ -6175,11 +6232,15 @@ namespace ZNsMain
}/*
void Init()*/
void Init ( int AI_RepeatCntMin , int AI_RepeatCntMax ,
void Init ////////////////////////////////////////////////////////
(
int AI_RepeatCntMin , int AI_RepeatCntMax ,
int AI_SearchCharMin, int AI_SearchCharMax,
int AI_SearchSumMin , int AI_SearchSumMax ,
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
/*///////*/ )
ZERegFlag AE_ERegFlag ,
ZESearchMax AE_ESearchMax = ZNsEnum::ZESearchMax_Over
)
/*##############################################################*/
{
mi_RepeatCntMin =AI_RepeatCntMin ;
mi_RepeatCntMax =AI_RepeatCntMax ;
@ -6189,12 +6250,8 @@ namespace ZNsMain
mi_SearchSumMax =AI_SearchSumMax ;
me_ERegFlag =AE_ERegFlag ;
me_ESearchMax =AE_ESearchMax ;
}/*
void Init ( int AI_RepeatCntMin , int AI_RepeatCntMax ,
int AI_SearchCharMin, int AI_SearchCharMax,
int AI_SearchSumMin , int AI_SearchSumMax ,
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
/////////// ) */
}
/*##############################################################*/
ZtCSearchCChars& GetNowObj() {return *this;}

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -307,10 +307,10 @@ namespace ZNsMain
typedef const TTypCh* TypeCharCP ;
typedef const TTypCh* TypeCPChar ;
typedef TTypCh* TypePChar ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef TTypeString ZCTypeString;
typedef ZtCStringBase ZCStringBase;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef ZtCStringBase TypeThis ;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
@ -320,20 +320,21 @@ namespace ZNsMain
typedef typename ZCTypeString::TypeLong TypeLong ;
typedef typename ZCTypeString::TypeLong TypeSize ;
typedef typename ZCTypeString::TypeLong TypeLength ;
public:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef typename ZCTypeChars ::ZCChars ZCChars ;
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
public:
typedef const ZCChars ZCCharsC ;
typedef const ZCChars ZCCharViewC ;
public:
typedef TypeChar TypeData ;
typedef ZCStringList TypeList ;
public:
typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ;
typedef typename ZCCharType::TypeInt TypeCharInt;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
typedef ZtCCharType<ZtCStringBase> ZCCharType ;
typedef typename ZCCharType::TypeInt TypeCharInt;
typedef ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
typedef TypeSize size_type ; // for strl string/wstring
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

View File

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

View File

@ -376,8 +376,59 @@ namespace ZNsMain
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/
class ZCTypeView
{
public:
template<typename TTypChain> void OnMeetType()
{
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
template<typename TTypChain, typename TTypHelp> void OnMeetType(int& AR_CallNo)
{
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
}
};/*
class ZCTypeView*/
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
typedef ZtCTypeChain
<
double , ZtCTypeChain<
int , ZtCTypeChain<
wchar_t, ZtCTypeChain<
char ,
ZCEmpty > > >
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
int VI_CallNo = 0;
cout<<"*** tmpl chain size = "<<ZCTypeChain::Size()<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
( VO_ZCTypeView, (VI_CallNo = 0) );
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
cout<<"************************************"<<endl;
ZCTypeChain::ZtCIterChain<ZCTypeView>::
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
ZTypLong VI_CallCnt=0;
CStringBase VO_CStringBase;
@ -657,34 +708,168 @@ namespace ZNsMain
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInAfter(1th~3th => 6th)"<<endl;
VO_ZCBaseListEx10_2.SendRangeInAfter
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInAfter(1th~3th => 6th)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeInAfter
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
3,
VO_ZCBaseListEx10_2.HeadOpt(5)
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInBefore(4th~6th => 1th)"<<endl;
VO_ZCBaseListEx10_2.SendRangeInBefore
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInBefore(4th~6th => 1th)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeInBefore
(
VO_ZCBaseListEx10_2.HeadRef(3),
VO_ZCBaseListEx10_2.HeadRef(5),
3,
VO_ZCBaseListEx10_2.HeadOpt( )
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# VO_ZCBaseListEx10_2 for_iter() show "<<endl;
__for_iter(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it() show "<<endl;
__for_it(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it_r() show "<<endl;
__for_it_r(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<endl<<"# VO_ZCBaseListEx10_2 for_itc() show "<<endl;
__for_itc(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
{
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
}
cout<<"*****************************************************"<<endl;
_FOR_ITER_EASY_START0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
{
cout<<"# list10_2 const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
cout<<"*****************************************************"<<endl;
_FOR_ITER_EASY_START0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
{
cout<<"# list10_2 rev const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
cout<<"*****************************************************"<<endl;
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 3th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(3th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(6th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(5),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th after)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveLinkIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(1th, 3th, 6th after)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef( ),
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(5),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(5th, 6th, 1th before)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef(4),
VO_ZCBaseListEx10_2.HeadRef(5),
VO_ZCBaseListEx10_2.HeadRef( ),
false
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(2th, 3th, 4th after)"<<endl;
VO_ZCBaseListEx10_2.MoveRangeIn
(
VO_ZCBaseListEx10_2.HeadRef(1),
VO_ZCBaseListEx10_2.HeadRef(2),
VO_ZCBaseListEx10_2.HeadRef(3),
true
);
cout<<"*****************************************************"<<endl;
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/

View File

@ -71,12 +71,14 @@ namespace ZNsMain
typedef ZNsIFaceEx::ZtCLink
<ZCEmpty, ZCLinkData> ZCLinkBase;
typedef ZNsIFaceEx::ZtCLink
<string , ZCEmpty > ZCLinkStr ;
public:
typedef ZCLinkData ZCLinkCStr ;
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList;
typedef ZtCLinkList<ZCLinkBase> ZCLinkDataList;
typedef ZtCLinkList<ZCLinkStr > ZCLinkStrList ;
typedef typename
ZCLinkStrList::ZCLinkOpt ZCStrLinkOpt ;
ZCLinkDataList::ZCLinkOpt ZCStrLinkOpt ;
public:
@ -109,22 +111,27 @@ namespace ZNsMain
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
ZTypLong VI_CallCnt =0 ;
ZCLinkStrList VO_ZCLinkStrLis1;
ZCLinkStrList VO_ZCLinkStrLis2;
ZCStrLinkOpt VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
ZCLinkDataList VO_CDataList1;
ZCLinkDataList VO_CDataList2;
ZCLinkStrList VO_CStrLis20 ;
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
VO_ZCLinkStrLis1.AddTail()().GetData()=string("123");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("ABC");
VO_ZCLinkStrLis1.AddTail()().GetData()=string("xyz");
VO_CDataList1.AddTail()().GetData()=string("123");
VO_CDataList1.AddTail()().GetData()=string("ABC");
VO_CDataList1.AddTail()().GetData()=string("xyz");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z01");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z02");
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z03");
VO_CDataList2.AddTail()().GetData()=string("Z01");
VO_CDataList2.AddTail()().GetData()=string("Z02");
VO_CDataList2.AddTail()().GetData()=string("Z03");
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
VO_CStrLis20.AddTail()()=string("__1");
VO_CStrLis20.AddTail()()=string("__2");
VO_CStrLis20.AddTail()()=string("__3");
VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
@ -136,7 +143,7 @@ namespace ZNsMain
}/*
if(VO_StrLinkOpt.has_value())*/
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
VO_StrLinkOpt = VO_CDataList1.GetTailOpt();
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
@ -150,107 +157,175 @@ namespace ZNsMain
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2);
VO_CDataList1.JoinHead(VO_CDataList2);
cout<<"# after VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2)"<<endl;
cout<<"# after VO_CDataList1.JoinHead(VO_CDataList2)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1 ;
VO_CDataList2 = VO_CDataList1 ;
cout<<"# after VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1"<<endl;
cout<<"# after VO_CDataList2 = VO_CDataList1"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&AppendEach);
VO_CDataList1.IterElement(&AppendEach);
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SendRangeOutAfter
VO_CDataList1.SendRangeOutAfter
(
VO_ZCLinkStrLis1.GetObjOpt(1).value()
, VO_ZCLinkStrLis1.GetObjOpt(2).value()
VO_CDataList1.GetObjOpt(1).value()
, VO_CDataList1.GetObjOpt(2).value()
, 2
, VO_ZCLinkStrLis2
, VO_ZCLinkStrLis2.GetObjOpt(1)
, VO_CDataList2
, VO_CDataList2.GetObjOpt(1)
) ;
cout<<"# after VO_ZCLinkStrLis1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
cout<<"# after VO_CDataList1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.SendRangeOutBefore
VO_CDataList2.SendRangeOutBefore
(
VO_ZCLinkStrLis2.GetObjOpt(7).value()
, VO_ZCLinkStrLis2.GetObjOpt(8).value()
VO_CDataList2.GetObjOpt(7).value()
, VO_CDataList2.GetObjOpt(8).value()
, 2
, VO_ZCLinkStrLis1
, VO_ZCLinkStrLis1.GetObjOpt(1)
, VO_CDataList1
, VO_CDataList1.GetObjOpt(1)
) ;
cout<<"# after VO_ZCLinkStrLis2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
cout<<"# after VO_CDataList2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) );
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl;
VO_CDataList2.CopyThis( RR(VO_CDataList1) );
cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(1));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 2th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(11));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 12th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.SwapLink
(VO_ZCLinkStrLis1.HeadRef(11), VO_ZCLinkStrLis1.HeadRef(10));
cout<<"# after VO_ZCLinkStrLis1.SwapLink(12th, 11th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.SwapLink
(VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.MoveLinkTail
(VO_ZCLinkStrLis1.HeadRef());
cout<<"# after VO_ZCLinkStrLis1.MoveLinkTail(1th)"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
VO_CDataList1.MoveLinkTail
(VO_CDataList1.HeadRef());
cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
_FOR_ITER_EASY_START0_C (VO_CDataList1, VH_NowIter, i)
{
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
}
_FOR_ITER_EASY_CLOSE0_C (VO_CDataList1, VH_NowIter, i)
cout<<"***********************************************"<<endl;
_FOR_ITER_EASY_START0_RC(VO_CDataList1, VH_NowIter, i)
{
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
}
_FOR_ITER_EASY_CLOSE0_RC(VO_CDataList1, VH_NowIter, i)
cout<<"***********************************************"<<endl;
__for_it(ZCLinkDataList, VO_CDataList1, VH_NowIter)
{
cout<<"# list1 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter).GetData()<<endl;
}
cout<<"***********************************************"<<endl;
__for_it(ZCLinkStrList , VO_CStrLis20, VH_NowIter)
{
cout<<"# list20 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter)<<endl;
}
_FOR_ITER_EASY_START0_C(VO_CStrLis20, VH_NowIter, i)
{
cout<<"# list20 const: "<<(i+1)<<" "<<VO_CStrLis20.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0_C(VO_CStrLis20, VH_NowIter, i)
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef( ),
VO_CDataList1.HeadRef(1 ),
VO_CDataList1.HeadRef(11),
true
);
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 12th, after)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef(1 ),
VO_CDataList1.HeadRef(11),
VO_CDataList1.HeadRef( ),
false
);
cout<<"# after VO_CDataList1.MoveRangeIn(2th, 12th, 1th, before)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_CDataList1.MoveRangeIn
(
VO_CDataList1.HeadRef( ),
VO_CDataList1.HeadRef(1),
VO_CDataList1.HeadRef(2),
false
);
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 3th, before)"<<endl;
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
return 0;
}/*
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;
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(1)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveLinkIn(1th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(5)
, *VO_ListOfStr11.GetLinkPtr(1)
, false
);
cout<<"# list11 MoveLinkIn(5th, 1th, before)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveLinkIn
(
*VO_ListOfStr11.GetLinkPtr(6)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveLinkIn(6th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.MoveRangeIn
(
*VO_ListOfStr11.GetLinkPtr(1)
, *VO_ListOfStr11.GetLinkPtr(2)
, *VO_ListOfStr11.GetLinkPtr(7)
, true
);
cout<<"# list11 MoveRangeIn(1th, 2th, 7th, after)"<<endl;
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
typedef CStringList1::iterator iterator1 ;
typedef CStringList1::ZCLinkPointEx iteratorEx1;
typedef CStringList1::ZCLinkPointC iteratorC1 ;
//typedef CStringList1::ZCLinkPointEx iteratorEx1;
typedef CStringList1::ZCNodePointN iteratorN1 ;
iterator1 VO_Iter1 = VO_ListOfStr11.end();
iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
iteratorC1 VO_IterC1(VO_Iter1);
int VI_LoopCnt = 0;
//iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
iteratorN1 VO_IterN1(VO_Iter1);
__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 컴파일
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -D_DEBUG
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas -D_DEBUG
./ZtCObjList_000_mw.exe
./ZtCObjList_000_mw_D.exe

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