{"id":84797,"date":"2026-07-26T17:57:01","date_gmt":"2026-07-26T09:57:01","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/84797.html"},"modified":"2026-07-26T17:57:01","modified_gmt":"2026-07-26T09:57:01","slug":"%e4%bb%bfmuduo%e5%ba%93%e7%9a%84%e9%ab%98%e5%b9%b6%e5%8f%91%e6%9c%8d%e5%8a%a1%e5%99%a8-%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e4%b8%8eany%e7%b1%bb%e4%bb%8b%e7%bb%8d%e5%8f%8a","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/84797.html","title":{"rendered":"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0"},"content":{"rendered":"<p>\u00a0 \u00a0 \u00a0 \u00a0 \u672c\u671f\u6211\u4eec\u63a5\u7740\u6df1\u5165\u9879\u76ee\u7684\u7f16\u5199\u3002<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u76f8\u5173\u4ee3\u7801\u5df2\u7ecf\u4e0a\u4f20\u81f3\u4f5c\u8005\u4e2a\u4ebagitee&#xff1a;\u4effmuduo\u670d\u52a1\u5668: \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u5b9e\u73b0\u4e00\u4e2a\u4eff\u9020muduo\u5e93\u7684\u7b80\u6613\u5e76\u53d1\u670d\u52a1\u5668&#xff0c;\u4e3a\u4e2a\u4eba\u9879\u76ee&#xff0c;\u53c2\u8003\u5373\u53ef\u559c\u6b22\u8bf7\u70b9\u4e2a\u8d5e\u8c22\u8c22<\/p>\n<p id=\"main-toc\">\u76ee\u5f55<\/p>\n<p id=\"%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F-toc\" style=\"margin-left:0px\">\u6b63\u5219\u8868\u8fbe\u5f0f<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%3Cregex%3E%E5%BA%93%E7%9A%84%E6%8E%A5%E5%8F%A3%E4%BB%8B%E7%BB%8D-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 <\/p>\n<p>   \u5e93\u7684\u63a5\u53e3\u4ecb\u7ecd\n  <\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%A7%A3%E6%9E%90%E5%A4%84%E7%90%86HTTP%E8%AF%B7%E6%B1%82-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 \u6b63\u5219\u8868\u8fbe\u5f0f\u89e3\u6790\u5904\u7406HTTP\u8bf7\u6c42<\/p>\n<p id=\"any%E7%B1%BB-toc\" style=\"margin-left:0px\">any\u7c7b<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%3Cany%3E%E7%B1%BB%E4%BB%8B%E7%BB%8D-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 <\/p>\n<p>   \u7c7b\u4ecb\u7ecd\n  <\/p>\n<p id=\"%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%E9%BB%98%E8%AE%A4%E6%9E%84%E9%80%A0%E4%B8%8E%E5%80%BC%E6%9E%84%E9%80%A0%20%2F%20%E8%B5%8B%E5%80%BC-toc\" style=\"margin-left:80px\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u9ed8\u8ba4\u6784\u9020\u4e0e\u503c\u6784\u9020 \/ \u8d4b\u503c<\/p>\n<p id=\"%C2%A0std%3A%3Amake_any%3CT%3E(args...)-toc\" style=\"margin-left:80px\">\u00a0std::make_any<\/p>\n<p>   (args&#8230;)\n  <\/p>\n<p id=\"%C2%A0has_value()-toc\" style=\"margin-left:80px\">\u00a0has_value()<\/p>\n<p id=\"%C2%A0%20type()-toc\" style=\"margin-left:80px\">\u00a0 type()<\/p>\n<p id=\"%C2%A0std%3A%3Aany_cast%3CT%3E-toc\" style=\"margin-left:80px\">\u00a0std::any_cast\n  <\/p>\n<p id=\"%C2%A0emplace%3CT%3E(args...)-toc\" style=\"margin-left:80px\">\u00a0emplace<\/p>\n<p>   (args&#8230;)\n  <\/p>\n<p id=\"%C2%A0reset()-toc\" style=\"margin-left:80px\">\u00a0reset()<\/p>\n<p id=\"%C2%A0%C2%A0swap()-toc\" style=\"margin-left:80px\">\u00a0\u00a0swap()<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%E8%AE%BE%E8%AE%A1%E6%80%9D%E6%83%B3-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 \u8bbe\u8ba1\u601d\u60f3<\/p>\n<hr id=\"hr-toc\" \/>\n<h2 id=\"%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F\">\u6b63\u5219\u8868\u8fbe\u5f0f<\/h2>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6b63\u5219\u8868\u8fbe\u5f0f(regular expression)\u63cf\u8ff0\u4e86\u4e00\u79cd\u5b57\u7b26\u4e32\u5339\u914d\u7684\u6a21\u5f0f&#xff08;pattern&#xff09;&#xff0c;\u53ef\u4ee5\u7528\u6765\u68c0\u67e5\u4e00\u4e2a\u4e32\u662f\u5426\u542b\u6709\u67d0\u79cd\u5b50\u4e32\u3001\u5c06\u5339\u914d\u7684\u5b50\u4e32\u66ff\u6362\u6216\u8005\u4ece\u67d0\u4e2a\u4e32\u4e2d\u53d6\u51fa\u7b26\u5408\u67d0\u4e2a\u6761\u4ef6\u7684\u5b50\u4e32\u7b49\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u4f7f\u7528&#xff0c;\u53ef\u4ee5\u4f7f\u5f97HTTP\u8bf7\u6c42\u7684\u89e3\u6790\u66f4\u52a0\u7b80\u5355&#xff08;\u8fd9\u91cc\u6307\u7684\u662f\u7a0b\u5e8f\u5458\u7684\u5de5\u4f5c\u53d8\u5f97\u7b80\u5355&#xff0c;\u8fd9\u5e76\u4e0d\u4ee3\u8868\u5904\u7406\u6548\u7387\u4f1a\u53d8\u9ad8&#xff0c;\u5b9e\u9645\u4e0a\u6548\u7387\u4e0a\u662f\u4f4e\u4e8e\u76f4\u63a5\u7684\u5b57\u7b26\u4e32\u5904\u7406\u7684&#xff09;&#xff0c;\u4f7f\u6211\u4eec\u5b9e\u73b0\u7684HTTP\u7ec4\u4ef6\u5e93\u4f7f\u7528\u8d77\u6765\u66f4\u52a0\u7075\u6d3b\u3002<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u5728C&#043;&#043;\u4e2d&#xff0c;&lt;regex&gt;\u5c31\u662f\u4e3a\u4e86\u6b63\u5219\u8868\u8fbe\u5f0f\u5b9e\u73b0\u7684\u5e93<\/p>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%3Cregex%3E%E5%BA%93%E7%9A%84%E6%8E%A5%E5%8F%A3%E4%BB%8B%E7%BB%8D\">\u00a0 \u00a0 \u00a0 \u00a0 &lt;regex&gt;\u5e93\u7684\u63a5\u53e3\u4ecb\u7ecd<\/h3>\n<li>\n<p>std::regex<\/p>\n<ul>\n<li>\n<p>\u8868\u8fbe\u5f0f&#xff1a;std::regex r(const std::string&amp; pattern, flag_type flags &#061; ECMAScript);<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570&#xff1a;pattern\u00a0\u4e3a\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u4e32&#xff1b;flags\u00a0\u53ef\u9009\u8bed\u6cd5\u9009\u9879&#xff08;\u5982\u00a0ECMAScript\u3001basic\u3001extended\u3001icase\u00a0\u7b49&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f5c\u7528&#xff1a;\u7f16\u8bd1\u6b63\u5219\u8868\u8fbe\u5f0f&#xff0c;\u5b58\u50a8\u4e3a\u4e00\u4e2a\u53ef\u7528\u7684\u6b63\u5219\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>std::regex_match<\/p>\n<ul>\n<li>\n<p>\u8868\u8fbe\u5f0f&#xff1a;bool regex_match(const std::string&amp; s, std::smatch&amp; m, const std::regex&amp; r);<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570&#xff1a;s\u00a0\u4e3a\u6e90\u5b57\u7b26\u4e32&#xff1b;m\u00a0\u7528\u4e8e\u5b58\u50a8\u5339\u914d\u7ed3\u679c&#xff08;\u5b50\u5339\u914d\u7ec4&#xff09;&#xff1b;r\u00a0\u4e3a\u5df2\u7f16\u8bd1\u7684\u6b63\u5219\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f5c\u7528&#xff1a;\u68c0\u67e5\u6574\u4e2a\u5b57\u7b26\u4e32\u662f\u5426\u5b8c\u5168\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f&#xff08;\u4ece\u5f00\u5934\u5230\u7ed3\u5c3e\u5fc5\u987b\u5b8c\u5168\u7b26\u5408&#xff09;\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>std::regex_search<\/p>\n<ul>\n<li>\n<p>\u8868\u8fbe\u5f0f&#xff1a;bool regex_search(const std::string&amp; s, std::smatch&amp; m, const std::regex&amp; r);<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570&#xff1a;\u540c\u4e0a&#xff0c;m\u00a0\u5b58\u50a8\u9996\u6b21\u5339\u914d\u7684\u5b50\u4e32\u53ca\u6355\u83b7\u7ec4\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f5c\u7528&#xff1a;\u5728\u5b57\u7b26\u4e32\u4e2d\u641c\u7d22\u7b2c\u4e00\u4e2a\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5b50\u5e8f\u5217&#xff08;\u4e0d\u9700\u8981\u5168\u4e32\u5339\u914d&#xff09;\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>std::regex_replace<\/p>\n<ul>\n<li>\n<p>\u8868\u8fbe\u5f0f&#xff1a;std::string regex_replace(const std::string&amp; s, const std::regex&amp; r, const std::string&amp; fmt);<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570&#xff1a;s\u00a0\u6e90\u5b57\u7b26\u4e32&#xff1b;r\u00a0\u6b63\u5219\u5bf9\u8c61&#xff1b;fmt\u00a0\u66ff\u6362\u683c\u5f0f\u5b57\u7b26\u4e32&#xff08;\u53ef\u7528\u00a0$1\u3001$2\u00a0\u5f15\u7528\u6355\u83b7\u7ec4&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f5c\u7528&#xff1a;\u67e5\u627e\u6240\u6709\u5339\u914d\u6b63\u5219\u7684\u5b50\u4e32&#xff0c;\u5e76\u7528\u00a0fmt\u00a0\u66ff\u6362&#xff0c;\u8fd4\u56de\u65b0\u5b57\u7b26\u4e32\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>std::sregex_iterator<\/p>\n<ul>\n<li>\n<p>\u8868\u8fbe\u5f0f&#xff1a;std::sregex_iterator it(s.begin(), s.end(), r);<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570&#xff1a;\u8fed\u4ee3\u5668\u8303\u56f4&#xff08;\u5b57\u7b26\u4e32\u9996\u5c3e&#xff09;\u548c\u6b63\u5219\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f5c\u7528&#xff1a;\u8fed\u4ee3\u904d\u5386\u5b57\u7b26\u4e32\u4e2d\u6240\u6709\u5339\u914d\u7684\u5b50\u4e32&#xff0c;\u6bcf\u6b21\u89e3\u5f15\u7528\u5f97\u5230\u00a0std::smatch\u00a0\u5bf9\u8c61&#xff0c;\u7528\u4e8e\u6279\u91cf\u5904\u7406\u5339\u914d\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u793a\u4f8b&#xff1a;<\/p>\n<p>#include &lt;iostream&gt;<br \/>\n#include &lt;regex&gt;<br \/>\n#include &lt;string&gt;<\/p>\n<p>int main()<br \/>\n{<br \/>\n    std::string text &#061; &#034;Contact: alice&#064;example.com, bob&#064;test.org&#034;;<br \/>\n    std::regex email_pattern(R&#034;([a-zA-Z0-9._%&#043;-]&#043;&#064;[a-zA-Z0-9.-]&#043;\\\\.[a-zA-Z]{2,})&#034;);<\/p>\n<p>    \/\/ 1. regex_match&#xff1a;\u8981\u6c42\u6574\u4e2a\u5b57\u7b26\u4e32\u5b8c\u5168\u5339\u914d<br \/>\n    std::string single &#061; &#034;user&#064;domain.com&#034;;<br \/>\n    if (std::regex_match(single, email_pattern))<br \/>\n        std::cout &lt;&lt; &#034;Full match: &#034; &lt;&lt; single &lt;&lt; &#034; is an email\\\\n&#034;;<br \/>\n    else<br \/>\n        std::cout &lt;&lt; &#034;Not a full match\\\\n&#034;;<\/p>\n<p>    \/\/ 2. regex_search&#xff1a;\u67e5\u627e\u7b2c\u4e00\u4e2a\u5339\u914d\u7684\u5b50\u4e32<br \/>\n    std::smatch match;<br \/>\n    if (std::regex_search(text, match, email_pattern))<br \/>\n        std::cout &lt;&lt; &#034;First email found: &#034; &lt;&lt; match[0] &lt;&lt; &#034;\\\\n&#034;;<\/p>\n<p>    \/\/ 3. regex_replace&#xff1a;\u66ff\u6362\u6240\u6709\u5339\u914d\u9879<br \/>\n    std::string replaced &#061; std::regex_replace(text, email_pattern, &#034;[EMAIL]&#034;);<br \/>\n    std::cout &lt;&lt; &#034;Replaced text: &#034; &lt;&lt; replaced &lt;&lt; &#034;\\\\n&#034;;<\/p>\n<p>    \/\/ 4. sregex_iterator&#xff1a;\u904d\u5386\u6240\u6709\u5339\u914d\u9879<br \/>\n    std::cout &lt;&lt; &#034;All emails: &#034;;<br \/>\n    for (std::sregex_iterator it(text.begin(), text.end(), email_pattern), end; it !&#061; end; &#043;&#043;it)<br \/>\n        std::cout &lt;&lt; it-&gt;str() &lt;&lt; &#034; &#034;;<br \/>\n    std::cout &lt;&lt; &#034;\\\\n&#034;;<\/p>\n<p>    return 0;<br \/>\n} <\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u7ed3\u679c\u4e3a&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"109\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb0f4c4.png\" width=\"782\" \/><\/p>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%A7%A3%E6%9E%90%E5%A4%84%E7%90%86HTTP%E8%AF%B7%E6%B1%82\">\u00a0 \u00a0 \u00a0 \u00a0 \u6b63\u5219\u8868\u8fbe\u5f0f\u89e3\u6790\u5904\u7406HTTP\u8bf7\u6c42<\/h3>\n<p>#include &lt;iostream&gt;<br \/>\n#include &lt;regex&gt;<br \/>\n#include &lt;string&gt;<\/p>\n<p>int main()<br \/>\n{<br \/>\n    \/\/ \u793a\u4f8b HTTP \u8bf7\u6c42\u884c<br \/>\n    std::string request_line &#061; &#034;GET \/api\/users?id&#061;123&amp;name&#061;john HTTP\/1.1&#034;;<\/p>\n<p>    \/\/ \u6b63\u5219\u8868\u8fbe\u5f0f&#xff1a;<br \/>\n    \/\/ \u5206\u7ec41: \u65b9\u6cd5 (\u5927\u5199\u5b57\u6bcd)<br \/>\n    \/\/ \u5206\u7ec42: \u8def\u5f84 (\u975e\u7a7a\u767d\u4e14\u4e0d\u542b &#039;?&#039;)<br \/>\n    \/\/ \u5206\u7ec43: \u67e5\u8be2\u5b57\u7b26\u4e32 (\u53ef\u9009&#xff0c;&#039;?&#039; \u540e\u975e\u7a7a\u767d\u5b57\u7b26)<br \/>\n    \/\/ \u5206\u7ec44: HTTP\u7248\u672c (HTTP\/x.x)<br \/>\n    std::regex pattern(R&#034;(^([A-Z]&#043;)\\\\s&#043;([^\\\\s?]&#043;)(?:\\\\?([^\\\\s]&#043;))?\\\\s&#043;(HTTP\/\\\\d\\\\.\\\\d)$)&#034;);<\/p>\n<p>    std::smatch matches;<br \/>\n    if (std::regex_match(request_line, matches, pattern)) {<br \/>\n        std::cout &lt;&lt; &#034;\u5b8c\u6574\u8bf7\u6c42\u884c: &#034; &lt;&lt; request_line &lt;&lt; &#034;\\\\n\\\\n&#034;;<br \/>\n        std::cout &lt;&lt; &#034;\u8bf7\u6c42\u65b9\u6cd5: &#034; &lt;&lt; matches[1] &lt;&lt; std::endl;<br \/>\n        std::cout &lt;&lt; &#034;\u8bf7\u6c42\u8def\u5f84: &#034; &lt;&lt; matches[2] &lt;&lt; std::endl;<\/p>\n<p>        \/\/ \u67e5\u8be2\u5b57\u7b26\u4e32\u53ef\u80fd\u4e0d\u5b58\u5728<br \/>\n        if (matches[3].matched)<br \/>\n            std::cout &lt;&lt; &#034;\u67e5\u8be2\u5b57\u7b26\u4e32: &#034; &lt;&lt; matches[3] &lt;&lt; std::endl;<br \/>\n        else<br \/>\n            std::cout &lt;&lt; &#034;\u67e5\u8be2\u5b57\u7b26\u4e32: (\u65e0)&#034; &lt;&lt; std::endl;<\/p>\n<p>        std::cout &lt;&lt; &#034;HTTP\u7248\u672c: &#034; &lt;&lt; matches[4] &lt;&lt; std::endl;<br \/>\n    } else {<br \/>\n        std::cerr &lt;&lt; &#034;\u8bf7\u6c42\u884c\u683c\u5f0f\u4e0d\u5339\u914d&#034; &lt;&lt; std::endl;<br \/>\n    }<\/p>\n<p>    return 0;<br \/>\n} <\/p>\n<p>\u7ed3\u679c\u4e3a&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"155\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb26f56.png\" width=\"688\" \/><\/p>\n<h2 id=\"any%E7%B1%BB\">any\u7c7b<\/h2>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6bcf\u4e00\u4e2aConnection\u5bf9\u8fde\u63a5\u8fdb\u884c\u7ba1\u7406&#xff0c;\u6700\u7ec8\u90fd\u4e0d\u53ef\u907f\u514d\u9700\u8981\u6d89\u53ca\u5230\u5e94\u7528\u5c42\u534f\u8bae\u7684\u5904\u7406&#xff0c;\u56e0\u6b64\u5728Connection\u4e2d\u9700\u8981\u8bbe\u7f6e\u534f\u8bae\u5904\u7406\u7684\u4e0a\u4e0b\u6587\u6765\u63a7\u5236\u5904\u7406\u8282\u594f\u3002\u4f46\u662f\u5e94\u7528\u5c42\u534f\u8bae\u5343\u5343\u4e07&#xff0c;\u4e3a\u4e86\u964d\u4f4e\u8026\u5408\u5ea6&#xff0c;\u8fd9\u4e2a\u534f\u8bae\u63a5\u6536\u89e3\u6790\u4e0a\u4e0b\u6587\u5c31\u4e0d\u80fd\u6709\u660e\u663e\u7684\u534f\u8bae\u503e\u5411&#xff0c;\u5b83\u53ef\u4ee5\u662f\u4efb\u610f\u534f\u8bae\u7684\u4e0a\u4e0b\u6587\u4fe1\u606f&#xff0c;\u56e0\u6b64\u5c31\u9700\u8981\u4e00\u4e2a\u901a\u7528\u7684\u7c7b\u578b\u6765\u4fdd\u5b58\u5404\u79cd\u4e0d\u540c\u7684\u6570\u636e\u7ed3\u6784\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728C\u8bed\u8a00\u4e2d&#xff0c;\u901a\u7528\u7c7b\u578b\u53ef\u4ee5\u4f7f\u7528void*\u6765\u7ba1\u7406&#xff0c;\u4f46\u662f\u5728C&#043;&#043;\u4e2d&#xff0c;boost\u5e93\u548cC&#043;&#043;17\u7ed9\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7c7b\u578bany\u6765\u7075\u6d3b\u4f7f\u7528&#xff0c;\u5982\u679c\u8003\u8651\u589e\u52a0\u4ee3\u7801\u7684\u79fb\u690d\u6027&#xff0c;\u5c3d\u91cf\u51cf\u5c11\u7b2c\u4e09\u65b9\u5e93\u7684\u4f9d\u8d56&#xff0c;\u5219\u53ef\u4ee5\u4f7f\u7528C&#043;&#043;17\u7279\u6027\u4e2d\u7684any&#xff0c;\u6216\u8005\u81ea\u5df1\u6765\u5b9e\u73b0\u3002<\/p>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%3Cany%3E%E7%B1%BB%E4%BB%8B%E7%BB%8D\" style=\"background-color:transparent\">\u00a0 \u00a0 \u00a0 \u00a0 &lt;any&gt;\u7c7b\u4ecb\u7ecd<\/h3>\n<h4 id=\"%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%E9%BB%98%E8%AE%A4%E6%9E%84%E9%80%A0%E4%B8%8E%E5%80%BC%E6%9E%84%E9%80%A0%20%2F%20%E8%B5%8B%E5%80%BC\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u9ed8\u8ba4\u6784\u9020\u4e0e\u503c\u6784\u9020 \/ \u8d4b\u503c<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0std::any a;\u00a0\u6216\u00a0std::any a &#061; \u503c; \u53c2\u6570&#xff1a;\u00a0\u65e0\u53c2\u6784\u9020\u5f97\u5230\u7a7a\u5bf9\u8c61&#xff1b;\u82e5\u4f20\u5165\u4efb\u610f\u53ef\u62f7\u8d1d\u7c7b\u578b\u00a0T\u00a0\u7684\u503c&#xff0c;\u5219\u4ece\u8be5\u503c\u6784\u9020\u6216\u8d4b\u503c\u3002 \u4f5c\u7528&#xff1a;\u00a0\u521b\u5efa\u4e00\u4e2a\u00a0std::any\u00a0\u5bb9\u5668\u3002\u9ed8\u8ba4\u6784\u9020\u65f6\u4e0d\u542b\u4efb\u4f55\u503c&#xff08;has_value()\u00a0\u8fd4\u56de\u00a0false&#xff09;\u3002\u4f20\u5165\u5177\u4f53\u503c\u65f6&#xff0c;\u5185\u90e8\u4f1a\u5b58\u50a8\u4e00\u4efd\u00a0T\u00a0\u7684\u62f7\u8d1d&#xff08;\u6216\u901a\u8fc7\u79fb\u52a8\u8bed\u4e49\u63a5\u7ba1\u8d44\u6e90&#xff09;&#xff0c;\u6b64\u540e\u8be5\u00a0any\u00a0\u5bf9\u8c61\u4fbf\u62e5\u6709\u8be5\u7c7b\u578b\u7684\u6709\u6548\u6570\u636e\u3002<\/p>\n<h4 id=\"%C2%A0std%3A%3Amake_any%3CT%3E(args...)\">\u00a0std::make_any&lt;T&gt;(args&#8230;)<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0auto a &#061; std::make_any&lt;T&gt;(\u6784\u9020\u53c2\u6570&#8230;); \u53c2\u6570&#xff1a;\u00a0\u76ee\u6807\u7c7b\u578b\u00a0T\u00a0\u53ca\u5176\u6784\u9020\u51fd\u6570\u6240\u9700\u7684\u5b9e\u53c2\u5217\u8868\u3002 \u4f5c\u7528&#xff1a;\u00a0\u76f4\u63a5\u5728\u00a0any\u00a0\u5185\u90e8\u539f\u5730\u6784\u9020\u00a0T\u00a0\u7c7b\u578b\u7684\u5bf9\u8c61&#xff0c;\u5b8c\u5168\u907f\u514d\u4e34\u65f6\u5bf9\u8c61\u7684\u4ea7\u751f\u4e0e\u591a\u4f59\u7684\u62f7\u8d1d\/\u79fb\u52a8\u5f00\u9500\u3002\u4e0e\u5148\u6784\u9020\u4e34\u65f6\u5bf9\u8c61\u518d\u5b58\u5165\u00a0any\u00a0\u76f8\u6bd4&#xff0c;\u5b83\u66f4\u9ad8\u6548\u4e14\u5f02\u5e38\u5b89\u5168\u3002<\/p>\n<h4 id=\"%C2%A0has_value()\">\u00a0has_value()<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0a.has_value() \u53c2\u6570&#xff1a;\u00a0\u65e0\u3002 \u4f5c\u7528&#xff1a;\u00a0\u8fd4\u56de\u5e03\u5c14\u503c&#xff0c;\u6307\u793a\u5f53\u524d\u00a0any\u00a0\u5bf9\u8c61\u662f\u5426\u6301\u6709\u6709\u6548\u503c&#xff08;\u5373\u975e\u7a7a&#xff09;\u3002\u7a7a\u00a0any\u00a0\u901a\u5e38\u7531\u9ed8\u8ba4\u6784\u9020\u3001\u8c03\u7528\u00a0reset()\u00a0\u6216\u88ab\u79fb\u8d70\u503c\u4ea7\u751f\u3002<\/p>\n<h4 id=\"%C2%A0%20type()\">\u00a0 type()<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0a.type() \u53c2\u6570&#xff1a;\u00a0\u65e0\u3002 \u4f5c\u7528&#xff1a;\u00a0\u8fd4\u56de\u00a0const std::type_info&amp;&#xff0c;\u4ee3\u8868\u5f53\u524d\u6240\u5b58\u50a8\u5bf9\u8c61\u7684\u51c6\u786e\u7c7b\u578b\u3002\u82e5\u00a0any\u00a0\u4e3a\u7a7a&#xff0c;\u5219\u8fd4\u56de\u00a0typeid(void)\u3002\u8be5\u63a5\u53e3\u662f\u8fdb\u884c\u7c7b\u578b\u5b89\u5168\u68c0\u67e5\u7684\u57fa\u7840&#xff0c;\u5e38\u4e0e\u00a0any_cast\u00a0\u7684\u6307\u9488\u5f62\u5f0f\u914d\u5408\u4f7f\u7528\u3002<\/p>\n<h4 id=\"%C2%A0std%3A%3Aany_cast%3CT%3E\">\u00a0std::any_cast&lt;T&gt;<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0\u5b58\u5728\u4e24\u79cd\u91cd\u8f7d\u5f62\u5f0f&#xff1a;<\/p>\n<ul>\n<li>\n<p>\u5f15\u7528\u5f62\u5f0f&#xff1a;std::any_cast&lt;T&gt;(a)<\/p>\n<\/li>\n<li>\n<p>\u6307\u9488\u5f62\u5f0f&#xff1a;std::any_cast&lt;T&gt;(&amp;a) \u53c2\u6570&#xff1a;\u00a0\u524d\u8005\u63a5\u53d7\u00a0any\u00a0\u5bf9\u8c61\u7684\u5f15\u7528&#xff1b;\u540e\u8005\u63a5\u53d7\u00a0any\u00a0\u5bf9\u8c61\u7684\u6307\u9488\u3002 \u4f5c\u7528&#xff1a;\u00a0\u63d0\u53d6\u00a0any\u00a0\u4e2d\u5b58\u50a8\u7684\u503c\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f15\u7528\u5f62\u5f0f&#xff1a;\u82e5\u5b58\u50a8\u7c7b\u578b\u4e0e\u00a0T\u00a0\u4e0d\u5339\u914d&#xff0c;\u629b\u51fa\u00a0std::bad_any_cast\u00a0\u5f02\u5e38\u3002<\/p>\n<\/li>\n<li>\n<p>\u6307\u9488\u5f62\u5f0f&#xff1a;\u82e5\u5b58\u50a8\u7c7b\u578b\u4e0e\u00a0T\u00a0\u4e0d\u5339\u914d&#xff0c;\u8fd4\u56de\u00a0nullptr&#xff1b;\u5339\u914d\u5219\u8fd4\u56de\u6307\u5411\u5185\u90e8\u5b58\u50a8\u5bf9\u8c61\u7684\u6307\u9488\u3002\u63a8\u8350\u4f18\u5148\u4f7f\u7528\u6307\u9488\u5f62\u5f0f\u8fdb\u884c\u5b89\u5168\u8bbf\u95ee\u3002<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"%C2%A0emplace%3CT%3E(args...)\">\u00a0emplace&lt;T&gt;(args&#8230;)<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0a.emplace&lt;T&gt;(\u6784\u9020\u53c2\u6570&#8230;); \u53c2\u6570&#xff1a;\u00a0\u76ee\u6807\u7c7b\u578b\u00a0T\u00a0\u53ca\u5176\u6784\u9020\u53c2\u6570\u3002 \u4f5c\u7528&#xff1a;\u00a0\u9500\u6bc1\u5f53\u524d\u5b58\u50a8\u7684\u4efb\u4f55\u65e7\u503c&#xff08;\u5982\u679c\u6709&#xff09;&#xff0c;\u7136\u540e\u5728\u539f\u5730\u6784\u9020\u4e00\u4e2a\u65b0\u7684\u00a0T\u00a0\u7c7b\u578b\u5bf9\u8c61\u3002\u5b83\u907f\u514d\u4e86\u5148\u6784\u9020\u4e34\u65f6\u503c\u518d\u8d4b\u503c\u7684\u4e2d\u95f4\u6b65\u9aa4&#xff0c;\u4e14\u80fd\u590d\u7528\u5df2\u5206\u914d\u7684\u5185\u5b58&#xff08;\u5982\u679c\u5b9e\u73b0\u652f\u6301&#xff09;&#xff0c;\u63d0\u9ad8\u8fd0\u884c\u671f\u53d8\u66f4\u7c7b\u578b\u65f6\u7684\u6548\u7387\u3002<\/p>\n<h4 id=\"%C2%A0reset()\">\u00a0reset()<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0a.reset(); \u53c2\u6570&#xff1a;\u00a0\u65e0\u3002 \u4f5c\u7528&#xff1a;\u00a0\u9500\u6bc1\u5f53\u524d\u5b58\u50a8\u7684\u5bf9\u8c61&#xff08;\u8c03\u7528\u5176\u6790\u6784\u51fd\u6570&#xff09;&#xff0c;\u5e76\u5c06\u00a0any\u00a0\u5bf9\u8c61\u91cd\u7f6e\u4e3a\u7a7a\u72b6\u6001\u3002\u8c03\u7528\u540e\u00a0has_value()\u00a0\u5c06\u8fd4\u56de\u00a0false\u3002\u8be5\u64cd\u4f5c\u4e0d\u4f1a\u5f71\u54cd\u00a0any\u00a0\u5bf9\u8c61\u672c\u8eab\u7684\u5b58\u50a8\u7a7a\u95f4&#xff0c;\u4ec5\u662f\u6e05\u7a7a\u5176\u5185\u5bb9\u3002<\/p>\n<h4 id=\"%C2%A0%C2%A0swap()\">\u00a0\u00a0swap()<\/h4>\n<p>\u8868\u8fbe\u5f0f&#xff1a;\u00a0a1.swap(a2);\u00a0\u6216\u00a0std::swap(a1, a2); \u53c2\u6570&#xff1a;\u00a0\u53e6\u4e00\u4e2a\u540c\u7c7b\u578b\u7684\u00a0std::any\u00a0\u5bf9\u8c61\u3002 \u4f5c\u7528&#xff1a;\u00a0\u4ea4\u6362\u4e24\u4e2a\u00a0any\u00a0\u5bb9\u5668\u6240\u6301\u6709\u7684\u503c\u4ee5\u53ca\u5b83\u4eec\u7684\u72b6\u6001\u3002\u8be5\u64cd\u4f5c\u662f\u9ad8\u6548\u7684&#xff0c;\u901a\u5e38\u4ec5\u4ea4\u6362\u5185\u90e8\u6307\u9488\u6216\u63a7\u5236\u5757&#xff0c;\u4e0d\u6d89\u53ca\u6240\u5b58\u50a8\u7c7b\u578b\u7684\u62f7\u8d1d\u6216\u79fb\u52a8\u6784\u9020\u3002<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u793a\u4f8b\u4ee3\u7801<\/p>\n<p>#include &lt;any&gt;<br \/>\n#include &lt;iostream&gt;<br \/>\n#include &lt;string&gt;<br \/>\n#include &lt;vector&gt;<\/p>\n<p>int main()<br \/>\n{<br \/>\n    \/\/ 1. \u9ed8\u8ba4\u6784\u9020&#xff08;\u7a7a any&#xff09;<br \/>\n    std::any a;<br \/>\n    std::cout &lt;&lt; &#034;1. \u9ed8\u8ba4\u6784\u9020\u540e has_value(): &#034; &lt;&lt; a.has_value() &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 2. \u503c\u6784\u9020&#xff1a;\u5b58\u5165 int<br \/>\n    std::any b &#061; 42;                       \/\/ \u9690\u5f0f\u8f6c\u6362\u81ea int<br \/>\n    std::any c(std::string(&#034;hello&#034;));      \/\/ \u663e\u5f0f\u6784\u9020<br \/>\n    std::cout &lt;&lt; &#034;2. \u5b58\u5165 int: &#034; &lt;&lt; std::any_cast&lt;int&gt;(b) &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 3. std::make_any&#xff1a;\u539f\u5730\u6784\u9020 vector&#xff0c;\u907f\u514d\u4e34\u65f6\u5bf9\u8c61<br \/>\n    auto d &#061; std::make_any&lt;std::vector&lt;int&gt;&gt;(3, 10); \/\/ \u4e09\u4e2a 10<br \/>\n    std::cout &lt;&lt; &#034;3. make_any&lt;vector&gt;: size&#061;&#034;<br \/>\n              &lt;&lt; std::any_cast&lt;std::vector&lt;int&gt;&gt;(d).size() &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 4. has_value() \u548c type()<br \/>\n    std::cout &lt;&lt; &#034;4. d \u662f\u5426\u542b\u6709\u503c? &#034; &lt;&lt; d.has_value()<br \/>\n              &lt;&lt; &#034;, \u7c7b\u578b\u540d: &#034; &lt;&lt; d.type().name() &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 5. any_cast \u6307\u9488\u5f62\u5f0f&#xff08;\u5b89\u5168\u8bbf\u95ee&#xff09;<br \/>\n    if (auto* ptr &#061; std::any_cast&lt;std::string&gt;(&amp;c))<br \/>\n    {<br \/>\n        std::cout &lt;&lt; &#034;5. \u6307\u9488\u63d0\u53d6 string: &#034; &lt;&lt; *ptr &lt;&lt; &#039;\\\\n&#039;;<br \/>\n    }<br \/>\n    if (auto* ptr &#061; std::any_cast&lt;int&gt;(&amp;c))<br \/>\n    {<br \/>\n        \/\/ \u4e0d\u4f1a\u6267\u884c&#xff0c;\u56e0\u4e3a c \u91cc\u662f string<br \/>\n    }<br \/>\n    else<br \/>\n    {<br \/>\n        std::cout &lt;&lt; &#034;   \u7c7b\u578b\u4e0d\u5339\u914d&#xff0c;\u8fd4\u56de nullptr\\\\n&#034;;<br \/>\n    }<\/p>\n<p>    \/\/ 6. any_cast \u5f15\u7528\u5f62\u5f0f&#xff08;\u53ef\u80fd\u629b\u5f02\u5e38&#xff09;<br \/>\n    try<br \/>\n    {<br \/>\n        std::cout &lt;&lt; &#034;6. \u5f15\u7528\u63d0\u53d6 int: &#034; &lt;&lt; std::any_cast&lt;int&gt;(b) &lt;&lt; &#039;\\\\n&#039;;<br \/>\n        \/\/ \u4e0b\u9762\u8fd9\u884c\u5c06\u629b\u51fa std::bad_any_cast<br \/>\n        \/\/ std::cout &lt;&lt; std::any_cast&lt;double&gt;(b);<br \/>\n    }<br \/>\n    catch (const std::bad_any_cast&amp; e)<br \/>\n    {<br \/>\n        std::cout &lt;&lt; &#034;   \u6355\u83b7\u5f02\u5e38: &#034; &lt;&lt; e.what() &lt;&lt; &#039;\\\\n&#039;;<br \/>\n    }<\/p>\n<p>    \/\/ 7. emplace&#xff1a;\u9500\u6bc1\u65e7\u503c&#xff0c;\u539f\u5730\u6784\u9020\u65b0\u7c7b\u578b<br \/>\n    b.emplace&lt;double&gt;(3.14159);<br \/>\n    std::cout &lt;&lt; &#034;7. emplace&lt;double&gt; \u540e: &#034; &lt;&lt; std::any_cast&lt;double&gt;(b) &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 8. reset&#xff1a;\u6e05\u7a7a\u5185\u5bb9<br \/>\n    b.reset();<br \/>\n    std::cout &lt;&lt; &#034;8. reset \u540e has_value(): &#034; &lt;&lt; b.has_value() &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    \/\/ 9. swap&#xff1a;\u4ea4\u6362\u4e24\u4e2a any \u7684\u5185\u5bb9<br \/>\n    std::any x &#061; 100;<br \/>\n    std::any y &#061; std::string(&#034;world&#034;);<br \/>\n    std::cout &lt;&lt; &#034;9. \u4ea4\u6362\u524d: x&#061;&#034; &lt;&lt; std::any_cast&lt;int&gt;(x)<br \/>\n              &lt;&lt; &#034;, y&#061;&#034; &lt;&lt; std::any_cast&lt;std::string&gt;(y) &lt;&lt; &#039;\\\\n&#039;;<br \/>\n    x.swap(y);<br \/>\n    std::cout &lt;&lt; &#034;   \u4ea4\u6362\u540e: x&#061;&#034; &lt;&lt; std::any_cast&lt;std::string&gt;(x)<br \/>\n              &lt;&lt; &#034;, y&#061;&#034; &lt;&lt; std::any_cast&lt;int&gt;(y) &lt;&lt; &#039;\\\\n&#039;;<\/p>\n<p>    return 0;<br \/>\n} <\/p>\n<p>\u7ed3\u679c\u4e3a&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"245\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb382cc.png\" width=\"831\" \/><\/p>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%E8%AE%BE%E8%AE%A1%E6%80%9D%E6%83%B3\" style=\"background-color:transparent\">\u00a0 \u00a0 \u00a0 \u00a0 \u8bbe\u8ba1\u601d\u60f3<\/h3>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5d4c\u5957\u4e00\u4e0b&#xff0c;\u8bbe\u8ba1\u4e00\u4e2a\u7c7b&#xff0c;\u4e13\u95e8\u7528\u4e8e\u4fdd\u5b58\u5176\u4ed6\u7c7b\u578b\u7684\u6570\u636e&#xff0c;\u800cAny\u7c7b\u4fdd\u5b58\u7684\u662f\u56fa\u5b9a\u7c7b\u7684\u5bf9\u8c61<\/p>\n<p>class Any<br \/>\n{<br \/>\nprivate:<br \/>\n    class holder<br \/>\n    {<br \/>\n    &#8230;.<br \/>\n    };<br \/>\n    template&lt;class T&gt;<br \/>\n    class placeholder: holder<br \/>\n    {<br \/>\n        T_val I<br \/>\n    };<br \/>\n    holder *content;<br \/>\n}; <\/p>\n<p>Any\u7c7b\u4e2d&#xff0c;\u4fdd\u5b58\u7684\u662fholder\u7c7b\u7684\u6307\u9488&#xff0c;\u5f53Any\u5bb9\u5668\u9700\u8981\u4fdd\u5b58\u4e00\u4e2a\u6570\u636e\u7684\u65f6\u5019&#xff0c;\u53ea\u9700\u8981\u901a\u8fc7placeholder\u5b50\u7c7b\u5b9e\u4f8b\u5316\u4e00\u4e2a\u7279\u5b9a\u7c7b\u578b\u7684\u5b50\u7c7b\u5bf9\u8c61\u51fa\u6765&#xff0c;\u8ba9\u5b50\u7c7b\u5bf9\u8c61\u4fdd\u5b58\u6570\u636e<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u6e90\u4ee3\u7801&#xff1a;<\/p>\n<p>#pragma once<\/p>\n<p>#include &lt;utility&gt;<br \/>\n#include &lt;typeinfo&gt;<\/p>\n<p>class Any<br \/>\n{<br \/>\nprivate:<br \/>\n    class holder<br \/>\n    {<br \/>\n    public:<br \/>\n        virtual ~holder() {}<br \/>\n        virtual const std::type_info&amp; type() const &#061; 0;<br \/>\n        virtual holder* clone() const &#061; 0;<br \/>\n    };<\/p>\n<p>    template&lt;class T&gt;<br \/>\n    class placeholder : public holder<br \/>\n    {<br \/>\n    public:<br \/>\n        placeholder(const T&amp; val) : _val(val) {}<br \/>\n        virtual ~placeholder() &#061; default;<\/p>\n<p>        virtual const std::type_info&amp; type() const override {<br \/>\n            return typeid(_val);<br \/>\n        }<\/p>\n<p>        virtual holder* clone() const override {<br \/>\n            return new placeholder&lt;T&gt;(_val);<br \/>\n        }<\/p>\n<p>        T _val;<br \/>\n    };<\/p>\n<p>    holder* _holder;<\/p>\n<p>public:<br \/>\n    Any() : _holder(nullptr) {}<\/p>\n<p>    template&lt;class T&gt;<br \/>\n    Any(const T&amp; val) : _holder(new placeholder&lt;T&gt;(val)) {}<\/p>\n<p>    Any(const Any&amp; other)<br \/>\n        : _holder(other._holder ? other._holder-&gt;clone() : nullptr) {}<\/p>\n<p>    ~Any() {<br \/>\n        delete _holder;<br \/>\n    }<\/p>\n<p>    Any&amp; Swap(Any&amp; other) noexcept {<br \/>\n        std::swap(_holder, other._holder);<br \/>\n        return *this;<br \/>\n    }<\/p>\n<p>    \/\/ \u4ece\u4efb\u610f\u7c7b\u578b\u8d4b\u503c<br \/>\n    template&lt;class T&gt;<br \/>\n    Any&amp; operator&#061;(const T&amp; val) {<br \/>\n        Any(val).Swap(*this);<br \/>\n        return *this;<br \/>\n    }<\/p>\n<p>    \/\/ \u62f7\u8d1d\u8d4b\u503c\u8fd0\u7b97\u7b26&#xff08;\u975e\u6a21\u677f&#xff09;<br \/>\n    Any&amp; operator&#061;(const Any&amp; other) {<br \/>\n        Any(other).Swap(*this);<br \/>\n        return *this;<br \/>\n    }<\/p>\n<p>    \/\/ \u83b7\u53d6\u5b58\u50a8\u503c\u7684\u6307\u9488&#xff08;\u975e\u5e38\u91cf\u7248\u672c&#xff09;<br \/>\n    template&lt;class T&gt;<br \/>\n    T* get() {<br \/>\n        if (_holder &amp;&amp; typeid(*_holder) &#061;&#061; typeid(placeholder&lt;T&gt;)) {<br \/>\n            return &amp;(static_cast&lt;placeholder&lt;T&gt;*&gt;(_holder)-&gt;_val);<br \/>\n        }<br \/>\n        return nullptr;<br \/>\n    }<\/p>\n<p>    \/\/ \u83b7\u53d6\u5b58\u50a8\u503c\u7684\u6307\u9488&#xff08;\u5e38\u91cf\u7248\u672c&#xff09;<br \/>\n    template&lt;class T&gt;<br \/>\n    const T* get() const {<br \/>\n        if (_holder &amp;&amp; typeid(*_holder) &#061;&#061; typeid(placeholder&lt;T&gt;)) {<br \/>\n            return &amp;(static_cast&lt;const placeholder&lt;T&gt;*&gt;(_holder)-&gt;_val);<br \/>\n        }<br \/>\n        return nullptr;<br \/>\n    }<br \/>\n};<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u6d4b\u8bd5<\/p>\n<p>#include &#034;MyAny.h&#034;<br \/>\n#include &lt;iostream&gt;<br \/>\n#include &lt;cassert&gt;<br \/>\n#include &lt;string&gt;<\/p>\n<p>class TestCounter<br \/>\n{<br \/>\npublic:<br \/>\n    static int construct_count;<br \/>\n    static int destruct_count;<\/p>\n<p>    TestCounter() { construct_count&#043;&#043;; }<br \/>\n    TestCounter(const TestCounter&amp;) { construct_count&#043;&#043;; }<br \/>\n    ~TestCounter() { destruct_count&#043;&#043;; }<br \/>\n};<\/p>\n<p>int TestCounter::construct_count &#061; 0;<br \/>\nint TestCounter::destruct_count &#061; 0;<\/p>\n<p>void test_default_constructor()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 1: Default Constructor&#034; &lt;&lt; std::endl;<br \/>\n    Any a;<br \/>\n    assert(a.get&lt;int&gt;() &#061;&#061; nullptr);<br \/>\n    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_template_constructor()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 2: Template Constructor&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2(3.14);<br \/>\n    Any a3(std::string(&#034;hello&#034;));<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_copy_constructor()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 3: Copy Constructor&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2(a1);<\/p>\n<p>    Any a3(std::string(&#034;test&#034;));<br \/>\n    Any a4(a3);<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_destructor()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 4: Destructor&#034; &lt;&lt; std::endl;<\/p>\n<p>    TestCounter::construct_count &#061; 0;<br \/>\n    TestCounter::destruct_count &#061; 0;<\/p>\n<p>    {<br \/>\n        Any a{TestCounter()};  \/\/ \u4fee\u590d most vexing parse<br \/>\n    }<\/p>\n<p>    assert(TestCounter::construct_count &#061;&#061; TestCounter::destruct_count);<br \/>\n    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_swap()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 5: Swap Method&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2(3.14);<\/p>\n<p>    a1.Swap(a2);<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_get()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 6: Get Method&#034; &lt;&lt; std::endl; <\/p>\n<p>    Any a1(42);<br \/>\n    Any a2(3.14);<br \/>\n    Any a3(std::string(&#034;hello&#034;)); <\/p>\n<p>    int* p1 &#061; a1.get&lt;int&gt;();<br \/>\n    double* p2 &#061; a2.get&lt;double&gt;();<br \/>\n    std::string* p3 &#061; a3.get&lt;std::string&gt;(); <\/p>\n<p>    if (p1)<br \/>\n    {<br \/>\n        std::cout &lt;&lt; &#034;  int value: &#034; &lt;&lt; *p1 &lt;&lt; std::endl;<br \/>\n    }<br \/>\n    if (p2) {<br \/>\n        std::cout &lt;&lt; &#034;  double value: &#034; &lt;&lt; *p2 &lt;&lt; std::endl;<br \/>\n    }<br \/>\n    if (p3) {<br \/>\n        std::cout &lt;&lt; &#034;  string value: &#034; &lt;&lt; *p3 &lt;&lt; std::endl;<br \/>\n    } <\/p>\n<p>    double* wrong_type &#061; a1.get&lt;double&gt;();  \/\/ \u4fee\u6539\u8fd9\u91cc<br \/>\n    assert(wrong_type &#061;&#061; nullptr); <\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_assignment_operator_value()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 7: Assignment Operator (Value)&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1;<br \/>\n    a1 &#061; 42;<\/p>\n<p>    Any a2;<br \/>\n    a2 &#061; 3.14;<\/p>\n<p>    Any a3;<br \/>\n    a3 &#061; std::string(&#034;test&#034;);<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_assignment_operator_any()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 8: Assignment Operator (Any)&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2;<br \/>\n    a2 &#061; a1;<\/p>\n<p>    Any a3(std::string(&#034;hello&#034;));<br \/>\n    Any a4;<br \/>\n    a4 &#061; a3;<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_self_assignment()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 9: Self Assignment&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a(42);<br \/>\n    a &#061; a;<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_chained_assignment()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 10: Chained Assignment&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2;<br \/>\n    Any a3;<\/p>\n<p>    a3 &#061; a2 &#061; a1;<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_multiple_types()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 11: Multiple Types&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2(3.14);<br \/>\n    Any a3(&#039;c&#039;);<br \/>\n    Any a4(true);<br \/>\n    Any a5(std::string(&#034;hello&#034;));<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_empty_any()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 12: Empty Any Operations&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1;<br \/>\n    Any a2;<\/p>\n<p>    a1.Swap(a2);<\/p>\n<p>    Any a3;<br \/>\n    a3 &#061; a1;<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_overwrite_value()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 13: Overwrite Value&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a(42);<br \/>\n    a &#061; 3.14;<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_complex_type()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 14: Complex Type&#034; &lt;&lt; std::endl;<\/p>\n<p>    struct Point {<br \/>\n        int x, y;<br \/>\n        Point(int x_, int y_) : x(x_), y(y_) {}<br \/>\n    };<\/p>\n<p>    Any a(Point(10, 20));<br \/>\n    Point* p &#061; a.get&lt;Point&gt;();<\/p>\n<p>    if (p) {<br \/>\n        std::cout &lt;&lt; &#034;  Point: (&#034; &lt;&lt; p-&gt;x &lt;&lt; &#034;, &#034; &lt;&lt; p-&gt;y &lt;&lt; &#034;)&#034; &lt;&lt; std::endl;<br \/>\n    }<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>void test_swap_with_empty()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;Test 15: Swap with Empty Any&#034; &lt;&lt; std::endl;<\/p>\n<p>    Any a1(42);<br \/>\n    Any a2;<\/p>\n<p>    a1.Swap(a2);<\/p>\n<p>    std::cout &lt;&lt; &#034;  PASSED&#034; &lt;&lt; std::endl;<br \/>\n}<\/p>\n<p>int main()<br \/>\n{<br \/>\n    std::cout &lt;&lt; &#034;&#061;&#061;&#061; MyAny Unit Tests &#061;&#061;&#061;&#034; &lt;&lt; std::endl &lt;&lt; std::endl;<\/p>\n<p>    test_default_constructor();<br \/>\n    test_template_constructor();<br \/>\n    test_copy_constructor();<br \/>\n    test_destructor();<br \/>\n    test_swap();<br \/>\n    test_get();<br \/>\n    test_assignment_operator_value();<br \/>\n    test_assignment_operator_any();<br \/>\n    test_self_assignment();<br \/>\n    test_chained_assignment();<br \/>\n    test_multiple_types();<br \/>\n    test_empty_any();<br \/>\n    test_overwrite_value();<br \/>\n    test_complex_type();<br \/>\n    test_swap_with_empty();<\/p>\n<p>    std::cout &lt;&lt; std::endl &lt;&lt; &#034;&#061;&#061;&#061; All Tests Completed &#061;&#061;&#061;&#034; &lt;&lt; std::endl;<br \/>\n    return 0;<br \/>\n} <\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u7ed3\u679c\u4e3a&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"670\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb51e65.png\" width=\"879\" \/><\/p>\n<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u672c\u671f\u5185\u5bb9\u5c31\u5230\u8fd9\u91cc\u4e86&#xff0c;\u559c\u6b22\u8bf7\u70b9\u4e2a\u8d5e\u8c22\u8c22<\/p>\n<p>\u5c01\u9762\u56fe\u81ea\u53d6&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1810\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb99810.jpg\" width=\"1280\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u671f\u6211\u4eec\u63a5\u7740\u6df1\u5165\u9879\u76ee\u7684\u7f16\u5199\u3002 \u76f8\u5173\u4ee3\u7801\u5df2\u7ecf\u4e0a\u4f20\u81f3\u4f5c\u8005\u4e2a\u4ebagitee&#xff1a;\u4effmuduo\u670d\u52a1\u5668: \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u5b9e\u73b0\u4e00\u4e2a\u4eff\u9020muduo\u5e93\u7684\u7b80\u6613\u5e76\u53d1\u670d\u52a1\u5668&#xff0c;\u4e3a\u4e2a\u4eba\u9879\u76ee&#xff0c;\u53c2\u8003\u5373\u53ef\u559c\u6b22\u8bf7\u70b9\u4e2a\u8d5e\u8c22\u8c22<br \/>\n\u76ee\u5f55<br \/>\n\u6b63\u5219\u8868\u8fbe\u5f0f \u5e93\u7684\u63a5\u53e3\u4ecb\u7ecd\u6b63\u5219\u8868\u8fbe\u5f0f\u89e3\u6790\u5904\u7406HTTP\u8bf7\u6c42<br \/>\nany\u7c7b \u7c7b\u4ecb\u7ecd\u9ed8\u8ba4\u6784\u9020\u4e0e\u503c\u6784\u9020 \/ \u8d4b\u503c std::make_any(args&#8230;)has_value() type() std::any_castemplace(args&#8230;)re<\/p>\n","protected":false},"author":2,"featured_media":84792,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9109,55,58,371,43,2874],"topic":[],"class_list":["post-84797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-9109","tag-c","tag-linux","tag-371","tag-43","tag-2874"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/84797.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u672c\u671f\u6211\u4eec\u63a5\u7740\u6df1\u5165\u9879\u76ee\u7684\u7f16\u5199\u3002 \u76f8\u5173\u4ee3\u7801\u5df2\u7ecf\u4e0a\u4f20\u81f3\u4f5c\u8005\u4e2a\u4ebagitee&#xff1a;\u4effmuduo\u670d\u52a1\u5668: \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u5b9e\u73b0\u4e00\u4e2a\u4eff\u9020muduo\u5e93\u7684\u7b80\u6613\u5e76\u53d1\u670d\u52a1\u5668&#xff0c;\u4e3a\u4e2a\u4eba\u9879\u76ee&#xff0c;\u53c2\u8003\u5373\u53ef\u559c\u6b22\u8bf7\u70b9\u4e2a\u8d5e\u8c22\u8c22 \u76ee\u5f55 \u6b63\u5219\u8868\u8fbe\u5f0f \u5e93\u7684\u63a5\u53e3\u4ecb\u7ecd\u6b63\u5219\u8868\u8fbe\u5f0f\u89e3\u6790\u5904\u7406HTTP\u8bf7\u6c42 any\u7c7b \u7c7b\u4ecb\u7ecd\u9ed8\u8ba4\u6784\u9020\u4e0e\u503c\u6784\u9020 \/ \u8d4b\u503c std::make_any(args...)has_value() type() std::any_castemplace(args...)re\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/84797.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-26T09:57:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb0f4c4.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/84797.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/84797.html\",\"name\":\"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-07-26T09:57:01+00:00\",\"dateModified\":\"2026-07-26T09:57:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/84797.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/84797.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/84797.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/84797.html","og_locale":"zh_CN","og_type":"article","og_title":"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u672c\u671f\u6211\u4eec\u63a5\u7740\u6df1\u5165\u9879\u76ee\u7684\u7f16\u5199\u3002 \u76f8\u5173\u4ee3\u7801\u5df2\u7ecf\u4e0a\u4f20\u81f3\u4f5c\u8005\u4e2a\u4ebagitee&#xff1a;\u4effmuduo\u670d\u52a1\u5668: \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u5b9e\u73b0\u4e00\u4e2a\u4eff\u9020muduo\u5e93\u7684\u7b80\u6613\u5e76\u53d1\u670d\u52a1\u5668&#xff0c;\u4e3a\u4e2a\u4eba\u9879\u76ee&#xff0c;\u53c2\u8003\u5373\u53ef\u559c\u6b22\u8bf7\u70b9\u4e2a\u8d5e\u8c22\u8c22 \u76ee\u5f55 \u6b63\u5219\u8868\u8fbe\u5f0f \u5e93\u7684\u63a5\u53e3\u4ecb\u7ecd\u6b63\u5219\u8868\u8fbe\u5f0f\u89e3\u6790\u5904\u7406HTTP\u8bf7\u6c42 any\u7c7b \u7c7b\u4ecb\u7ecd\u9ed8\u8ba4\u6784\u9020\u4e0e\u503c\u6784\u9020 \/ \u8d4b\u503c std::make_any(args...)has_value() type() std::any_castemplace(args...)re","og_url":"https:\/\/www.wsisp.com\/helps\/84797.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-07-26T09:57:01+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/07\/20260726095659-6a65d9eb0f4c4.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"11 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/84797.html","url":"https:\/\/www.wsisp.com\/helps\/84797.html","name":"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-07-26T09:57:01+00:00","dateModified":"2026-07-26T09:57:01+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/84797.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/84797.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/84797.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u4effmuduo\u5e93\u7684\u9ad8\u5e76\u53d1\u670d\u52a1\u5668\u2014\u2014\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0eany\u7c7b\u4ecb\u7ecd\u53ca\u5176\u7b80\u5355\u6a21\u62df\u5b9e\u73b0"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/84797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=84797"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/84797\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/84792"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=84797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=84797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=84797"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=84797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}