From 2e5c90155fbecd57ec6c57da30290244d7276e6d Mon Sep 17 00:00:00 2001 From: sauron Date: Sun, 7 Sep 2025 12:21:07 +0900 Subject: [PATCH] commit 2025-09-07 12:20 edit a bit ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 64 +++++++++++++++++++++++++++++++++++++++ ZCppMainTest/ZftMakeTuple_000.cpp | 23 +++++++------- 2 files changed, 76 insertions(+), 11 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 0829949..e4749ef 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -1237,6 +1237,70 @@ namespace ZNsMain int VariMy=0; ZtStTuple myt1 = ZftMakeTuple(ZftMCP(VariMy)); + ■ std::tuple<> 용례-1 -- 2025-09-07 12:08 + + #include + #include + + int main() { + int nownum=42; + + // Creating a tuple + std::tuple myTuple(nownum, "Hello", 3.14); + + // Accessing elements + std::cout << std::get<0>(myTuple) << "\n"; // Outputs: 42 + std::cout << std::get<1>(myTuple) << "\n"; // Outputs: Hello + std::cout << std::get<2>(myTuple) << "\n"; // Outputs: 3.14 + + // Modifying elements + std::get<1>(myTuple) = "World"; + std::cout << std::get<1>(myTuple) << "\n"; // Outputs: World + + return 0; + } + + ■ std::tuple<> 용례-2 -- 2025-09-07 12:09 + + #include + #include + + std::tuple getValues() { + return {42, 3.14, "Hello"}; + } + + int main() { + auto [x, y, z] = getValues(); // Structured binding (C++17) + std::cout << x << ", " << y << ", " << z << "\n"; // Outputs: 42, 3.14, Hello + return 0; + } + + ■ std::tuple<> 용례-3 -- 2025-09-07 12:11 + + #include + #include + #include + + int main() { + // 기본 생성 및 값 할당 + std::tuple tpl; + std::get<0>(tpl) = "Example"; + std::get<1>(tpl) = 42 ; + std::get<2>(tpl) = 3.14 ; + + // make_tuple을 사용한 초기화 + auto tpl2 = std::make_tuple("Hello", 100, 1.23); + + // 구조적 바인딩 (C++17 이상) + auto [str, num, val] = tpl2; + + std::cout << "Tuple 1: " << std::get<0>(tpl) << ", " << std::get<1>(tpl) << ", " << std::get<2>(tpl) << '\n'; + std::cout << "Tuple 2: " << str << ", " << num << ", " << val << '\n'; + + return 0; + } + + //////////////////////////////////////////////////////////////////////////////////////////*/ template< typename Type1 =void, typename Type2 =void, diff --git a/ZCppMainTest/ZftMakeTuple_000.cpp b/ZCppMainTest/ZftMakeTuple_000.cpp index 3aead41..8c71e29 100644 --- a/ZCppMainTest/ZftMakeTuple_000.cpp +++ b/ZCppMainTest/ZftMakeTuple_000.cpp @@ -23,8 +23,9 @@ namespace ZNsMain ZCStringStd VO_BuffCStr("myBuff") ; ZTypInt VI_NowCnt = 0 ; + cout<<"# __cplusplus : "<<__cplusplus< myt10= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt)); - ZtStTuple - myt11= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), 20250906); - ZtStTuple - myt12= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), 20250906, wchar_t(0)); + ZtStTuple + myt11= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), (long)20250906); + ZtStTuple + myt12= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), (long)20250906, wchar_t(0)); #else cout<<"# Use auto keyword for ZtStTuple<> variable"<