{"id":64,"date":"2025-05-19T17:55:01","date_gmt":"2025-05-19T09:55:01","guid":{"rendered":"http:\/\/112.74.48.51\/?p=64"},"modified":"2025-05-19T17:55:01","modified_gmt":"2025-05-19T09:55:01","slug":"c17%e9%80%9f%e8%a7%88","status":"publish","type":"post","link":"https:\/\/look123.top\/index.php\/2025\/05\/19\/c17%e9%80%9f%e8%a7%88\/","title":{"rendered":"C++17\u901f\u89c8"},"content":{"rendered":"\n<p>C++17 \u662f\u7ee7 C++11\/14 \u4e4b\u540e\u7684\u91cd\u8981\u66f4\u65b0\uff0c\u5f15\u5165\u4e86\u591a\u9879\u63d0\u5347\u5f00\u53d1\u6548\u7387\u4e0e\u6027\u80fd\u7684\u6838\u5fc3\u7279\u6027\u3002\u4ee5\u4e0b\u5206\u6a21\u5757\u603b\u7ed3\u5176\u6838\u5fc3\u8bed\u8a00\u4e0e\u6807\u51c6\u5e93\u6539\u8fdb\uff1a<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"UkHN-1747648101239\"><a href=\"undefined\"><\/a><strong>\u200b<\/strong><strong>\u4e00\u3001\u6838\u5fc3\u8bed\u8a00\u7279\u6027<\/strong><strong><\/strong><\/h4>\n\n\n\n<p>\u200b<strong>1. \u7ed3\u6784\u5316\u7ed1\u5b9a\uff08Structured Bindings\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u89e3\u6784\u590d\u6742\u7c7b\u578b\uff08\u5982\u00a0pair\u3001tuple\u3001\u6570\u7ec4\u3001\u7ed3\u6784\u4f53\uff09\u4e3a\u72ec\u7acb\u53d8\u91cf\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>std::map&lt;std::string, int> myMap = {{\"Alice\", 25}, {\"Bob\", 30}};\nfor (const auto&amp; &#91;name, age] : myMap) {  \/\/ \u89e3\u6784 key \u548c value\n    std::cout &lt;&lt; name &lt;&lt; \": \" &lt;&lt; age &lt;&lt; \"\\n\";\n}\n \nstd::tuple&lt;int, double, std::string> t(1, 3.14, \"test\");\nauto &#91;a, b, c] = t;  \/\/ a=1, b=3.14, c=\"test\"<\/code><\/pre>\n\n\n\n<p>\u200b<strong>2.&nbsp;if constexpr\uff08\u7f16\u8bd1\u65f6\u6761\u4ef6\u5206\u652f\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u6839\u636e\u7f16\u8bd1\u671f\u6761\u4ef6\u9009\u62e9\u4ee3\u7801\u5206\u652f\uff0c\u907f\u514d\u6a21\u677f\u4ee3\u7801\u5197\u4f59\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>template&lt;typename T>\nauto process(T val) {\n    if constexpr (std::is_integral_v&lt;T>) {\n        return val + 1;  \/\/ \u4ec5\u5bf9\u6574\u6570\u7c7b\u578b\u751f\u6548\n    } else {\n        return val * 0.5;  \/\/ \u5bf9\u6d6e\u70b9\u7c7b\u578b\u751f\u6548\n    }\n}\nstd::cout &lt;&lt; process(5) &lt;&lt; \"\\n\";    \/\/ \u8f93\u51fa 6\nstd::cout &lt;&lt; process(3.14) &lt;&lt; \"\\n\"; \/\/ \u8f93\u51fa 1.57<\/code><\/pre>\n\n\n\n<p>\u200b<strong>3. \u5185\u8054\u53d8\u91cf\uff08Inline Variables\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u5141\u8bb8\u5934\u6587\u4ef6\u4e2d\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\uff0c\u6d88\u9664\u591a\u6b21\u5b9a\u4e49\u7684\u94fe\u63a5\u9519\u8bef\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ header.h\ninline int globalValue = 42;  \/\/ \u591a\u6587\u4ef6\u5305\u542b\u65f6\u5b89\u5168\n \n\/\/ \u7c7b\u5185\u9759\u6001\u6210\u5458\u521d\u59cb\u5316\nclass MyClass {\npublic:\n    inline static int count = 0;  \/\/ \u76f4\u63a5\u521d\u59cb\u5316\uff0c\u65e0\u9700 cpp \u6587\u4ef6\u5b9a\u4e49\n};<\/code><\/pre>\n\n\n\n<p>\u200b<strong>4. \u6298\u53e0\u8868\u8fbe\u5f0f\uff08Fold Expressions\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u7b80\u5316\u53ef\u53d8\u53c2\u6570\u6a21\u677f\u7684\u9012\u5f52\u5c55\u5f00\uff0c\u652f\u6301\u56db\u79cd\u6298\u53e0\u6a21\u5f0f\uff08\u5de6\/\u53f3\u6298\u53e0\uff0c\u521d\u59cb\u503c\u53ef\u9009\uff09\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u8bed\u6cd5<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>( &#8230; op args )\u00a0\u2192 \u5de6\u6298\u53e0\uff08\u5982\u00a0(args1 + args2) + args3\uff09<\/li>\n\n\n\n<li>( args op &#8230; )\u00a0\u2192 \u53f3\u6298\u53e0\uff08\u5982\u00a0args1 + (args2 + args3)\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a\u6c42\u548c\u4e0e\u903b\u8f91\u5224\u65ad\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>template&lt;typename... Args>\nauto sum(Args... args) {\n    return (... + args);  \/\/ \u5c55\u5f00\u4e3a args1 + args2 + ... \n}\nsum(1, 2, 3);  \/\/ 6\n \ntemplate&lt;typename... Args>\nbool allTrue(Args... args) {\n    return (... &amp;&amp; args); \/\/ \u903b\u8f91\u4e0e\u6298\u53e0\n}\nallTrue(true, false, true); \/\/ false<\/code><\/pre>\n\n\n\n<p>\u200b<strong>5. \u7c7b\u6a21\u677f\u53c2\u6570\u63a8\u5bfc\uff08CTAD\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u65e0\u9700\u663e\u5f0f\u6307\u5b9a\u6a21\u677f\u53c2\u6570\uff0c\u6839\u636e\u6784\u9020\u51fd\u6570\u53c2\u6570\u81ea\u52a8\u63a8\u5bfc\u6a21\u677f\u7c7b\u578b\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>std::vector vec = {1, 2, 3};   \/\/ \u81ea\u52a8\u63a8\u5bfc\u4e3a vector&lt;int>\nstd::pair p(42, \"hello\");      \/\/ \u63a8\u5bfc\u4e3a pair&lt;int, const char*>\n \n\/\/ \u81ea\u5b9a\u4e49\u7c7b\u6a21\u677f\u63a8\u5bfc\u89c4\u5219\ntemplate&lt;typename T>\nclass MyBox {\npublic:\n    MyBox(T val) : value(val) {}\n};\nMyBox box(3.14);  \/\/ MyBox&lt;double><\/code><\/pre>\n\n\n\n<p>\u200b<strong>6.&nbsp;constexpr if&nbsp;\u4e0e&nbsp;constexpr Lambda<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200bconstexpr if\uff1a\u7f16\u8bd1\u65f6\u5206\u652f\uff0c\u914d\u5408\u6a21\u677f\u4ee3\u7801\u4f18\u5316\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>template&lt;typename T>\nauto getValue(T t) {\n    if constexpr (std::is_pointer_v&lt;T>) {\n        return *t;  \/\/ \u82e5 T \u662f\u6307\u9488\u5219\u89e3\u5f15\u7528\n    } else {\n        return t;\n    }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200bconstexpr Lambda\uff1a\u53ef\u5728\u7f16\u8bd1\u671f\u6c42\u503c\u7684 Lambda\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>constexpr auto square = &#91;](int x) { return x * x; };\nstatic_assert(square(5) == 25);  \/\/ \u7f16\u8bd1\u65f6\u8ba1\u7b97<\/code><\/pre>\n\n\n\n<p>\u200b<strong>7.&nbsp;nodiscard&nbsp;\u4e0e&nbsp;fallthrough&nbsp;\u5c5e\u6027<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b[[nodiscard]]\uff1a\u5f3a\u5236\u68c0\u67e5\u51fd\u6570\u8fd4\u56de\u503c\uff0c\u907f\u514d\u5ffd\u7565\u9519\u8bef\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;&#91;nodiscard]] int createResource() { \/* ... *\/ }\ncreateResource(); \/\/ \u8b66\u544a\uff1a\u672a\u4f7f\u7528\u8fd4\u56de\u503c<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b[[fallthrough]]\uff1a\u663e\u5f0f\u6807\u8bb0\u00a0switch\u00a0\u4e2d\u7684\u7a7f\u900f\u884c\u4e3a\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>switch (value) {\n    case 1:\n        prepare();\n        &#91;&#91;fallthrough]];  \/\/ \u660e\u786e\u544a\u77e5\u7f16\u8bd1\u5668\u6709\u610f\u7a7f\u900f\n    case 2:\n        handle();\n        break;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ykMv-1747648101469\"><a href=\"undefined\"><\/a><strong>\u200b<\/strong><strong>\u4e8c\u3001\u6807\u51c6\u5e93\u66f4\u65b0<\/strong><strong><\/strong><\/h4>\n\n\n\n<p>\u200b<strong>1.&nbsp;std::optional<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u8868\u793a\u53ef\u80fd\u5b58\u5728\u6216\u4e0d\u5b58\u5728\u7684\u503c\uff0c\u907f\u514d\u4f7f\u7528\u7279\u6b8a\u503c\uff08\u5982\u00a0-1\u00a0\u6216\u00a0nullptr\uff09\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>std::optional&lt;int> findById(int id) {\n    if (id == 42) return 42;\n    return std::nullopt;  \/\/ \u65e0\u7ed3\u679c\n}\nauto result = findById(10);\nif (result.has_value()) {\n    std::cout &lt;&lt; *result &lt;&lt; \"\\n\";  \/\/ \u89e3\u5f15\u7528\n}<\/code><\/pre>\n\n\n\n<p>\u200b<strong>2.&nbsp;std::variant&nbsp;\u4e0e&nbsp;std::visit<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200bstd::variant\uff1a\u7c7b\u578b\u5b89\u5168\u7684\u8054\u5408\u4f53\uff08\u53ef\u5b58\u50a8\u591a\u79cd\u7c7b\u578b\u4e4b\u4e00\uff09\u3002<\/li>\n\n\n\n<li>\u200bstd::visit\uff1a\u8bbf\u95ee\u00a0variant\u00a0\u503c\u7684\u901a\u7528\u65b9\u5f0f\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>std::variant&lt;int, std::string, double> data;\ndata = \"Hello\";  \/\/ \u5b58\u50a8\u5b57\u7b26\u4e32\n\/\/ \u8bbf\u95ee variant \u503c\nstd::visit(&#91;](auto&amp;&amp; arg) {\n    std::cout &lt;&lt; arg &lt;&lt; \"\\n\";  \/\/ \u81ea\u52a8\u63a8\u5bfc\u7c7b\u578b\n}, data);<\/code><\/pre>\n\n\n\n<p>\u200b<strong>3.&nbsp;std::any<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u7c7b\u578b\u64e6\u9664\u5bb9\u5668\uff0c\u53ef\u5b58\u50a8\u4efb\u610f\u7c7b\u578b\u7684\u503c\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>std::any data;\ndata = 42;                     \/\/ \u5b58\u50a8 int\ndata = std::string(\"Hello\");   \/\/ \u66ff\u6362\u4e3a std::string\nif (data.type() == typeid(int)) {\n    std::cout &lt;&lt; std::any_cast&lt;int>(data) &lt;&lt; \"\\n\";\n}<\/code><\/pre>\n\n\n\n<p>\u200b<strong>4. \u6587\u4ef6\u7cfb\u7edf\u5e93\uff08std::filesystem\uff09\u200b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u8de8\u5e73\u53f0\u6587\u4ef6\u4e0e\u76ee\u5f55\u64cd\u4f5c\u6807\u51c6\u5316\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;filesystem>\nnamespace fs = std::filesystem;\n \nfs::path dir = \"docs\";\nif (!fs::exists(dir)) {\n    fs::create_directory(dir);  \/\/ \u521b\u5efa\u76ee\u5f55\n}\nfor (const auto&amp; entry : fs::directory_iterator(dir)) {\n    std::cout &lt;&lt; entry.path() &lt;&lt; \"\\n\";  \/\/ \u904d\u5386\u6587\u4ef6\n}<\/code><\/pre>\n\n\n\n<p>\u200b<strong>5. \u5e76\u884c\u7b97\u6cd5<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1aSTL \u7b97\u6cd5\u652f\u6301\u5e76\u884c\u6267\u884c\u7b56\u7565\uff08std::execution::par\uff09\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;execution>\n#include &lt;vector>\n#include &lt;algorithm>\n \nstd::vector&lt;int> vec = {5, 3, 1, 4, 2};\nstd::sort(std::execution::par, vec.begin(), vec.end()); \/\/ \u5e76\u884c\u6392\u5e8f<\/code><\/pre>\n\n\n\n<p>\u200b<strong>6.&nbsp;std::string_view<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u529f\u80fd<\/strong>\uff1a\u975e\u5360\u6709\u5f0f\u5b57\u7b26\u4e32\u89c6\u56fe\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u62f7\u8d1d\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>void print(std::string_view sv) {\n    std::cout &lt;&lt; sv &lt;&lt; \"\\n\";\n}\nprint(\"Hello\");         \/\/ \u65e0\u9700\u8f6c\u6362\nprint(std::string(\"C++\"));  \/\/ \u9002\u914d std::string<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ZHGX-1747648101628\"><a href=\"undefined\"><\/a><strong>\u200b<\/strong><strong>\u4e09\u3001\u5176\u4ed6\u91cd\u8981\u6539\u8fdb<\/strong><strong><\/strong><\/h4>\n\n\n\n<p>\u200b<strong>1. \u5d4c\u5957\u547d\u540d\u7a7a\u95f4\u5b9a\u4e49\uff08\u7b80\u6d01\u8bed\u6cd5\uff09\u200b<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace A::B::C {  \/\/ \u4ee3\u66ff namespace A { namespace B { namespace C { } } }\n    class MyClass {};\n}<\/code><\/pre>\n\n\n\n<p>\u200b<strong>2. \u5f3a\u5236\u7701\u7565\u62f7\u8d1d\uff08Guaranteed Copy Elision\uff09\u200b<\/strong><\/p>\n\n\n\n<p>\u7f16\u8bd1\u5668\u5fc5\u987b\u7701\u7565\u4e34\u65f6\u5bf9\u8c61\u7684\u62f7\u8d1d\u6216\u79fb\u52a8\u64cd\u4f5c\uff0c\u76f4\u63a5\u6784\u9020\u76ee\u6807\u5bf9\u8c61\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>struct LargeData {\n    LargeData(int) {} \/\/ \u6784\u9020\u51fd\u6570\n};\nLargeData buildData() {\n    return LargeData(42);  \/\/ \u76f4\u63a5\u6784\u9020\uff0c\u65e0\u62f7\u8d1d\n}\nauto data = buildData();  \/\/ \u672a\u8c03\u7528\u62f7\u8d1d\u6784\u9020\u51fd\u6570<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"g4S1-1747648101674\"><a href=\"undefined\"><\/a><strong>\u200b<\/strong><strong>\u56db\u3001\u7f16\u8bd1\u5668\u652f\u6301<\/strong><strong><\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>GCC<\/strong>\uff1a7.0+ \u652f\u6301\u5168\u90e8\u7279\u6027\u3002<\/li>\n\n\n\n<li>\u200b<strong>Clang<\/strong>\uff1a5.0+ \u5b8c\u5168\u652f\u6301\u3002<\/li>\n\n\n\n<li>\u200b<strong>MSVC<\/strong>\uff1aVisual Studio 2017 15.7+ \u652f\u6301\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"g4Tt-1747648101687\"><a href=\"undefined\"><\/a><strong>\u200b<\/strong><strong>\u4e94\u3001\u603b\u7ed3<\/strong><strong><\/strong><\/h4>\n\n\n\n<p>C++17 \u7684\u5173\u952e\u4f18\u5316\u65b9\u5411\u5305\u62ec\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u200b<strong>\u4ee3\u7801\u7b80\u6d01\u6027<\/strong>\uff1a\u7ed3\u6784\u5316\u7ed1\u5b9a\u3001\u7c7b\u6a21\u677f\u53c2\u6570\u63a8\u5bfc\u3001if constexpr\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u6027\u80fd\u589e\u5f3a<\/strong>\uff1a\u6298\u53e0\u8868\u8fbe\u5f0f\u3001\u5e76\u884c\u7b97\u6cd5\u3001\u6587\u4ef6\u7cfb\u7edf\u5e93\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u7c7b\u578b\u5b89\u5168<\/strong>\uff1astd::optional\u3001std::variant\u3001std::any\u3002<\/li>\n\n\n\n<li>\u200b<strong>\u7f16\u8bd1\u671f\u80fd\u529b<\/strong>\uff1aconstexpr\u6269\u5c55\u3001\u9759\u6001\u6761\u4ef6\u5206\u652f\u3002<\/li>\n<\/ol>\n\n\n\n<p>C++17 \u663e\u8457\u63d0\u5347\u4e86\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u4e0e\u6027\u80fd\uff0c\u4f7f\u5176\u66f4\u9002\u5408\u5927\u578b\u9879\u76ee\u548c\u9ad8\u6027\u80fd\u8ba1\u7b97\u573a\u666f\u3002\u5efa\u8bae\u4f18\u5148\u638c\u63e1<strong>\u7ed3\u6784\u5316\u7ed1\u5b9a<\/strong>\u3001<strong>\u5e76\u884c\u7b97\u6cd5<\/strong>\u548c<strong>\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c<\/strong>\uff0c\u4ee5\u5145\u5206\u91ca\u653e\u73b0\u4ee3C++\u7684\u6f5c\u529b\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C++17 \u662f\u7ee7 C++11\/14 \u4e4b\u540e\u7684\u91cd\u8981\u66f4\u65b0\uff0c\u5f15\u5165\u4e86\u591a\u9879\u63d0\u5347\u5f00\u53d1\u6548\u7387\u4e0e\u6027\u80fd\u7684\u6838\u5fc3\u7279\u6027\u3002\u4ee5\u4e0b\u5206\u6a21\u5757\u603b\u7ed3\u5176\u6838 &#8230; <a title=\"C++17\u901f\u89c8\" class=\"read-more\" href=\"https:\/\/look123.top\/index.php\/2025\/05\/19\/c17%e9%80%9f%e8%a7%88\/\" aria-label=\"\u9605\u8bfb C++17\u901f\u89c8\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-cpp_qt"],"_links":{"self":[{"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":1,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/look123.top\/index.php\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}