{"id":1952,"date":"2025-03-24T08:49:32","date_gmt":"2025-03-23T23:49:32","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1952"},"modified":"2025-03-24T08:49:32","modified_gmt":"2025-03-23T23:49:32","slug":"c-static%e3%81%ae%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bc%9a%e3%83%a1%e3%83%a2%e3%83%aa%e5%8a%b9%e7%8e%87%e3%82%923%e5%80%8d%e6%94%b9%e5%96%84%e3%81%99%e3%82%8b7%e3%81%a4%e3%81%ae","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1952","title":{"rendered":"C++ static\u306e\u5b8c\u5168\u30ac\u30a4\u30c9\uff1a\u30e1\u30e2\u30ea\u52b9\u7387\u30923\u500d\u6539\u5584\u3059\u308b7\u3064\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">C++ static\u3068\u306f\uff1a\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u307e\u3067<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">static\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u89e3\u6c7a\u3059\u308b3\u3064\u306e\u8ab2\u984c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">\u30e1\u30e2\u30ea\u7ba1\u7406\u306e\u8996\u70b9\u304b\u3089\u898b\u305fstatic\u306e\u91cd\u8981\u6027<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">static\u5909\u6570\u3092\u4f7f\u3044\u3053\u306a\u3059\u305f\u3081\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">\u30af\u30e9\u30b9\u5185static\u5909\u6570\u3067\u30b7\u30f3\u30b0\u30eb\u30c8\u30f3\u3092\u5b9f\u88c5\u3059\u308b<\/a>      <\/li>      <li>        <a href=\"#i-5\">static\u5909\u6570\u306b\u3088\u308b\u30e1\u30e2\u30ea\u6700\u9069\u5316\u306e\u5b9f\u4f8b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306astatic\u5909\u6570\u306e\u521d\u671f\u5316\u30d1\u30bf\u30fc\u30f3<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">static\u95a2\u6570\u304c\u5a01\u529b\u3092\u767a\u63ee\u3059\u308b\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u3092static\u95a2\u6570\u3068\u3057\u3066\u5b9f\u88c5\u3059\u308b\u5229\u70b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u540d\u524d\u7a7a\u9593\u6c5a\u67d3\u3092\u9632\u3050\u305f\u3081\u306estatic\u95a2\u6570\u6d3b\u7528\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">static\u30e1\u30f3\u30d0\u30fc\u306b\u3088\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306e\u6539\u5584<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">static\u30e1\u30f3\u30d0\u30fc\u5909\u6570\u306b\u3088\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u72b6\u614b\u306e\u9069\u5207\u306a\u7ba1\u7406<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">\u30c6\u30b9\u30c8\u5bb9\u6613\u6027\u3092\u9ad8\u3081\u308bstatic\u30e1\u30f3\u30d0\u30fc\u95a2\u6570\u306e\u6d3b\u7528<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">C++ static\u306e\u6027\u80fd\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6700\u9069\u5316\u3068static\u306e\u95a2\u4fc2\u6027<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u30e1\u30e2\u30ea\u30a2\u30af\u30bb\u30b9\u30d1\u30bf\u30fc\u30f3\u306e\u6539\u5584\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-16\">C++ static\u306e\u843d\u3068\u3057\u7a74\u3068\u5bfe\u7b56<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-17\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u9759\u7684\u521d\u671f\u5316\u306e\u554f\u984c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-19\">\u5b9f\u8df5\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3067\u5b66\u3076static\u6d3b\u7528\u8853<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-20\">\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306b\u304a\u3051\u308bstatic\u306e\u6d3b\u7528\u4f8b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-21\">\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\u306e\u6539\u5584\u306b\u6d3b\u304b\u3059static\u518d\u8a2d\u8a08\u8853<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">C++ static\u3068\u306f\uff1a\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u307e\u3067<\/h2>\n\n\n\n<p>C++\u306b\u304a\u3051\u308bstatic\u30ad\u30fc\u30ef\u30fc\u30c9\u306f\u3001\u5909\u6570\u3084\u30e1\u30f3\u30d0\u30fc\u95a2\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u3068\u5bff\u547d\u3092\u5236\u5fa1\u3059\u308b\u5f37\u529b\u306a\u6a5f\u80fd\u3067\u3059\u3002\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u306e\u6539\u5584\u3084\u30b3\u30fc\u30c9\u306e\u69cb\u9020\u5316\u306b\u5927\u304d\u304f\u8ca2\u732e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">static\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u89e3\u6c7a\u3059\u308b3\u3064\u306e\u8ab2\u984c<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b0\u30ed\u30fc\u30d0\u30eb\u540d\u524d\u7a7a\u9593\u306e\u6c5a\u67d3\u9632\u6b62<\/strong><br>static\u3092\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u5909\u6570\u3084\u95a2\u6570\u306e\u53ef\u8996\u6027\u3092\u5236\u9650\u3057\u3001\u540d\u524d\u306e\u885d\u7a81\u3092\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d5\u30a1\u30a4\u30eb1.cpp\nstatic int counter = 0;  \/\/ \u3053\u306ecounter\u306f\u4ed6\u306e\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30a2\u30af\u30bb\u30b9\u4e0d\u53ef\n\n\/\/ \u30d5\u30a1\u30a4\u30eb2.cpp\nstatic int counter = 0;  \/\/ \u5225\u306ecounter\u3068\u3057\u3066\u6271\u308f\u308c\u308b<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30af\u30e9\u30b9\u5168\u4f53\u3067\u5171\u6709\u3055\u308c\u308b\u72b6\u614b\u306e\u7ba1\u7406<\/strong><br>static\u30e1\u30f3\u30d0\u30fc\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30af\u30e9\u30b9\u306e\u5168\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u5171\u6709\u3055\u308c\u308b\u72b6\u614b\u3092\u52b9\u7387\u7684\u306b\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class UserManager {\nprivate:\n    static int userCount;  \/\/ \u5168\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u5171\u6709\n    std::string userName;\n\npublic:\n    UserManager(const std::string&amp; name) : userName(name) {\n        ++userCount;\n    }\n\n    static int getTotalUsers() {\n        return userCount;\n    }\n};\n\nint UserManager::userCount = 0;  \/\/ static\u5909\u6570\u306e\u521d\u671f\u5316<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u306e\u6700\u9069\u5316<\/strong><br>static\u5909\u6570\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u4e2d\u306b\u4e00\u5ea6\u3060\u3051\u521d\u671f\u5316\u3055\u308c\u3001\u305d\u306e\u5f8c\u306f\u30e1\u30e2\u30ea\u4e0a\u306b\u7dad\u6301\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u983b\u7e41\u306a\u751f\u6210\u30fb\u7834\u68c4\u304c\u5fc5\u8981\u306a\u3044\u5024\u306e\u7ba1\u7406\u306b\u6700\u9069\u3067\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">\u30e1\u30e2\u30ea\u7ba1\u7406\u306e\u8996\u70b9\u304b\u3089\u898b\u305fstatic\u306e\u91cd\u8981\u6027<\/h3>\n\n\n\n<p>static\u306e\u4f7f\u7528\u306f\u3001\u30e1\u30e2\u30ea\u7ba1\u7406\u306b\u304a\u3044\u3066\u4ee5\u4e0b\u306e\u5229\u70b9\u3092\u3082\u305f\u3089\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9759\u7684\u30e1\u30e2\u30ea\u5272\u308a\u5f53\u3066<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d7\u30ed\u30b0\u30e9\u30e0\u8d77\u52d5\u6642\u306b\u4e00\u5ea6\u3060\u3051\u30e1\u30e2\u30ea\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u308b<\/li>\n\n\n\n<li>\u30b9\u30bf\u30c3\u30af\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u30ea\u30b9\u30af\u3092\u8efd\u6e1b<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u30d5\u30e9\u30b0\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u9632\u6b62<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">void processLargeData() {\n    static std::vector&lt;double&gt; cache;  \/\/ \u95a2\u6570\u547c\u3073\u51fa\u3057\u9593\u3067\u30c7\u30fc\u30bf\u3092\u4fdd\u6301\n    if (cache.empty()) {\n        \/\/ \u521d\u56de\u306e\u307f\u5927\u304d\u306a\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\n        cache.reserve(1000000);\n    }\n    \/\/ cache\u3092\u4f7f\u7528\u3057\u305f\u51e6\u7406\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30ea\u30bd\u30fc\u30b9\u306e\u52b9\u7387\u7684\u306a\u5171\u6709<\/strong><br>\u9759\u7684\u30e1\u30e2\u30ea\u306f\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u9593\u3067\u5171\u6709\u3067\u304d\u308b\u305f\u3081\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u524a\u6e1b\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ConfigManager {\nprivate:\n    static std::unordered_map&lt;std::string, std::string&gt; settings;\n\npublic:\n    static void loadSettings() {\n        \/\/ \u8a2d\u5b9a\u306e\u8aad\u307f\u8fbc\u307f\uff08\u4e00\u5ea6\u3060\u3051\u5b9f\u884c\uff09\n        if (settings.empty()) {\n            settings[\"timeout\"] = \"30\";\n            settings[\"maxRetries\"] = \"3\";\n        }\n    }\n\n    static std::string getSetting(const std::string&amp; key) {\n        return settings[key];\n    }\n};\n\n\/\/ \u9759\u7684\u30e1\u30f3\u30d0\u306e\u5b9a\u7fa9\nstd::unordered_map&lt;std::string, std::string&gt; ConfigManager::settings;<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u9632\u6b62<\/strong><br>static\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u81ea\u52d5\u7684\u306b\u89e3\u653e\u3055\u308c\u308b\u305f\u3081\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u30ea\u30b9\u30af\u3092\u8efd\u6e1b\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001static\u30ad\u30fc\u30ef\u30fc\u30c9\u306f\u5358\u306a\u308b\u30b9\u30b3\u30fc\u30d7\u5236\u5fa1\u306e\u6a5f\u80fd\u3092\u8d85\u3048\u3066\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u3068\u30b3\u30fc\u30c9\u8a2d\u8a08\u306e\u4e21\u9762\u3067\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u57fa\u790e\u77e5\u8b58\u3092\u6d3b\u304b\u3057\u305f\u5b9f\u8df5\u7684\u306a\u30c6\u30af\u30cb\u30c3\u30af\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">static\u5909\u6570\u3092\u4f7f\u3044\u3053\u306a\u3059\u305f\u3081\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u30af\u30e9\u30b9\u5185static\u5909\u6570\u3067\u30b7\u30f3\u30b0\u30eb\u30c8\u30f3\u3092\u5b9f\u88c5\u3059\u308b<\/h3>\n\n\n\n<p>\u30b7\u30f3\u30b0\u30eb\u30c8\u30f3\u30d1\u30bf\u30fc\u30f3\u306f\u3001\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c1\u3064\u3060\u3051\u5b58\u5728\u3059\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3059\u308b\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u3002static\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class DatabaseConnection {\nprivate:\n    \/\/ \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3092\u5236\u5fa1\n    DatabaseConnection() = default;\n\n    \/\/ static\u5909\u6570\u3067\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4fdd\u6301\n    static DatabaseConnection* instance;\n    static std::mutex mutex;  \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u88c5\u306e\u305f\u3081\u306b\u5fc5\u8981\n\npublic:\n    \/\/ \u30b3\u30d4\u30fc\u3068\u4ee3\u5165\u3092\u7981\u6b62\n    DatabaseConnection(const DatabaseConnection&amp;) = delete;\n    DatabaseConnection&amp; operator=(const DatabaseConnection&amp;) = delete;\n\n    \/\/ \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u53d6\u5f97\u7528\u306estatic\u30e1\u30bd\u30c3\u30c9\n    static DatabaseConnection&amp; getInstance() {\n        if (instance == nullptr) {\n            std::lock_guard&lt;std::mutex&gt; lock(mutex);  \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u521d\u671f\u5316\n            if (instance == nullptr) {\n                instance = new DatabaseConnection();\n            }\n        }\n        return *instance;\n    }\n};\n\n\/\/ static\u5909\u6570\u306e\u521d\u671f\u5316\nDatabaseConnection* DatabaseConnection::instance = nullptr;\nstd::mutex DatabaseConnection::mutex;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">static\u5909\u6570\u306b\u3088\u308b\u30e1\u30e2\u30ea\u6700\u9069\u5316\u306e\u5b9f\u4f8b<\/h3>\n\n\n\n<p>static\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u983b\u7e41\u306b\u4f7f\u7528\u3055\u308c\u308b\u30c7\u30fc\u30bf\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u3084\u30ea\u30bd\u30fc\u30b9\u30d7\u30fc\u30eb\u3092\u52b9\u7387\u7684\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ResourcePool {\nprivate:\n    static std::vector&lt;std::shared_ptr&lt;Resource&gt;&gt; pool;\n    static std::mutex poolMutex;\n\npublic:\n    static std::shared_ptr&lt;Resource&gt; acquireResource() {\n        std::lock_guard&lt;std::mutex&gt; lock(poolMutex);\n\n        \/\/ \u30d7\u30fc\u30eb\u304c\u7a7a\u306e\u5834\u5408\u306f\u65b0\u3057\u3044\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\n        if (pool.empty()) {\n            return std::make_shared&lt;Resource&gt;();\n        }\n\n        \/\/ \u30d7\u30fc\u30eb\u304b\u3089\u30ea\u30bd\u30fc\u30b9\u3092\u53d6\u5f97\n        auto resource = pool.back();\n        pool.pop_back();\n        return resource;\n    }\n\n    static void releaseResource(std::shared_ptr&lt;Resource&gt; resource) {\n        std::lock_guard&lt;std::mutex&gt; lock(poolMutex);\n        \/\/ \u30ea\u30bd\u30fc\u30b9\u3092\u30d7\u30fc\u30eb\u306b\u8fd4\u5374\n        pool.push_back(resource);\n    }\n};\n\n\/\/ static\u5909\u6570\u306e\u521d\u671f\u5316\nstd::vector&lt;std::shared_ptr&lt;Resource&gt;&gt; ResourcePool::pool;\nstd::mutex ResourcePool::poolMutex;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306astatic\u5909\u6570\u306e\u521d\u671f\u5316\u30d1\u30bf\u30fc\u30f3<\/h3>\n\n\n\n<p>C++11\u4ee5\u964d\u3067\u306f\u3001static\u5909\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u521d\u671f\u5316\u304c\u8a00\u8a9e\u30ec\u30d9\u30eb\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3092\u6d3b\u7528\u3057\u305f\u5b89\u5168\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ConfigurationManager {\npublic:\n    static const std::unordered_map&lt;std::string, int&gt;&amp; getDefaultConfig() {\n        \/\/ \u3053\u306e\u521d\u671f\u5316\u306f\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306b\u884c\u308f\u308c\u308b\n        static const std::unordered_map&lt;std::string, int&gt; defaultConfig = {\n            {\"maxConnections\", 100},\n            {\"timeout\", 30},\n            {\"retryCount\", 3}\n        };\n        return defaultConfig;\n    }\n\n    static std::string&amp; getLogPath() {\n        \/\/ \u9045\u5ef6\u521d\u671f\u5316\u3068\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u66f4\u65b0\u306e\u7d44\u307f\u5408\u308f\u305b\n        static std::string logPath = initializeLogPath();\n        return logPath;\n    }\n\nprivate:\n    static std::string initializeLogPath() {\n        \/\/ \u74b0\u5883\u5909\u6570\u3084\u30b3\u30f3\u30d5\u30a3\u30b0\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u521d\u671f\u5024\u3092\u8aad\u307f\u8fbc\u3080\n        const char* envPath = std::getenv(\"LOG_PATH\");\n        return envPath ? envPath : \"\/var\/log\/app.log\";\n    }\n};<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3001static\u5909\u6570\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5229\u70b9\u304c\u5f97\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u52b9\u7387\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5fc5\u8981\u306a\u3068\u304d\u3060\u3051\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u5171\u6709\u306b\u3088\u308b\u91cd\u8907\u524a\u6e1b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u521d\u671f\u5316\u30b3\u30b9\u30c8\u306e\u524a\u6e1b<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387\u306e\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7af6\u5408\u6761\u4ef6\u306e\u56de\u907f<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u306e\u6574\u5408\u6027\u4fdd\u8a3c<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u3067\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001static\u95a2\u6570\u306e\u6d3b\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">static\u95a2\u6570\u304c\u5a01\u529b\u3092\u767a\u63ee\u3059\u308b\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u3092static\u95a2\u6570\u3068\u3057\u3066\u5b9f\u88c5\u3059\u308b\u5229\u70b9<\/h3>\n\n\n\n<p>\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u3092static\u95a2\u6570\u3068\u3057\u3066\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u6574\u7406\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u306e\u5411\u4e0a\u304c\u56f3\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class StringUtils {\nprivate:\n    \/\/ \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3092\u9632\u3050\u305f\u3081\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\n    StringUtils() = delete;\n\npublic:\n    \/\/ \u6587\u5b57\u5217\u306e\u524d\u5f8c\u306e\u7a7a\u767d\u3092\u524a\u9664\u3059\u308b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\n    static std::string trim(const std::string&amp; str) {\n        if (str.empty()) return str;\n\n        size_t first = str.find_first_not_of(\" \\t\\n\\r\");\n        size_t last = str.find_last_not_of(\" \\t\\n\\r\");\n\n        return (first == std::string::npos) ? \"\" : str.substr(first, last - first + 1);\n    }\n\n    \/\/ \u6587\u5b57\u5217\u3092\u6307\u5b9a\u3055\u308c\u305f\u533a\u5207\u308a\u6587\u5b57\u3067\u5206\u5272\u3059\u308b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\n    static std::vector&lt;std::string&gt; split(const std::string&amp; str, char delimiter) {\n        std::vector&lt;std::string&gt; tokens;\n        std::stringstream ss(str);\n        std::string token;\n\n        while (std::getline(ss, token, delimiter)) {\n            tokens.push_back(trim(token));\n        }\n\n        return tokens;\n    }\n\n    \/\/ \u6570\u5024\u3092\u6587\u5b57\u5217\u306b\u5909\u63db\u3059\u308b\u969b\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u7528\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\n    static std::string formatNumber(double value, int precision = 2) {\n        std::ostringstream ss;\n        ss &lt;&lt; std::fixed &lt;&lt; std::setprecision(precision) &lt;&lt; value;\n        return ss.str();\n    }\n};<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u540d\u524d\u7a7a\u9593\u6c5a\u67d3\u3092\u9632\u3050\u305f\u3081\u306estatic\u95a2\u6570\u6d3b\u7528\u6cd5<\/h3>\n\n\n\n<p>static\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540d\u524d\u7a7a\u9593\u306e\u885d\u7a81\u3092\u9632\u304e\u306a\u304c\u3089\u95a2\u9023\u3059\u308b\u6a5f\u80fd\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d5\u30a1\u30a4\u30eb: MathUtils.hpp\nnamespace Math {\n    class VectorOperations {\n    private:\n        static constexpr double EPSILON = 1e-10;\n\n    public:\n        \/\/ \u30d9\u30af\u30c8\u30eb\u306e\u6b63\u898f\u5316\n        static std::vector&lt;double&gt; normalize(const std::vector&lt;double&gt;&amp; vec) {\n            double magnitude = 0.0;\n            for (const auto&amp; v : vec) {\n                magnitude += v * v;\n            }\n            magnitude = std::sqrt(magnitude);\n\n            if (magnitude &lt; EPSILON) {\n                return vec;  \/\/ \u96f6\u30d9\u30af\u30c8\u30eb\u306e\u5834\u5408\u306f\u5909\u66f4\u306a\u3057\n            }\n\n            std::vector&lt;double&gt; normalized(vec.size());\n            for (size_t i = 0; i &lt; vec.size(); ++i) {\n                normalized[i] = vec[i] \/ magnitude;\n            }\n            return normalized;\n        }\n\n        \/\/ \u30d9\u30af\u30c8\u30eb\u306e\u5185\u7a4d\u8a08\u7b97\n        static double dotProduct(const std::vector&lt;double&gt;&amp; vec1, \n                               const std::vector&lt;double&gt;&amp; vec2) {\n            if (vec1.size() != vec2.size()) {\n                throw std::invalid_argument(\"Vectors must have same size\");\n            }\n\n            double result = 0.0;\n            for (size_t i = 0; i &lt; vec1.size(); ++i) {\n                result += vec1[i] * vec2[i];\n            }\n            return result;\n        }\n    };\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid processVectors() {\n    std::vector&lt;double&gt; v1 = {1.0, 2.0, 3.0};\n    std::vector&lt;double&gt; v2 = {4.0, 5.0, 6.0};\n\n    auto normalized = Math::VectorOperations::normalize(v1);\n    double dot = Math::VectorOperations::dotProduct(normalized, v2);\n}<\/pre>\n\n\n\n<p>static\u95a2\u6570\u306e\u6d3b\u7528\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5229\u70b9\u304c\u5f97\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30fc\u30c9\u306e\u6574\u7406\u3068\u518d\u5229\u7528\u6027<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u95a2\u9023\u3059\u308b\u6a5f\u80fd\u3092\u30af\u30e9\u30b9\u3068\u3057\u3066\u30b0\u30eb\u30fc\u30d7\u5316<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u4e0d\u8981\u3067\u76f4\u63a5\u547c\u3073\u51fa\u3057\u53ef\u80fd<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u306e\u91cd\u8907\u3092\u524a\u6e1b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u540d\u524d\u7a7a\u9593\u306e\u7ba1\u7406<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u95a2\u6570\u540d\u306e\u885d\u7a81\u3092\u9632\u6b62<\/li>\n\n\n\n<li>\u6a5f\u80fd\u306e\u660e\u78ba\u306a\u533a\u5206\u3051<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u52b9\u7387\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u4e0d\u8981<\/li>\n\n\n\n<li>\u30b9\u30bf\u30c3\u30af\u9818\u57df\u306e\u52b9\u7387\u7684\u306a\u4f7f\u7528<\/li>\n\n\n\n<li>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u751f\u6210\u30b3\u30b9\u30c8\u306e\u524a\u6e1b<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306f\u3001\u5927\u898f\u6a21\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3088\u308a\u52b9\u679c\u3092\u767a\u63ee\u3057\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001static\u30e1\u30f3\u30d0\u30fc\u3092\u4f7f\u7528\u3057\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306e\u6539\u5584\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">static\u30e1\u30f3\u30d0\u30fc\u306b\u3088\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306e\u6539\u5584<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">static\u30e1\u30f3\u30d0\u30fc\u5909\u6570\u306b\u3088\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u72b6\u614b\u306e\u9069\u5207\u306a\u7ba1\u7406<\/h3>\n\n\n\n<p>\u30b0\u30ed\u30fc\u30d0\u30eb\u72b6\u614b\u306e\u7ba1\u7406\u306f\u5e38\u306b\u8ab2\u984c\u3068\u306a\u308a\u307e\u3059\u304c\u3001static\u30e1\u30f3\u30d0\u30fc\u5909\u6570\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30ab\u30d7\u30bb\u30eb\u5316\u3068\u4e00\u8cab\u6027\u3092\u4fdd\u3061\u306a\u304c\u3089\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ApplicationContext {\nprivate:\n    static std::unique_ptr&lt;ApplicationConfig&gt; config;\n    static std::atomic&lt;bool&gt; isInitialized;\n    static std::mutex initMutex;\n\npublic:\n    static bool initialize(const std::string&amp; configPath) {\n        if (isInitialized) {\n            return false;  \/\/ \u65e2\u306b\u521d\u671f\u5316\u6e08\u307f\n        }\n\n        std::lock_guard&lt;std::mutex&gt; lock(initMutex);\n        if (isInitialized) {  \/\/ Double-check locking\n            return false;\n        }\n\n        try {\n            config = std::make_unique&lt;ApplicationConfig&gt;(configPath);\n            isInitialized = true;\n            return true;\n        } catch (const std::exception&amp; e) {\n            std::cerr &lt;&lt; \"Initialization failed: \" &lt;&lt; e.what() &lt;&lt; std::endl;\n            return false;\n        }\n    }\n\n    static const ApplicationConfig&amp; getConfig() {\n        if (!isInitialized) {\n            throw std::runtime_error(\"ApplicationContext not initialized\");\n        }\n        return *config;\n    }\n\n    \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u72b6\u614b\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u5236\u5fa1\u3059\u308b\u30e1\u30bd\u30c3\u30c9\n    static void updateSetting(const std::string&amp; key, const std::string&amp; value) {\n        if (!isInitialized) {\n            throw std::runtime_error(\"ApplicationContext not initialized\");\n        }\n        config-&gt;updateSetting(key, value);\n    }\n};\n\n\/\/ static\u5909\u6570\u306e\u521d\u671f\u5316\nstd::unique_ptr&lt;ApplicationConfig&gt; ApplicationContext::config;\nstd::atomic&lt;bool&gt; ApplicationContext::isInitialized{false};\nstd::mutex ApplicationContext::initMutex;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u30c6\u30b9\u30c8\u5bb9\u6613\u6027\u3092\u9ad8\u3081\u308bstatic\u30e1\u30f3\u30d0\u30fc\u95a2\u6570\u306e\u6d3b\u7528<\/h3>\n\n\n\n<p>static\u30e1\u30f3\u30d0\u30fc\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30c6\u30b9\u30c8\u53ef\u80fd\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u8a2d\u8a08\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u3001\u30e2\u30c3\u30af\u5316\u3084\u30c6\u30b9\u30c8\u30c0\u30d6\u30eb\u306e\u4f5c\u6210\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class DataProcessor {\npublic:\n    \/\/ \u30c6\u30b9\u30c8\u53ef\u80fd\u306a\u9759\u7684\u30e1\u30bd\u30c3\u30c9\n    static std::vector&lt;double&gt; normalizeData(const std::vector&lt;double&gt;&amp; data) {\n        if (data.empty()) {\n            return {};\n        }\n\n        double sum = std::accumulate(data.begin(), data.end(), 0.0);\n        double mean = sum \/ data.size();\n\n        std::vector&lt;double&gt; normalized;\n        normalized.reserve(data.size());\n\n        double variance = calculateVariance(data, mean);\n        double stdDev = std::sqrt(variance);\n\n        for (double value : data) {\n            normalized.push_back((value - mean) \/ stdDev);\n        }\n\n        return normalized;\n    }\n\nprivate:\n    static double calculateVariance(const std::vector&lt;double&gt;&amp; data, double mean) {\n        double sumSquares = 0.0;\n        for (double value : data) {\n            double diff = value - mean;\n            sumSquares += diff * diff;\n        }\n        return sumSquares \/ data.size();\n    }\n};\n\n\/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u4f8b\nclass DataProcessorTest : public ::testing::Test {\nprotected:\n    std::vector&lt;double&gt; testData{1.0, 2.0, 3.0, 4.0, 5.0};\n\n    void SetUp() override {\n        \/\/ \u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u6e96\u5099\n    }\n};\n\nTEST_F(DataProcessorTest, NormalizeDataTest) {\n    auto normalized = DataProcessor::normalizeData(testData);\n\n    \/\/ \u7d50\u679c\u306e\u691c\u8a3c\n    EXPECT_NEAR(0.0, std::accumulate(normalized.begin(), normalized.end(), 0.0) \/ normalized.size(), 1e-10);\n    EXPECT_NEAR(1.0, calculateStdDev(normalized), 1e-10);\n}<\/pre>\n\n\n\n<p>static\u30e1\u30f3\u30d0\u30fc\u3092\u6d3b\u7528\u3057\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306e\u5229\u70b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u72b6\u614b\u7ba1\u7406\u306e\u6539\u5584<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b0\u30ed\u30fc\u30d0\u30eb\u72b6\u614b\u306e\u30ab\u30d7\u30bb\u30eb\u5316<\/li>\n\n\n\n<li>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u88c5\u306e\u5bb9\u6613\u3055<\/li>\n\n\n\n<li>\u4e00\u8cab\u6027\u306e\u3042\u308b\u72b6\u614b\u7ba1\u7406<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c6\u30b9\u30c8\u5bb9\u6613\u6027\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f9d\u5b58\u95a2\u4fc2\u306e\u5206\u96e2\u304c\u5bb9\u6613<\/li>\n\n\n\n<li>\u30e2\u30c3\u30af\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u304c\u7c21\u5358<\/li>\n\n\n\n<li>\u30e6\u30cb\u30c3\u30c8\u30c6\u30b9\u30c8\u306e\u8a18\u8ff0\u304c\u660e\u78ba<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u8cac\u4efb\u7bc4\u56f2\u304c\u660e\u78ba<\/li>\n\n\n\n<li>\u5909\u66f4\u306e\u5f71\u97ff\u7bc4\u56f2\u304c\u628a\u63e1\u3057\u3084\u3059\u3044<\/li>\n\n\n\n<li>\u30c7\u30d0\u30c3\u30b0\u304c\u5bb9\u6613<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u304c\u9ad8\u304f\u3001\u30c6\u30b9\u30c8\u304c\u5bb9\u6613\u306a\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001static\u3092\u4f7f\u7528\u3057\u305f\u6027\u80fd\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">C++ static\u306e\u6027\u80fd\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6700\u9069\u5316\u3068static\u306e\u95a2\u4fc2\u6027<\/h3>\n\n\n\n<p>static\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u6700\u9069\u5316\u6a5f\u4f1a\u3092\u5897\u3084\u3057\u3001\u5b9f\u884c\u6642\u6027\u80fd\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class MathOptimizer {\nprivate:\n    \/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u5b9a\u6570\n    static constexpr double PI = 3.14159265358979323846;\n    static constexpr int LOOKUP_SIZE = 360;\n\n    \/\/ \u4e8b\u524d\u8a08\u7b97\u3055\u308c\u305fsin\u5024\u306e\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u30c6\u30fc\u30d6\u30eb\n    static const double sinTable[LOOKUP_SIZE];\n\npublic:\n    \/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u6700\u9069\u5316\u3055\u308c\u308b\u95a2\u6570\n    static constexpr double degreesToRadians(int degrees) {\n        return (degrees * PI) \/ 180.0;\n    }\n\n    \/\/ \u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u30c6\u30fc\u30d6\u30eb\u3092\u4f7f\u7528\u3057\u305f\u9ad8\u901f\u306a\u6b63\u5f26\u8a08\u7b97\n    static double fastSin(int degrees) {\n        degrees = degrees % 360;\n        if (degrees &lt; 0) degrees += 360;\n        return sinTable[degrees];\n    }\n};\n\n\/\/ \u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u30c6\u30fc\u30d6\u30eb\u306e\u521d\u671f\u5316\uff08\u30d7\u30ed\u30b0\u30e9\u30e0\u8d77\u52d5\u6642\u306b\u4e00\u5ea6\u3060\u3051\u5b9f\u884c\uff09\nconst double MathOptimizer::sinTable[LOOKUP_SIZE] = []() {\n    std::array&lt;double, LOOKUP_SIZE&gt; table;\n    for (int i = 0; i &lt; LOOKUP_SIZE; ++i) {\n        table[i] = std::sin(degreesToRadians(i));\n    }\n    return table;\n}();<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">\u30e1\u30e2\u30ea\u30a2\u30af\u30bb\u30b9\u30d1\u30bf\u30fc\u30f3\u306e\u6539\u5584\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a<\/h3>\n\n\n\n<p>static\u5909\u6570\u306e\u9069\u5207\u306a\u914d\u7f6e\u3068\u4f7f\u7528\u306b\u3088\u308a\u3001\u30e1\u30e2\u30ea\u30a2\u30af\u30bb\u30b9\u30d1\u30bf\u30fc\u30f3\u3092\u6700\u9069\u5316\u3057\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class DataProcessor {\nprivate:\n    \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30e9\u30a4\u30f3\u306b\u5408\u308f\u305b\u305f\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\n    alignas(64) static std::array&lt;float, 1024&gt; dataCache;\n    static std::atomic&lt;size_t&gt; cacheSize;\n\npublic:\n    \/\/ \u30c7\u30fc\u30bf\u306e\u4e00\u62ec\u51e6\u7406\u306b\u3088\u308b\u52b9\u7387\u5316\n    static void processDataBatch(const std::vector&lt;float&gt;&amp; input) {\n        const size_t batchSize = 64;  \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30e9\u30a4\u30f3\u30b5\u30a4\u30ba\u306b\u5408\u308f\u305b\u308b\n\n        for (size_t i = 0; i &lt; input.size(); i += batchSize) {\n            size_t currentBatchSize = std::min(batchSize, input.size() - i);\n\n            \/\/ \u30c7\u30fc\u30bf\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u30d7\u30ea\u30d5\u30a7\u30c3\u30c1\n            for (size_t j = 0; j &lt; currentBatchSize; ++j) {\n                dataCache[j] = input[i + j];\n            }\n\n            \/\/ \u30d0\u30c3\u30c1\u51e6\u7406\u3092\u5b9f\u884c\n            processCachedData(currentBatchSize);\n        }\n    }\n\nprivate:\n    static void processCachedData(size_t size) {\n        \/\/ SIMD\u64cd\u4f5c\u304c\u53ef\u80fd\u306a\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u51e6\u7406\n        #pragma omp simd\n        for (size_t i = 0; i &lt; size; ++i) {\n            dataCache[i] = std::pow(dataCache[i], 2.0f) + dataCache[i];\n        }\n    }\n};\n\n\/\/ static\u5909\u6570\u306e\u521d\u671f\u5316\nstd::array&lt;float, 1024&gt; DataProcessor::dataCache;\nstd::atomic&lt;size_t&gt; DataProcessor::cacheSize{0};<\/pre>\n\n\n\n<p>\u6027\u80fd\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6700\u9069\u5316\u306e\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>constexpr\u306b\u3088\u308b\u5b9a\u6570\u6298\u308a\u305f\u305f\u307f<\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e1\u30bf\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/li>\n\n\n\n<li>\u30a4\u30f3\u30e9\u30a4\u30f3\u5c55\u958b\u306e\u4fc3\u9032<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a08\u7b97\u306e\u4f8b\ntemplate&lt;size_t N&gt;\nclass CompileTimeOptimizer {\n    static constexpr auto calculateFactorial() {\n        if constexpr (N &lt;= 1) return 1;\n        else return N * CompileTimeOptimizer&lt;N-1&gt;::calculateFactorial();\n    }\n\npublic:\n    static constexpr auto value = calculateFactorial();\n};<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u30ec\u30a4\u30a2\u30a6\u30c8\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30e9\u30a4\u30f3\u306b\u5408\u308f\u305b\u305f\u30c7\u30fc\u30bf\u914d\u7f6e<\/li>\n\n\n\n<li>\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u5236\u5fa1<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30ed\u30fc\u30ab\u30ea\u30c6\u30a3\u306e\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u5b9f\u884c\u6642\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u306e\u524a\u6e1b<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9759\u7684\u521d\u671f\u5316\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u30c6\u30fc\u30d6\u30eb\u306e\u4f7f\u7528<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u6700\u5c0f\u5316<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u6027\u80fd\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001static\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u6ce8\u610f\u70b9\u3068\u5bfe\u7b56\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-16\">C++ static\u306e\u843d\u3068\u3057\u7a74\u3068\u5bfe\u7b56<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u9759\u7684\u521d\u671f\u5316\u306e\u554f\u984c<\/h3>\n\n\n\n<p>static\u5909\u6570\u306e\u521d\u671f\u5316\u306f\u3001\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u4e88\u671f\u305b\u306c\u554f\u984c\u3092\u5f15\u304d\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u5b9f\u88c5\nclass DatabaseConnection {\nprivate:\n    static DatabaseConnection* instance;  \/\/ \u5371\u967a\uff1a\u9069\u5207\u306a\u540c\u671f\u304c\u306a\u3044\n\npublic:\n    static DatabaseConnection* getInstance() {\n        if (!instance) {  \/\/ \u7af6\u5408\u72b6\u614b\u306e\u53ef\u80fd\u6027\n            instance = new DatabaseConnection();\n        }\n        return instance;\n    }\n};\n\n\/\/ \u6539\u5584\u3055\u308c\u305f\u5b9f\u88c5\nclass SafeDatabaseConnection {\nprivate:\n    static std::unique_ptr&lt;SafeDatabaseConnection&gt; instance;\n    static std::mutex initMutex;\n\npublic:\n    static SafeDatabaseConnection&amp; getInstance() {\n        std::call_once(initFlag, []() {\n            instance = std::unique_ptr&lt;SafeDatabaseConnection&gt;(\n                new SafeDatabaseConnection());\n        });\n        return *instance;\n    }\n\nprivate:\n    static std::once_flag initFlag;\n};\n\n\/\/ \u9759\u7684\u30e1\u30f3\u30d0\u306e\u521d\u671f\u5316\nstd::unique_ptr&lt;SafeDatabaseConnection&gt; SafeDatabaseConnection::instance;\nstd::mutex SafeDatabaseConnection::initMutex;\nstd::once_flag SafeDatabaseConnection::initFlag;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<p>static\u5909\u6570\u306e\u4e0d\u9069\u5207\u306a\u4f7f\u7528\u306f\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3084\u30ea\u30bd\u30fc\u30b9\u306e\u89e3\u653e\u6f0f\u308c\u3092\u5f15\u304d\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u5b9f\u88c5\uff1a\u30ea\u30bd\u30fc\u30b9\u30ea\u30fc\u30af\u306e\u53ef\u80fd\u6027\nclass ResourceManager {\nprivate:\n    static FILE* logFile;  \/\/ \u5371\u967a\uff1a\u660e\u793a\u7684\u306a\u89e3\u653e\u304c\u5fc5\u8981\n\npublic:\n    static void initializeLog() {\n        logFile = fopen(\"app.log\", \"a\");\n    }\n    \/\/ \u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u547c\u3070\u308c\u308b\u4fdd\u8a3c\u304c\u306a\u3044\n};\n\n\/\/ \u6539\u5584\u3055\u308c\u305f\u5b9f\u88c5\uff1aRAII\u306e\u6d3b\u7528\nclass SafeResourceManager {\nprivate:\n    class LogFile {\n        std::unique_ptr&lt;std::ofstream&gt; file;\n    public:\n        LogFile() : file(std::make_unique&lt;std::ofstream&gt;(\"app.log\", \n                                                        std::ios::app)) {}\n        ~LogFile() {\n            if (file &amp;&amp; file-&gt;is_open()) {\n                file-&gt;close();\n            }\n        }\n\n        std::ofstream&amp; getStream() { return *file; }\n    };\n\n    static LogFile&amp; getLogFile() {\n        static LogFile logFile;  \/\/ C++11\u4ee5\u964d\u306f\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u521d\u671f\u5316\n        return logFile;\n    }\n\npublic:\n    static void writeLog(const std::string&amp; message) {\n        getLogFile().getStream() &lt;&lt; message &lt;&lt; std::endl;\n    }\n};<\/pre>\n\n\n\n<p>\u4e3b\u306a\u843d\u3068\u3057\u7a74\u3068\u5bfe\u7b56\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9759\u7684\u521d\u671f\u5316\u9806\u5e8f\u306e\u554f\u984c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \/\/ \u554f\u984c\u306e\u3042\u308b\u30b3\u30fc\u30c9\n   class Problem {\n       static std::string data;\n       static ServiceClass service;  \/\/ \u521d\u671f\u5316\u9806\u5e8f\u304c\u4e0d\u5b9a\n   };\n\n   \/\/ \u6539\u5584\u7b56\uff1aMeyers' Singleton \u30d1\u30bf\u30fc\u30f3\u306e\u4f7f\u7528\n   class Solution {\n   public:\n       static ServiceClass&amp; getService() {\n           static ServiceClass instance;  \/\/ \u5fc5\u8981\u6642\u306b\u521d\u671f\u5316\n           return instance;\n       }\n\n       static std::string&amp; getData() {\n           static std::string data;  \/\/ \u5fc5\u8981\u6642\u306b\u521d\u671f\u5316\n           return data;\n       }\n   };<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u306e\u9632\u6b62<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class SafeClass {\n   private:\n       static std::mutex resourceMutex;\n       static std::shared_ptr&lt;Resource&gt; resource;\n\n   public:\n       static void initializeResource() {\n           \/\/ \u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u4ed8\u304d\u30ed\u30c3\u30af\u53d6\u5f97\n           std::unique_lock&lt;std::mutex&gt; lock(resourceMutex, \n                                           std::chrono::seconds(5));\n           if (!lock.owns_lock()) {\n               throw std::runtime_error(\"Lock acquisition timeout\");\n           }\n\n           if (!resource) {\n               resource = std::make_shared&lt;Resource&gt;();\n           }\n       }\n   };<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u89e3\u653e\u306e\u4fdd\u8a3c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class Cleanup {\n   private:\n       static std::vector&lt;std::function&lt;void()&gt;&gt; cleanupHandlers;\n\n   public:\n       static void registerCleanup(std::function&lt;void()&gt; handler) {\n           cleanupHandlers.push_back(handler);\n       }\n\n       static void performCleanup() {\n           for (auto&amp; handler : cleanupHandlers) {\n               handler();\n           }\n           cleanupHandlers.clear();\n       }\n\n       ~Cleanup() {\n           performCleanup();  \/\/ \u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u3092\u5b9f\u884c\n       }\n   };<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5bfe\u7b56\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u9759\u7684\u5909\u6570\u3084\u95a2\u6570\u3092\u5b89\u5168\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9f\u8df5\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3067static\u6d3b\u7528\u8853\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-19\">\u5b9f\u8df5\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3067\u5b66\u3076static\u6d3b\u7528\u8853<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-20\">\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306b\u304a\u3051\u308bstatic\u306e\u6d3b\u7528\u4f8b<\/h3>\n\n\n\n<p>\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3092\u5b9f\u88c5\u3059\u308b\u969b\u3001static\u30e1\u30f3\u30d0\u30fc\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u67d4\u8edf\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d5\u30a1\u30af\u30c8\u30ea\u30fc\u30d1\u30bf\u30fc\u30f3\u3067\u306estatic\u6d3b\u7528\u4f8b\nclass ConnectionFactory {\npublic:\n    enum class Type {\n        MySQL,\n        PostgreSQL,\n        SQLite\n    };\n\n    static std::unique_ptr&lt;IConnection&gt; createConnection(Type type) {\n        switch (type) {\n            case Type::MySQL:\n                return std::make_unique&lt;MySQLConnection&gt;();\n            case Type::PostgreSQL:\n                return std::make_unique&lt;PostgreSQLConnection&gt;();\n            case Type::SQLite:\n                return std::make_unique&lt;SQLiteConnection&gt;();\n            default:\n                throw std::invalid_argument(\"Unknown connection type\");\n        }\n    }\n\n    \/\/ \u63a5\u7d9a\u8a2d\u5b9a\u306e\u52d5\u7684\u767b\u9332\n    static void registerConnectionConfig(Type type, const ConnectionConfig&amp; config) {\n        static std::unordered_map&lt;Type, ConnectionConfig&gt; configs;\n        configs[type] = config;\n    }\n};\n\n\/\/ \u30aa\u30d6\u30b6\u30fc\u30d0\u30fc\u30d1\u30bf\u30fc\u30f3\u306e\u5b9f\u88c5\u4f8b\nclass EventManager {\nprivate:\n    static std::unordered_map&lt;std::string, std::vector&lt;std::function&lt;void(const Event&amp;)&gt;&gt;&gt; observers;\n    static std::mutex observerMutex;\n\npublic:\n    static void subscribe(const std::string&amp; eventType, \n                         std::function&lt;void(const Event&amp;)&gt; callback) {\n        std::lock_guard&lt;std::mutex&gt; lock(observerMutex);\n        observers[eventType].push_back(callback);\n    }\n\n    static void notify(const std::string&amp; eventType, const Event&amp; event) {\n        std::lock_guard&lt;std::mutex&gt; lock(observerMutex);\n        if (auto it = observers.find(eventType); it != observers.end()) {\n            for (const auto&amp; observer : it-&gt;second) {\n                observer(event);\n            }\n        }\n    }\n};<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\u306e\u6539\u5584\u306b\u6d3b\u304b\u3059static\u518d\u8a2d\u8a08\u8853<\/h3>\n\n\n\n<p>\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\u3092\u6539\u5584\u3059\u308b\u969b\u3001static\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6539\u5584\u524d\u306e\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\nclass OldLogger {\nprivate:\n    FILE* logFile;\n    char buffer[1024];\n\npublic:\n    void writeLog(const char* message) {\n        sprintf(buffer, \"%s\\n\", message);\n        fputs(buffer, logFile);\n    }\n};\n\n\/\/ \u6539\u5584\u5f8c\u306e\u30e2\u30c0\u30f3\u306a\u5b9f\u88c5\nclass Logger {\nprivate:\n    static std::shared_ptr&lt;spdlog::logger&gt; logger;\n    static std::once_flag initFlag;\n\n    static void initialize() {\n        std::call_once(initFlag, []() {\n            auto console_sink = std::make_shared&lt;spdlog::sinks::stdout_color_sink_mt&gt;();\n            auto file_sink = std::make_shared&lt;spdlog::sinks::basic_file_sink_mt&gt;(\"logs\/app.log\", true);\n\n            std::vector&lt;spdlog::sink_ptr&gt; sinks {console_sink, file_sink};\n            logger = std::make_shared&lt;spdlog::logger&gt;(\"multi_sink\", sinks.begin(), sinks.end());\n\n            logger-&gt;set_pattern(\"[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] [thread %t] %v\");\n            logger-&gt;flush_on(spdlog::level::info);\n        });\n    }\n\npublic:\n    template&lt;typename... Args&gt;\n    static void log(spdlog::level::level_enum level, fmt::format_string&lt;Args...&gt; fmt, Args&amp;&amp;... args) {\n        initialize();\n        logger-&gt;log(level, fmt, std::forward&lt;Args&gt;(args)...);\n    }\n\n    static void flush() {\n        if (logger) {\n            logger-&gt;flush();\n        }\n    }\n};\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid processOrder(const Order&amp; order) {\n    Logger::log(spdlog::level::info, \"Processing order {}\", order.getId());\n    try {\n        \/\/ \u6ce8\u6587\u51e6\u7406\n        Logger::log(spdlog::level::info, \"Order {} processed successfully\", order.getId());\n    } catch (const std::exception&amp; e) {\n        Logger::log(spdlog::level::error, \"Order {} processing failed: {}\", order.getId(), e.what());\n    }\n}<\/pre>\n\n\n\n<p>\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class CacheManager {\nprivate:\n    static std::unordered_map&lt;std::string, std::shared_ptr&lt;Resource&gt;&gt; resourceCache;\n    static std::mutex cacheMutex;\n\npublic:\n    static std::shared_ptr&lt;Resource&gt; getResource(const std::string&amp; key) {\n        {\n            std::shared_lock&lt;std::shared_mutex&gt; lock(cacheMutex);\n            if (auto it = resourceCache.find(key); it != resourceCache.end()) {\n                return it-&gt;second;\n            }\n        }\n\n        std::unique_lock&lt;std::shared_mutex&gt; lock(cacheMutex);\n        auto resource = std::make_shared&lt;Resource&gt;(key);\n        resourceCache[key] = resource;\n        return resource;\n    }\n\n    static void clearCache() {\n        std::unique_lock&lt;std::shared_mutex&gt; lock(cacheMutex);\n        resourceCache.clear();\n    }\n};<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u7ba1\u7406\u306e\u6539\u5584<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Configuration {\nprivate:\n    static std::shared_ptr&lt;YAML::Node&gt; config;\n    static std::mutex configMutex;\n\npublic:\n    template&lt;typename T&gt;\n    static T getValue(const std::string&amp; key, const T&amp; defaultValue) {\n        std::lock_guard&lt;std::mutex&gt; lock(configMutex);\n        try {\n            return config-&gt;operator[](key).as&lt;T&gt;();\n        } catch (...) {\n            return defaultValue;\n        }\n    }\n\n    static void reload() {\n        std::lock_guard&lt;std::mutex&gt; lock(configMutex);\n        config = std::make_shared&lt;YAML::Node&gt;(YAML::LoadFile(\"config.yaml\"));\n    }\n};<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u88c5\u4f8b\u306f\u3001static\u3092\u6d3b\u7528\u3057\u305f\u5b9f\u8df5\u7684\u306a\u30b3\u30fc\u30c9\u8a2d\u8a08\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4fdd\u5b88\u6027\u304c\u9ad8\u304f\u3001\u52b9\u7387\u7684\u306a\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":{"0":"post-1952","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-cpp","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1952"}],"version-history":[{"count":1,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1952\/revisions"}],"predecessor-version":[{"id":1953,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1952\/revisions\/1953"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}