{"id":1717,"date":"2025-03-24T08:50:06","date_gmt":"2025-03-23T23:50:06","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1717"},"modified":"2025-03-24T08:50:06","modified_gmt":"2025-03-23T23:50:06","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91cppcheck%e3%81%ab%e3%82%88%e3%82%8bc%e9%9d%99%e8%a7%a3%e6%9e%90%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89-%e8%a8%ad%e5%ae%9a%e3%81%8b%e3%82%89","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1717","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011cppcheck\u306b\u3088\u308bC++\u9759\u89e3\u6790\u5b8c\u5168\u30ac\u30a4\u30c9 &#8211; \u8a2d\u5b9a\u304b\u3089\u5b9f\u8df5\u6d3b\u7528\u307e\u3067"},"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\">cppcheck \u3068\u306f \u2013 C++ \u9759\u7684\u89e3\u6790\u306e\u65b0\u6a19\u6e96\u30c4\u30fc\u30eb<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u7121\u6599\u3067\u4f7f\u3048\u308b\u9ad8\u6027\u80fd\u306a\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">Google\u30fbMicrosoft\u3082\u63a1\u7528\u3059\u308b\u4fe1\u983c\u6027<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">\u74b0\u5883\u69cb\u7bc9\u30ac\u30a4\u30c9 \u2013 \u78ba\u5b9f\u306b\u52d5\u4f5c\u3055\u305b\u308b\u305f\u3081\u306e\u624b\u9806<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">Windows\/Mac\/Linux \u3078\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806<\/a>      <\/li>      <li>        <a href=\"#i-8\">Visual Studio Code \u9023\u643a\u306e\u8a73\u7d30\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u5b9f\u884c\u306e\u305f\u3081\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u30de\u30b9\u30bf\u30fc\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">\u52b9\u679c\u7684\u306a\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u4f7f\u7528\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-13\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e\u30b9\u30ad\u30e3\u30f3\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-14\">\u554f\u984c\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-15\">\u5b9f\u8df5\u7684\u306a\u30a8\u30e9\u30fc\u5bfe\u5fdc\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u610f\u5473\u3068\u5bfe\u51e6\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-19\">\u8aa4\u8a8d\u3068\u306e\u4ed8\u304d\u5408\u3044\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-22\">\u30a8\u30e9\u30fc\u6291\u5236\u306e\u9069\u5207\u306a\u4f7f\u7528\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-26\">CI\/CD \u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-27\">GitHub Actions \u3068\u306e\u9023\u643a\u624b\u9806<\/a>      <\/li>      <li>        <a href=\"#i-30\">Jenkins \u7d71\u5408\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-33\">\u81ea\u52d5\u5316\u306b\u3088\u308b\u54c1\u8cea\u7ba1\u7406\u306e\u52b9\u7387\u5316<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-37\">\u4e0a\u7d1a\u8005\u5411\u3051\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-38\">\u30ab\u30b9\u30bf\u30e0\u30c1\u30a7\u30c3\u30af\u30eb\u30fc\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-41\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-44\">\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30b9\u30ad\u30e3\u30f3\u8a2d\u5b9a<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-48\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u5b8c\u5168\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-49\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-52\">\u30b9\u30ad\u30e3\u30f3\u901f\u5ea6\u5411\u4e0a\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-55\">\u30a8\u30e9\u30fc\u51fa\u529b\u306e\u6574\u5f62\u3068\u6d3b\u7528\u65b9\u6cd5<\/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\">cppcheck \u3068\u306f \u2013 C++ \u9759\u7684\u89e3\u6790\u306e\u65b0\u6a19\u6e96\u30c4\u30fc\u30eb<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u7121\u6599\u3067\u4f7f\u3048\u308b\u9ad8\u6027\u80fd\u306a\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb<\/h3>\n\n\n\n<p>cppcheck\u306f\u3001C\/C++\u30b3\u30fc\u30c9\u306e\u9759\u7684\u89e3\u6790\u3092\u884c\u3046\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30c4\u30fc\u30eb\u3067\u3059\u30022009\u5e74\u306bDaniel Marjam\u00e4ki\u306b\u3088\u3063\u3066\u958b\u767a\u304c\u958b\u59cb\u3055\u308c\u3001\u73fe\u5728\u3082\u6d3b\u767a\u306b\u958b\u767a\u304c\u7d99\u7d9a\u3055\u308c\u3066\u3044\u308b\u4fe1\u983c\u6027\u306e\u9ad8\u3044\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4e3b\u306a\u7279\u9577\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5b8c\u5168\u7121\u6599\uff06\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GPL\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u63d0\u4f9b<\/li>\n\n\n\n<li>\u5546\u7528\u5229\u7528\u3082\u7121\u511f\u3067\u53ef\u80fd<\/li>\n\n\n\n<li>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304c\u516c\u958b\u3055\u308c\u3001\u900f\u660e\u6027\u304c\u9ad8\u3044<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u512a\u308c\u305f\u691c\u51fa\u80fd\u529b<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af<\/li>\n\n\n\n<li>\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc<\/li>\n\n\n\n<li>\u672a\u521d\u671f\u5316\u5909\u6570\u306e\u4f7f\u7528<\/li>\n\n\n\n<li>\u7121\u52b9\u306a\u30dd\u30a4\u30f3\u30bf\u64cd\u4f5c<\/li>\n\n\n\n<li>\u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30a2\u30af\u30bb\u30b9<\/li>\n\n\n\n<li>STL\u306e\u8aa4\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4f4e\u3044\u8aa4\u691c\u77e5\u7387<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9f\u8df5\u7684\u306a\u30d2\u30e5\u30fc\u30ea\u30b9\u30c6\u30a3\u30af\u30b9\u306e\u63a1\u7528<\/li>\n\n\n\n<li>\u9577\u5e74\u306e\u958b\u767a\u3067\u6d17\u7df4\u3055\u308c\u305f\u691c\u51fa\u30ed\u30b8\u30c3\u30af<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u8003\u616e\u3057\u305f\u9ad8\u5ea6\u306a\u89e3\u6790<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9ad8\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e26\u5217\u51e6\u7406\u306b\u3088\u308b\u9ad8\u901f\u306a\u89e3\u6790<\/li>\n\n\n\n<li>\u6700\u9069\u5316\u3055\u308c\u305f\u89e3\u6790\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0<\/li>\n\n\n\n<li>\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3082\u5b9f\u7528\u7684\u306a\u51e6\u7406\u901f\u5ea6<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">Google\u30fbMicrosoft\u3082\u63a1\u7528\u3059\u308b\u4fe1\u983c\u6027<\/h3>\n\n\n\n<p>cppcheck\u306f\u3001\u696d\u754c\u6a19\u6e96\u306e\u30c4\u30fc\u30eb\u3068\u3057\u3066\u5e83\u304f\u8a8d\u77e5\u3055\u308c\u3066\u304a\u308a\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8457\u540d\u306a\u4f01\u696d\u3084\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e3b\u8981\u4f01\u696d\u3067\u306e\u63a1\u7528\u5b9f\u7e3e<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Google: \u793e\u5185\u306eC++\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u54c1\u8cea\u7ba1\u7406<\/li>\n\n\n\n<li>Microsoft: Windows\u958b\u767a\u306e\u88dc\u52a9\u30c4\u30fc\u30eb<\/li>\n\n\n\n<li>Intel: \u7d44\u307f\u8fbc\u307f\u30b7\u30b9\u30c6\u30e0\u958b\u767a\u3067\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>AMD: \u30c9\u30e9\u30a4\u30d0\u30fc\u958b\u767a\u3067\u306e\u54c1\u8cea\u4fdd\u8a3c<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linux Kernel<\/li>\n\n\n\n<li>Qt Framework<\/li>\n\n\n\n<li>Mozilla Firefox<\/li>\n\n\n\n<li>VLC Media Player<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u696d\u754c\u3067\u306e\u8a55\u4fa1<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CWE\uff08Common Weakness Enumeration\uff09\u3078\u306e\u6e96\u62e0<\/li>\n\n\n\n<li>CERT C\/C++\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u5bfe\u5fdc<\/li>\n\n\n\n<li>ISO\/IEC\u898f\u683c\u306b\u57fa\u3065\u304f\u691c\u67fb\u9805\u76ee\u306e\u30ab\u30d0\u30fc<\/li>\n<\/ul>\n\n\n\n<p>\u5c0e\u5165\u30e1\u30ea\u30c3\u30c8\uff1a<\/p>\n\n\n<div id=\"id-b9669378-8d22-407d-9ebd-28b7bd23b54c\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30ea\u30c3\u30c8<\/th><th>\u8a73\u7d30\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td>\u30b3\u30b9\u30c8\u524a\u6e1b<\/td><td>\u30d0\u30b0\u306e\u65e9\u671f\u767a\u898b\u306b\u3088\u308b\u4fee\u6b63\u30b3\u30b9\u30c8\u306e\u4f4e\u6e1b<\/td><\/tr><tr><td>\u54c1\u8cea\u5411\u4e0a<\/td><td>\u4e00\u8cab\u3057\u305f\u57fa\u6e96\u3067\u306e\u81ea\u52d5\u30c1\u30a7\u30c3\u30af\u306b\u3088\u308b\u54c1\u8cea\u306e\u6a19\u6e96\u5316<\/td><\/tr><tr><td>\u751f\u7523\u6027\u5411\u4e0a<\/td><td>\u624b\u52d5\u30ec\u30d3\u30e5\u30fc\u306e\u8ca0\u62c5\u8efd\u6e1b\u3068\u52b9\u7387\u5316<\/td><\/tr><tr><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/td><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8106\u5f31\u6027\u306e\u65e9\u671f\u767a\u898b\u3068\u5bfe\u7b56<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>cppcheck\u304c\u691c\u51fa\u3067\u304d\u308b\u4e3b\u306a\u554f\u984c\uff1a<\/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=\"\">\/\/ \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u4f8b\nvoid memoryLeak() {\n    int* ptr = new int(42);  \/\/ \u30e1\u30e2\u30ea\u78ba\u4fdd\n    \/\/ delete\u304c\u306a\u3044 \u2192 cppcheck\u304c\u8b66\u544a\n}\n\n\/\/ \u7bc4\u56f2\u5916\u30a2\u30af\u30bb\u30b9\u306e\u4f8b\nvoid arrayBounds() {\n    int arr[5];\n    for(int i = 0; i &lt;= 5; i++) {  \/\/ \u914d\u5217\u306e\u7bc4\u56f2\u5916\n        arr[i] = i;  \/\/ cppcheck\u304c\u8b66\u544a\n    }\n}\n\n\/\/ \u672a\u521d\u671f\u5316\u5909\u6570\u306e\u4f7f\u7528\u4f8b\nvoid uninitVar() {\n    int x;\n    int y = x + 1;  \/\/ \u672a\u521d\u671f\u5316\u5909\u6570\u306e\u4f7f\u7528 \u2192 cppcheck\u304c\u8b66\u544a\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u7279\u9577\u306b\u3088\u308a\u3001cppcheck\u306f\u7279\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u52b9\u679c\u3092\u767a\u63ee\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u54c1\u8cea\u7ba1\u7406\u57fa\u76e4\u306e\u69cb\u7bc9<\/li>\n\n\n\n<li>\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u6539\u5584<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306e\u54c1\u8cea\u57fa\u6e96\u306e\u7d71\u4e00<\/li>\n\n\n\n<li>CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306e\u81ea\u52d5\u54c1\u8cea\u30c1\u30a7\u30c3\u30af<\/li>\n<\/ul>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u9ad8\u6a5f\u80fd\u306a\u30c4\u30fc\u30eb\u3092\u3069\u306e\u3088\u3046\u306b\u5c0e\u5165\u30fb\u8a2d\u5b9a\u3059\u308b\u304b\u306b\u3064\u3044\u3066\u3001\u8a73\u3057\u304f\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">\u74b0\u5883\u69cb\u7bc9\u30ac\u30a4\u30c9 \u2013 \u78ba\u5b9f\u306b\u52d5\u4f5c\u3055\u305b\u308b\u305f\u3081\u306e\u624b\u9806<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">Windows\/Mac\/Linux \u3078\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-5\">Windows\u74b0\u5883\u3067\u306e\u5c0e\u5165<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/cppcheck.sourceforge.net\/\">\u516c\u5f0f\u30b5\u30a4\u30c8<\/a>\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc(.msi)\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u5b9f\u884c\u3057\u3001\u753b\u9762\u306e\u6307\u793a\u306b\u5f93\u3046<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6642\u306e\u30aa\u30d7\u30b7\u30e7\u30f3:\n<ul class=\"wp-block-list\">\n<li>GUI\u306e\u6709\u52b9\u5316\uff08\u63a8\u5968\uff09<\/li>\n\n\n\n<li>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30c4\u30fc\u30eb\u306e\u8ffd\u52a0<\/li>\n\n\n\n<li>Python\u9023\u643a\u6a5f\u80fd\u306e\u8ffd\u52a0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/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=\"\"># chocolatey\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\nchoco install cppcheck\n\n# scoop\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\nscoop install cppcheck<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-6\">Mac\u74b0\u5883\u3067\u306e\u5c0e\u5165<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Homebrew\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\uff08\u63a8\u5968\uff09<\/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=\"\"># Homebrew\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u672a\u5c0e\u5165\u306e\u5834\u5408\uff09\n\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"\n\n# cppcheck\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nbrew install cppcheck<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>MacPorts\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5<\/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=\"\">sudo port install cppcheck<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-7\">Linux\u74b0\u5883\u3067\u306e\u5c0e\u5165<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ubuntu\/Debian\u7cfb<\/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=\"\">sudo apt-get update\nsudo apt-get install cppcheck<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>RedHat\/CentOS\u7cfb<\/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=\"\">sudo yum install cppcheck<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30bd\u30fc\u30b9\u304b\u3089\u306e\u30d3\u30eb\u30c9<\/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=\"\">git clone https:\/\/github.com\/danmar\/cppcheck.git\ncd cppcheck\nmake HAVE_RULES=yes\nsudo make install<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">Visual Studio Code \u9023\u643a\u306e\u8a73\u7d30\u8a2d\u5b9a<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VS Code\u62e1\u5f35\u6a5f\u80fd\u30de\u30fc\u30b1\u30c3\u30c8\u30d7\u30ec\u30fc\u30b9\u3067\u300cC\/C++\u300d\u3068\u300ccppcheck\u300d\u3092\u691c\u7d22<\/li>\n\n\n\n<li>\u4ee5\u4e0b\u306e\u62e1\u5f35\u6a5f\u80fd\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb:\n<ul class=\"wp-block-list\">\n<li>C\/C++ (Microsoft)<\/li>\n\n\n\n<li>C\/C++ Extension Pack<\/li>\n\n\n\n<li>Cppcheck Extension<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u6210<\/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=\"\">{\n    \"cppcheck.enable\": true,\n    \"cppcheck.language\": \"c++\",\n    \"cppcheck.enableVerbose\": true,\n    \"cppcheck.platform\": \"native\",\n    \"cppcheck.standard\": [\"c++11\", \"c++14\", \"c++17\", \"c++20\"],\n    \"cppcheck.includePaths\": [\n        \"${workspaceFolder}\/**\",\n        \"\/usr\/local\/include\",\n        \"\/usr\/include\"\n    ],\n    \"cppcheck.suppressions\": [\n        \"missingInclude\"\n    ]\n}<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30ab\u30b9\u30bf\u30e0\u30bf\u30b9\u30af\u306e\u8a2d\u5b9a<\/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=\"\">{\n    \"version\": \"2.0.0\",\n    \"tasks\": [\n        {\n            \"label\": \"Cppcheck Current File\",\n            \"type\": \"shell\",\n            \"command\": \"cppcheck\",\n            \"args\": [\n                \"--enable=all\",\n                \"--std=c++17\",\n                \"--verbose\",\n                \"${file}\"\n            ],\n            \"problemMatcher\": \"$gcc\"\n        }\n    ]\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u5b9f\u884c\u306e\u305f\u3081\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Windows\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u306e\u30d7\u30ed\u30d1\u30c6\u30a3 \u2192 \u74b0\u5883\u5909\u6570\u3092\u958b\u304f<\/li>\n\n\n\n<li>Path\u5909\u6570\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0:<br><code>C:\\Program Files\\Cppcheck<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Unix\u7cfb\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u30d1\u30b9\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.bashrc<\/code>\u307e\u305f\u306f<code>.zshrc<\/code>\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0: <code># cppcheck\u306e\u30d1\u30b9\u3092\u8ffd\u52a0 export PATH=\"\/usr\/local\/bin:$PATH\" # \u30a8\u30a4\u30ea\u30a2\u30b9\u306e\u8a2d\u5b9a\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09 alias cppcheck-all='cppcheck --enable=all --std=c++17' alias cppcheck-proj='cppcheck --enable=all --project=compile_commands.json'<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u74b0\u5883\u5909\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.env<\/code>\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210:<br><code>bash CPPCHECK_INCLUDE_DIRS=\"\/path\/to\/includes:\/another\/path\" CPPCHECK_SUPPRESSIONS=\"missingInclude,uninitMemberVar\" CPPCHECK_PLATFORM=\"unix64\"<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>CI\/CD\u74b0\u5883\u3067\u306e\u5909\u6570\u8a2d\u5b9a<\/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=\"\">environment:\n  CPPCHECK_ENABLE: \"all\"\n  CPPCHECK_INCONCLUSIVE: \"true\"\n  CPPCHECK_CHECKS: \"warning,style,performance,portability\"\n  CPPCHECK_OUTPUT_FILE: \"cppcheck-report.xml\"<\/pre>\n\n\n\n<p>\u5c0e\u5165\u5f8c\u306e\u52d5\u4f5c\u78ba\u8a8d:<\/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=\"\"># \u30d0\u30fc\u30b8\u30e7\u30f3\u78ba\u8a8d\ncppcheck --version\n\n# \u7c21\u5358\u306a\u30c6\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3067\u306e\u78ba\u8a8d\necho '\nint main() {\n    int x;\n    return x;  \/\/ \u672a\u521d\u671f\u5316\u5909\u6570\u306e\u4f7f\u7528\n}' &gt; test.cpp\n\ncppcheck test.cpp<\/pre>\n\n\n\n<p>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0:<\/p>\n\n\n<div id=\"id-4e8880a9-dd01-43f8-9a9d-942f03be77d1\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u554f\u984c<\/th><th>\u539f\u56e0<\/th><th>\u89e3\u6c7a\u7b56<\/th><\/tr><\/thead><tbody><tr><td>\u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u3089\u306a\u3044<\/td><td>\u30d1\u30b9\u304c\u901a\u3063\u3066\u3044\u306a\u3044<\/td><td>\u74b0\u5883\u5909\u6570\u306e\u78ba\u8a8d\u3068\u518d\u8a2d\u5b9a<\/td><\/tr><tr><td>VS Code\u9023\u643a\u304c\u52d5\u4f5c\u3057\u306a\u3044<\/td><td>\u62e1\u5f35\u6a5f\u80fd\u306e\u8a2d\u5b9a\u30df\u30b9<\/td><td>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u78ba\u8a8d\u3068\u518d\u69cb\u6210<\/td><\/tr><tr><td>\u7279\u5b9a\u306e\u30d8\u30c3\u30c0\u30fc\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044<\/td><td>\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u30d1\u30b9\u306e\u554f\u984c<\/td><td>includePaths\u8a2d\u5b9a\u306e\u8ffd\u52a0<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4e0d\u8db3\u30a8\u30e9\u30fc<\/td><td>\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/td><td>CPPCHECK_MAX_MEM\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u306e\u74b0\u5883\u3067\u5b9f\u969b\u306bcppcheck\u3092\u4f7f\u7528\u3059\u308b\u57fa\u672c\u7684\u306a\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u30de\u30b9\u30bf\u30fc\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u52b9\u679c\u7684\u306a\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u4f7f\u7528\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-12\">\u57fa\u672c\u7684\u306a\u30c1\u30a7\u30c3\u30af\u5b9f\u884c<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5358\u4e00\u30d5\u30a1\u30a4\u30eb\u306e\u30c1\u30a7\u30c3\u30af<\/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=\"\"># \u6700\u3082\u57fa\u672c\u7684\u306a\u4f7f\u7528\u6cd5\ncppcheck file.cpp\n\n# \u3059\u3079\u3066\u306e\u8b66\u544a\u3092\u6709\u52b9\u5316\ncppcheck --enable=all file.cpp\n\n# \u7279\u5b9a\u306e\u8b66\u544a\u30bf\u30a4\u30d7\u3092\u6307\u5b9a\ncppcheck --enable=warning,performance,portability file.cpp<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c1\u30a7\u30c3\u30af\u30ec\u30d9\u30eb\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n<div id=\"id-b5fa43f5-de2d-44af-aa4b-4fe365d2769f\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30aa\u30d7\u30b7\u30e7\u30f3<\/th><th>\u8aac\u660e<\/th><th>\u4f7f\u7528\u4f8b<\/th><\/tr><\/thead><tbody><tr><td><code>--enable=error<\/code><\/td><td>\u30a8\u30e9\u30fc\u306e\u307f\u691c\u51fa<\/td><td><code>cppcheck --enable=error file.cpp<\/code><\/td><\/tr><tr><td><code>--enable=warning<\/code><\/td><td>\u8b66\u544a\u30ec\u30d9\u30eb\u306e\u554f\u984c\u3092\u691c\u51fa<\/td><td><code>cppcheck --enable=warning file.cpp<\/code><\/td><\/tr><tr><td><code>--enable=style<\/code><\/td><td>\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u306e\u554f\u984c\u3092\u691c\u51fa<\/td><td><code>cppcheck --enable=style file.cpp<\/code><\/td><\/tr><tr><td><code>--enable=performance<\/code><\/td><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u95a2\u9023\u306e\u554f\u984c\u3092\u691c\u51fa<\/td><td><code>cppcheck --enable=performance file.cpp<\/code><\/td><\/tr><tr><td><code>--enable=information<\/code><\/td><td>\u60c5\u5831\u30ec\u30d9\u30eb\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a<\/td><td><code>cppcheck --enable=information file.cpp<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u8a73\u7d30\u306a\u51fa\u529b\u30aa\u30d7\u30b7\u30e7\u30f3<\/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=\"\"># \u8a73\u7d30\u306a\u9032\u6357\u8868\u793a\ncppcheck --verbose file.cpp\n\n# XML\u30ec\u30dd\u30fc\u30c8\u751f\u6210\ncppcheck --xml --xml-version=2 file.cpp 2&gt; report.xml\n\n# \u9032\u6357\u8868\u793a\u3068HTML\u5831\u544a\u66f8\u751f\u6210\ncppcheck --enable=all --report-progress --output-file=report.html file.cpp<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e\u30b9\u30ad\u30e3\u30f3\u65b9\u6cd5<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5168\u4f53\u306e\u30c1\u30a7\u30c3\u30af<\/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=\"\"># \u518d\u5e30\u7684\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30c1\u30a7\u30c3\u30af\ncppcheck src\/\n\n# \u7279\u5b9a\u306e\u62e1\u5f35\u5b50\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u307f\u30c1\u30a7\u30c3\u30af\ncppcheck src\/ --extension=.cpp,.hpp\n\n# \u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u9ad8\u901f\u5316\ncppcheck -j 4 src\/<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u4f7f\u7528<\/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=\"\"># compile_commands.json\u3092\u4f7f\u7528\ncppcheck --project=compile_commands.json\n\n# Visual Studio\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\ncppcheck --project=project.sln<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6307\u5b9a<\/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=\"\"># \u5fc5\u8981\u306a\u30d8\u30c3\u30c0\u30fc\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\u3092\u6307\u5b9a\ncppcheck src\/ -I include\/ -I external\/include\/\n\n# \u30b7\u30b9\u30c6\u30e0\u30d8\u30c3\u30c0\u30fc\u306e\u691c\u67fb\u3092\u9664\u5916\ncppcheck --suppress=missingInclude src\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u554f\u984c\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6291\u5236\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/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=\"\">&lt;?xml version=\"1.0\"?&gt;\n&lt;suppressions&gt;\n    &lt;suppress&gt;\n        &lt;id&gt;uninitvar&lt;\/id&gt;\n        &lt;fileName&gt;src\/legacy\/*.cpp&lt;\/fileName&gt;\n    &lt;\/suppress&gt;\n    &lt;suppress&gt;\n        &lt;id&gt;memleakOnRealloc&lt;\/id&gt;\n        &lt;fileName&gt;*\/tests\/*&lt;\/fileName&gt;\n    &lt;\/suppress&gt;\n&lt;\/suppressions&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30e9\u30a4\u30f3\u6291\u5236\u306e\u4f7f\u7528<\/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=\"\">\/\/ \u7279\u5b9a\u306e\u8b66\u544a\u3092\u6291\u5236\u3059\u308b\u4f8b\nvoid legacyFunction() {\n    \/\/ cppcheck-suppress uninitvar\n    int x;\n    int y = x + 1;\n}\n\n\/\/ \u8907\u6570\u306e\u8b66\u544a\u3092\u6291\u5236\nvoid testFunction() {\n    \/\/ cppcheck-suppress [uninitvar,nullPointer]\n    char* ptr = nullptr;\n    *ptr = 'a';\n}<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u4f7f\u7528\u4f8b<\/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=\"\"># .cppcheck\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nsuppress=missingInclude\nenable=warning,style,performance,portability\nstd=c++17\nplatform=unix64\nmax-configs=12\ncheck-level=exhaustive<\/pre>\n\n\n\n<p>\u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u4f8b:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e00\u822c\u7684\u306a\u30c1\u30a7\u30c3\u30af\u30b7\u30ca\u30ea\u30aa<\/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=\"\"># \u958b\u767a\u4e2d\u306e\u901a\u5e38\u30c1\u30a7\u30c3\u30af\ncppcheck --enable=warning,performance src\/\n\n# \u30b3\u30df\u30c3\u30c8\u524d\u306e\u8a73\u7d30\u30c1\u30a7\u30c3\u30af\ncppcheck --enable=all --inconclusive src\/\n\n# CI\u74b0\u5883\u3067\u306e\u4f7f\u7528\ncppcheck --enable=all --xml --xml-version=2 src\/ 2&gt; report.xml<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u7279\u5b9a\u306e\u554f\u984c\u306b\u6ce8\u76ee\u3057\u305f\u30c1\u30a7\u30c3\u30af<\/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=\"\"># \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u691c\u51fa\u306b\u7126\u70b9\ncppcheck --enable=memory src\/\n\n# \u672a\u4f7f\u7528\u95a2\u6570\u306e\u691c\u51fa\ncppcheck --enable=unusedFunction src\/\n\n# \u30b9\u30ec\u30c3\u30c9\u95a2\u9023\u306e\u554f\u984c\u691c\u51fa\ncppcheck --enable=thread src\/<\/pre>\n\n\n\n<p>\u91cd\u8981\u306a\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u30b9\u30ad\u30e3\u30f3\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u6291\u5236\u30ea\u30b9\u30c8\u306e\u7ba1\u7406<\/li>\n\n\n\n<li>CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3078\u306e\u7d71\u5408<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u5185\u3067\u306e\u8b66\u544a\u30ec\u30d9\u30eb\u306e\u6a19\u6e96\u5316<\/li>\n\n\n\n<li>\u5b9a\u671f\u7684\u306a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u898b\u76f4\u3057<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u3092\u7fd2\u5f97\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u679c\u7684\u306a\u30b3\u30fc\u30c9\u54c1\u8cea\u7ba1\u7406\u306e\u57fa\u76e4\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u5b9f\u8df5\u7684\u306a\u30a8\u30e9\u30fc\u5bfe\u5fdc\u30c6\u30af\u30cb\u30c3\u30af\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">\u5b9f\u8df5\u7684\u306a\u30a8\u30e9\u30fc\u5bfe\u5fdc\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u610f\u5473\u3068\u5bfe\u51e6\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-17\">1. \u30e1\u30e2\u30ea\u95a2\u9023\u306e\u30a8\u30e9\u30fc<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af (memory leak)<\/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=\"\">\/\/ \u30a8\u30e9\u30fc\u306e\u4f8b\nvoid leakExample() {\n    int* ptr = new int(42);\n    \/\/ delete\u304c\u5fd8\u308c\u3089\u308c\u3066\u3044\u308b\n}\n\n\/\/ \u4fee\u6b63\u4f8b\nvoid fixedLeakExample() {\n    int* ptr = new int(42);\n    delete ptr;  \/\/ \u30e1\u30e2\u30ea\u306e\u89e3\u653e\n    ptr = nullptr;  \/\/ \u30dd\u30a4\u30f3\u30bf\u3092nullptr\u306b\u8a2d\u5b9a\n}\n\n\/\/ \u30e2\u30c0\u30f3\u306a\u89e3\u6c7a\u7b56\nvoid modernExample() {\n    auto ptr = std::make_unique&lt;int&gt;(42);  \/\/ \u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u306e\u4f7f\u7528\n    \/\/ \u81ea\u52d5\u7684\u306b\u89e3\u653e\u3055\u308c\u308b\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc<\/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=\"\">\/\/ \u30a8\u30e9\u30fc\u306e\u4f8b\nvoid overflowExample() {\n    int array[5];\n    for (int i = 0; i &lt;= 5; i++) {  \/\/ \u7bc4\u56f2\u5916\u30a2\u30af\u30bb\u30b9\n        array[i] = i;\n    }\n}\n\n\/\/ \u4fee\u6b63\u4f8b\nvoid fixedOverflowExample() {\n    std::array&lt;int, 5&gt; array;\n    for (size_t i = 0; i &lt; array.size(); i++) {\n        array[i] = static_cast&lt;int&gt;(i);\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">2. \u521d\u671f\u5316\u95a2\u9023\u306e\u30a8\u30e9\u30fc<\/h4>\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=\"\">\/\/ \u30a8\u30e9\u30fc\u306e\u4f8b\nvoid uninitExample() {\n    int x;\n    int y = x + 1;  \/\/ \u672a\u521d\u671f\u5316\u5909\u6570\u306e\u4f7f\u7528\n}\n\n\/\/ \u4fee\u6b63\u4f8b\nvoid fixedUninitExample() {\n    int x = 0;  \/\/ \u9069\u5207\u306a\u521d\u671f\u5024\u306e\u8a2d\u5b9a\n    int y = x + 1;\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">\u8aa4\u8a8d\u3068\u306e\u4ed8\u304d\u5408\u3044\u65b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">1. \u8aa4\u691c\u77e5\u306e\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n<div id=\"id-85b2cad1-af15-4b44-bd90-eace4ecef8d8\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30a8\u30e9\u30fc\u30d1\u30bf\u30fc\u30f3<\/th><th>\u8aa4\u691c\u77e5\u306e\u53ef\u80fd\u6027\u304c\u3042\u308b\u5834\u5408<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>nullPointer<\/td><td>\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u306e\u4f7f\u7528\u6642<\/td><td>inline\u6291\u5236\u307e\u305f\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u9664\u5916<\/td><\/tr><tr><td>uninitMemberVar<\/td><td>\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u306e\u521d\u671f\u5316<\/td><td>\u30e1\u30f3\u30d0\u30fc\u521d\u671f\u5316\u30ea\u30b9\u30c8\u306e\u4f7f\u7528<\/td><\/tr><tr><td>unusedFunction<\/td><td>\u30c6\u30b9\u30c8\u7528\u95a2\u6570<\/td><td>\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u7528\u306e\u9664\u5916\u8a2d\u5b9a<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">2. \u8aa4\u691c\u77e5\u3078\u306e\u5bfe\u5fdc\u4f8b<\/h4>\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 Example {\n    int member;\npublic:\n    \/\/ cppcheck-suppress uninitMemberVar\n    Example() {\n        \/\/ \u7279\u5225\u306a\u521d\u671f\u5316\u30ed\u30b8\u30c3\u30af\n        complex_initialization();\n    }\n\n    void complex_initialization() {\n        \/\/ \u8907\u96d1\u306a\u521d\u671f\u5316\u51e6\u7406\n        member = calculate_initial_value();\n    }\n};<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">\u30a8\u30e9\u30fc\u6291\u5236\u306e\u9069\u5207\u306a\u4f7f\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">1. \u30a4\u30f3\u30e9\u30a4\u30f3\u6291\u5236<\/h4>\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=\"\">\/\/ \u5358\u4e00\u306e\u8b66\u544a\u3092\u6291\u5236\nvoid suppressExample() {\n    \/\/ cppcheck-suppress unreadVariable\n    int unused = 42;\n}\n\n\/\/ \u8907\u6570\u306e\u8b66\u544a\u3092\u6291\u5236\nvoid multiSuppressExample() {\n    \/\/ cppcheck-suppress [unreadVariable,unusedVariable]\n    int temp = 42;\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">2. \u30d5\u30a1\u30a4\u30eb\u30ec\u30d9\u30eb\u306e\u6291\u5236<\/h4>\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=\"\">&lt;?xml version=\"1.0\"?&gt;\n&lt;suppressions&gt;\n    &lt;!-- \u7279\u5b9a\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u306e\u6291\u5236 --&gt;\n    &lt;suppress&gt;\n        &lt;id&gt;uninitMemberVar&lt;\/id&gt;\n        &lt;fileName&gt;src\/legacy\/old_code.cpp&lt;\/fileName&gt;\n    &lt;\/suppress&gt;\n\n    &lt;!-- \u7279\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5168\u4f53\u3067\u306e\u6291\u5236 --&gt;\n    &lt;suppress&gt;\n        &lt;id&gt;unusedFunction&lt;\/id&gt;\n        &lt;fileName&gt;test\/*&lt;\/fileName&gt;\n    &lt;\/suppress&gt;\n\n    &lt;!-- \u6b63\u898f\u8868\u73fe\u306b\u3088\u308b\u6291\u5236 --&gt;\n    &lt;suppress&gt;\n        &lt;id&gt;missingInclude&lt;\/id&gt;\n        &lt;fileName&gt;.*_test\\.cpp&lt;\/fileName&gt;\n    &lt;\/suppress&gt;\n&lt;\/suppressions&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-25\">3. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u3067\u306e\u6291\u5236\u7ba1\u7406<\/h4>\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=\"\"># \u6291\u5236\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u305f\u30c1\u30a7\u30c3\u30af\ncppcheck --suppressions-list=suppressions.txt src\/\n\n# \u7279\u5b9a\u306e\u30a8\u30e9\u30fc\u3092\u5168\u4f53\u3067\u6291\u5236\ncppcheck --suppress=uninitMemberVar src\/\n\n# \u6291\u5236\u60c5\u5831\u306e\u51fa\u529b\ncppcheck --enable=all --suppressions-list=suppressions.txt --output-file=suppress-log.txt src\/<\/pre>\n\n\n\n<p>\u5b9f\u8df5\u7684\u306a\u30a8\u30e9\u30fc\u5bfe\u5fdc\u30d5\u30ed\u30fc\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u306e\u5206\u6790<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5b8c\u5168\u306a\u7406\u89e3<\/li>\n\n\n\n<li>\u8a72\u5f53\u30b3\u30fc\u30c9\u306e\u6587\u8108\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u540c\u69d8\u306e\u30a8\u30e9\u30fc\u30d1\u30bf\u30fc\u30f3\u306e\u691c\u7d22<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5bfe\u5fdc\u306e\u5224\u65ad<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9f\u969b\u306e\u30d0\u30b0\u3067\u3042\u308b\u53ef\u80fd\u6027\u306e\u8a55\u4fa1<\/li>\n\n\n\n<li>\u4fee\u6b63\u306e\u5f71\u97ff\u7bc4\u56f2\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u8aa4\u691c\u77e5\u306e\u53ef\u80fd\u6027\u306e\u691c\u8a0e<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4fee\u6b63\u30a2\u30d7\u30ed\u30fc\u30c1\u306e\u9078\u629e<\/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=\"\">   \/\/ Before: \u30a8\u30e9\u30fc\u304c\u691c\u51fa\u3055\u308c\u308b\u30b3\u30fc\u30c9\n   void problematicFunction() {\n       std::vector&lt;int&gt; vec;\n       vec.resize(-1);  \/\/ \u8ca0\u306e\u30b5\u30a4\u30ba\u6307\u5b9a\n   }\n\n   \/\/ After: \u9069\u5207\u306a\u9632\u5fa1\u7684\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\n   void fixedFunction() {\n       std::vector&lt;int&gt; vec;\n       size_t size = calculateSize();\n       if (size &gt; 0 &amp;&amp; size &lt; vec.max_size()) {\n           vec.resize(size);\n       }\n   }<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u4fee\u6b63\u306e\u691c\u8a3c<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4fee\u6b63\u5f8c\u306e\u518d\u30c1\u30a7\u30c3\u30af<\/li>\n\n\n\n<li>\u30ea\u30b0\u30ec\u30c3\u30b7\u30e7\u30f3\u30c6\u30b9\u30c8<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u3067\u306e\u78ba\u8a8d<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u8df5\u7684\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u679c\u7684\u306a\u30b3\u30fc\u30c9\u54c1\u8cea\u7ba1\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306e\u6d3b\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-26\">CI\/CD \u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-27\">GitHub Actions \u3068\u306e\u9023\u643a\u624b\u9806<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-28\">1. \u57fa\u672c\u7684\u306a\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u8a2d\u5b9a<\/h4>\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=\"\">name: C++ Code Analysis\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  cppcheck:\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions\/checkout@v3\n\n    - name: Install cppcheck\n      run: |\n        sudo apt-get update\n        sudo apt-get install -y cppcheck\n\n    - name: Run cppcheck\n      run: |\n        cppcheck --enable=all --error-exitcode=1 --xml --xml-version=2 . 2&gt; cppcheck-result.xml\n      continue-on-error: true\n\n    - name: Generate HTML report\n      run: |\n        cppcheck-htmlreport --source-dir=. --title=\"CppCheck Report\" --file=cppcheck-result.xml --report-dir=cppcheck-report\n\n    - name: Upload analysis results\n      uses: actions\/upload-artifact@v3\n      with:\n        name: cppcheck-report\n        path: cppcheck-report<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">2. \u9ad8\u5ea6\u306a\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3<\/h4>\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=\"\">jobs:\n  cppcheck:\n    steps:\n    - name: Advanced cppcheck\n      run: |\n        cppcheck \\\n          --enable=all \\\n          --inconclusive \\\n          --check-config \\\n          --suppress=missingInclude \\\n          --error-exitcode=1 \\\n          --max-ctu-depth=4 \\\n          --cppcheck-build-dir=build \\\n          --project=compile_commands.json \\\n          --output-file=cppcheck.log \\\n          src\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-30\">Jenkins \u7d71\u5408\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-31\">1. Jenkinsfile\u306e\u8a2d\u5b9a<\/h4>\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=\"\">pipeline {\n    agent any\n\n    environment {\n        CPPCHECK_HOME = tool name: 'cppcheck-latest'\n    }\n\n    stages {\n        stage('Static Analysis') {\n            steps {\n                script {\n                    \/\/ cppcheck\u306e\u5b9f\u884c\n                    sh \"\"\"\n                        ${CPPCHECK_HOME}\/bin\/cppcheck \\\n                        --enable=all \\\n                        --xml --xml-version=2 \\\n                        --output-file=cppcheck-result.xml \\\n                        src\/\n                    \"\"\"\n\n                    \/\/ \u7d50\u679c\u306e\u51e6\u7406\n                    recordIssues(\n                        tools: [cppCheck(pattern: 'cppcheck-result.xml')],\n                        qualityGates: [[threshold: 10, type: 'TOTAL', unstable: true]]\n                    )\n                }\n            }\n        }\n    }\n\n    post {\n        always {\n            \/\/ \u30ec\u30dd\u30fc\u30c8\u306e\u4fdd\u5b58\n            archiveArtifacts 'cppcheck-result.xml'\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">2. \u54c1\u8cea\u30b2\u30fc\u30c8\u306e\u8a2d\u5b9a<\/h4>\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=\"\">def qualityGates = [\n    [threshold: 0, type: 'ERROR', failureMode: 'FAILURE'],\n    [threshold: 5, type: 'WARNING', failureMode: 'UNSTABLE'],<\/pre>\n\n\n[threshold: 10, type: \u2018STYLE\u2019, failureMode: \u2018UNSTABLE\u2019]\n\n\n\n<p>] pipeline { stages { stage(\u2018Quality Check\u2019) { steps { script { def results = runCppCheck() evaluateQualityGates(results, qualityGates) } } } } }<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-33\">\u81ea\u52d5\u5316\u306b\u3088\u308b\u54c1\u8cea\u7ba1\u7406\u306e\u52b9\u7387\u5316<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-34\">1. \u30d7\u30ea\u30b3\u30df\u30c3\u30c8\u30d5\u30c3\u30af\u306e\u8a2d\u5b9a<\/h4>\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=\"\">#!\/bin\/bash\n# .git\/hooks\/pre-commit\n\n# \u5909\u66f4\u3055\u308c\u305fC++\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\nfiles=$(git diff --cached --name-only --diff-filter=ACMR | grep -E \"\\.(cpp|hpp|h)$\")\n\nif [ -n \"$files\" ]; then\n    cppcheck --enable=all --error-exitcode=1 $files\n    if [ $? -ne 0 ]; then\n        echo \"Cppcheck failed! Please fix the issues before committing.\"\n        exit 1\n    fi\nfi<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-35\">2. \u81ea\u52d5\u4fee\u6b63\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4f8b<\/h4>\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=\"\">#!\/usr\/bin\/env python3\nimport subprocess\nimport xml.etree.ElementTree as ET\nimport sys\n\ndef parse_cppcheck_output(xml_file):\n    tree = ET.parse(xml_file)\n    root = tree.getroot()\n    errors = []\n\n    for error in root.findall('.\/\/error'):\n        errors.append({\n            'id': error.get('id'),\n            'severity': error.get('severity'),\n            'msg': error.get('msg'),\n            'file': error.find('location').get('file'),\n            'line': error.find('location').get('line')\n        })\n\n    return errors\n\ndef apply_fixes(errors):\n    for error in errors:\n        if error['severity'] == 'style' or error['severity'] == 'performance':\n            try:\n                fix_error(error)\n            except Exception as e:\n                print(f\"Failed to fix {error['id']}: {str(e)}\")\n\ndef main():\n    subprocess.run(['cppcheck', '--enable=all', '--xml', '--xml-version=2',\n                   'src\/', '2&gt;', 'cppcheck-result.xml'])\n\n    errors = parse_cppcheck_output('cppcheck-result.xml')\n    apply_fixes(errors)\n\nif __name__ == '__main__':\n    main()<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-36\">3. \u7d71\u5408\u30ec\u30dd\u30fc\u30c8\u751f\u6210<\/h4>\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=\"\">#!\/usr\/bin\/env python3\nimport json\nimport sys\nfrom datetime import datetime\n\nclass ReportGenerator:\n    def __init__(self):\n        self.stats = {\n            'total_files': 0,\n            'total_errors': 0,\n            'error_types': {},\n            'trend': []\n        }\n\n    def generate_report(self, cppcheck_output):\n        # \u30ec\u30dd\u30fc\u30c8\u751f\u6210\u30ed\u30b8\u30c3\u30af\n        self._parse_output(cppcheck_output)\n        self._generate_html()\n\n    def _generate_html(self):\n        # HTML\u30ec\u30dd\u30fc\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n        html = f\"\"\"\n        &lt;!DOCTYPE html&gt;\n        &lt;html&gt;\n            &lt;head&gt;\n                &lt;title&gt;CppCheck Analysis Report&lt;\/title&gt;\n                &lt;style&gt;\n                    .error {{ color: red; }}\n                    .warning {{ color: orange; }}\n                    .style {{ color: blue; }}\n                &lt;\/style&gt;\n            &lt;\/head&gt;\n            &lt;body&gt;\n                &lt;h1&gt;CppCheck Analysis Report&lt;\/h1&gt;\n                &lt;p&gt;Generated on: {datetime.now()}&lt;\/p&gt;\n                &lt;!-- \u30ec\u30dd\u30fc\u30c8\u5185\u5bb9 --&gt;\n            &lt;\/body&gt;\n        &lt;\/html&gt;\n        \"\"\"\n        with open('cppcheck-report.html', 'w') as f:\n            f.write(html)<\/pre>\n\n\n\n<p>\u91cd\u8981\u306a\u81ea\u52d5\u5316\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6bb5\u968e\u7684\u306a\u5c0e\u5165<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6700\u521d\u306f\u57fa\u672c\u7684\u306a\u30c1\u30a7\u30c3\u30af\u304b\u3089\u958b\u59cb<\/li>\n\n\n\n<li>\u5f90\u3005\u306b\u30c1\u30a7\u30c3\u30af\u9805\u76ee\u3092\u5897\u3084\u3059<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u5168\u4f53\u3067\u306e\u5408\u610f\u3092\u5f97\u306a\u304c\u3089\u9032\u3081\u308b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u3057\u304d\u3044\u5024\u306e\u8a2d\u5b9a<\/strong> \u30a8\u30e9\u30fc\u30bf\u30a4\u30d7 \u63a8\u5968\u3057\u304d\u3044\u5024 \u5bfe\u5fdc\u30ec\u30d9\u30eb \u30a8\u30e9\u30fc 0 \u30d3\u30eb\u30c9\u5931\u6557 \u8b66\u544a 5 \u8981\u30ec\u30d3\u30e5\u30fc \u30b9\u30bf\u30a4\u30eb 10 \u6ce8\u610f<\/li>\n\n\n\n<li><strong>\u30ec\u30dd\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u81ea\u52d5\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u30ec\u30dd\u30fc\u30c8\u751f\u6210<\/li>\n\n\n\n<li>\u30c8\u30ec\u30f3\u30c9\u5206\u6790\u306e\u5b9f\u65bd<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u9593\u3067\u306e\u5171\u6709<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u8a08\u753b<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u8a2d\u5b9a\u306e\u898b\u76f4\u3057<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u30c1\u30a7\u30c3\u30af\u30eb\u30fc\u30eb\u306e\u8ffd\u52a0<\/li>\n\n\n\n<li>\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u306b\u57fa\u3065\u304f\u8abf\u6574<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3001CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306bcppcheck\u3092\u7d71\u5408\u3059\u308b\u3053\u3068\u3067\u3001\u7d99\u7d9a\u7684\u306a\u54c1\u8cea\u7ba1\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-37\">\u4e0a\u7d1a\u8005\u5411\u3051\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-38\">\u30ab\u30b9\u30bf\u30e0\u30c1\u30a7\u30c3\u30af\u30eb\u30fc\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-39\">1. \u72ec\u81ea\u30eb\u30fc\u30eb\u306e\u5b9a\u7fa9<\/h4>\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=\"\">&lt;?xml version=\"1.0\"?&gt;\n&lt;rule&gt;\n    &lt;pattern&gt;std::cout\\s*&lt;&lt;&lt;\/pattern&gt;\n    &lt;message&gt;\n        &lt;id&gt;customLoggingRule&lt;\/id&gt;\n        &lt;severity&gt;style&lt;\/severity&gt;\n        &lt;summary&gt;Consider using logging framework instead of std::cout&lt;\/summary&gt;\n    &lt;\/message&gt;\n&lt;\/rule&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">2. \u30ab\u30b9\u30bf\u30e0\u30a2\u30c9\u30aa\u30f3\u306e\u958b\u767a<\/h4>\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=\"\"># mychecks.py\nimport cppcheckdata\n\ndef reportError(token, severity, msg, mid):\n    cppcheckdata.reportError(token, severity, msg, mid)\n\ndef checkUnsafeFunction(data):\n    for token in data.tokenlist:\n        if token.str == 'strcpy':\n            reportError(token, 'error', \n                       'Unsafe function strcpy used. Consider using strcpy_s', \n                       'unsafeFunction')\n\n# \u30a2\u30c9\u30aa\u30f3\u306e\u767b\u9332\nif __name__ == '__main__':\n    cppcheckdata.parsedump(checkUnsafeFunction)<\/pre>\n\n\n\n<p>\u4f7f\u7528\u4f8b\uff1a<\/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=\"\"># \u30ab\u30b9\u30bf\u30e0\u30a2\u30c9\u30aa\u30f3\u306e\u5b9f\u884c\ncppcheck --addon=mychecks.py source_file.cpp<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-41\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">1. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\uff08.cppcheck\uff09<\/h4>\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=\"\"># Project specific settings\nenable=warning,style,performance,portability\ninconclusive=true\ninline-suppr=true\nmax-ctu-depth=5\ncheck-level=exhaustive\nplatform=unix64\nstd=c++17\nsuppress-xml=suppressions.xml\nlibrary=boost,qt\nmax-configs=12<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-43\">2. \u30ab\u30b9\u30bf\u30e0\u8a2d\u5b9a\u30af\u30e9\u30b9<\/h4>\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=\"\">\/\/ CustomConfig.h\nclass CustomCppcheckConfig {\npublic:\n    static void initialize() {\n        \/\/ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u8a2d\u5b9a\u3092\u9069\u7528\n        configurePaths();\n        configureRules();\n        configureSuppressions();\n    }\n\nprivate:\n    static void configurePaths() {\n        std::vector&lt;std::string&gt; includePaths = {\n            \"src\/include\",\n            \"external\/libs\",\n            \"test\/framework\"\n        };\n        setIncludePaths(includePaths);\n    }\n\n    static void configureRules() {\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u30eb\u30fc\u30eb\u306e\u8a2d\u5b9a\n        std::map&lt;std::string, RuleConfig&gt; rules = {\n            {\"nullPointer\", {Severity::Error, true}},\n            {\"memoryLeak\", {Severity::Error, true}},\n            {\"unusedVariable\", {Severity::Style, false}}\n        };\n        setRules(rules);\n    }\n\n    static void configureSuppressions() {\n        \/\/ \u6291\u5236\u8a2d\u5b9a\n        addSuppression(\"unusedFunction\", \"test\/*\");\n        addSuppression(\"missingInclude\", \"external\/*\");\n    }\n};<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-44\">\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30b9\u30ad\u30e3\u30f3\u8a2d\u5b9a<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-45\">1. \u30e9\u30a4\u30d6\u30e9\u30ea\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<\/h4>\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=\"\">&lt;?xml version=\"1.0\"?&gt;\n&lt;def format=\"2\"&gt;\n  &lt;library&gt;\n    &lt;!-- Boost\u8a2d\u5b9a --&gt;\n    &lt;container id=\"boostSharedPtr\"&gt;\n      &lt;type string=\"std::shared_ptr\"\/&gt;\n      &lt;size&gt;\n        &lt;function name=\"reset\" action=\"clear\"\/&gt;\n        &lt;function name=\"get\" yields=\"buffer-nt\"\/&gt;\n      &lt;\/size&gt;\n    &lt;\/container&gt;\n\n    &lt;!-- Qt\u8a2d\u5b9a --&gt;\n    &lt;container id=\"QString\"&gt;\n      &lt;type string=\"QString\"\/&gt;\n      &lt;access&gt;size,strlen&lt;\/access&gt;\n      &lt;alloc init=\"true\"&gt;\n        &lt;function name=\"QString\"\/&gt;\n        &lt;function name=\"fromStdString\"\/&gt;\n      &lt;\/alloc&gt;\n    &lt;\/container&gt;\n  &lt;\/library&gt;\n&lt;\/def&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">2. \u30e9\u30a4\u30d6\u30e9\u30ea\u7d71\u5408\u30b9\u30af\u30ea\u30d7\u30c8<\/h4>\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=\"\">#!\/usr\/bin\/env python3\n\nclass LibraryIntegrator:\n    def __init__(self):\n        self.libraries = {}\n        self.configurations = {}\n\n    def add_library(self, name, config):\n        \"\"\"\u30e9\u30a4\u30d6\u30e9\u30ea\u8a2d\u5b9a\u3092\u8ffd\u52a0\"\"\"\n        self.libraries[name] = config\n\n    def generate_config(self):\n        \"\"\"\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\"\"\"\n        xml = ['&lt;?xml version=\"1.0\"?&gt;']\n        xml.append('&lt;def format=\"2\"&gt;')\n\n        for lib_name, config in self.libraries.items():\n            xml.append(f'  &lt;library name=\"{lib_name}\"&gt;')\n            for key, value in config.items():\n                xml.append(f'    &lt;{key}&gt;{value}&lt;\/{key}&gt;')\n            xml.append('  &lt;\/library&gt;')\n\n        xml.append('&lt;\/def&gt;')\n        return '\\n'.join(xml)\n\n    def save_config(self, filename):\n        \"\"\"\u8a2d\u5b9a\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\"\"\"\n        with open(filename, 'w') as f:\n            f.write(self.generate_config())<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">3. \u9ad8\u5ea6\u306a\u8a2d\u5b9a\u4f8b<\/h4>\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=\"\">\/\/ \u30ab\u30b9\u30bf\u30e0\u30e1\u30e2\u30ea\u7ba1\u7406\u306e\u8a2d\u5b9a\nstruct CustomAllocator {\n    template&lt;typename T&gt;\n    static void* allocate(size_t size) {\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\n        return operator new(size);\n    }\n\n    template&lt;typename T&gt;\n    static void deallocate(void* ptr) {\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u89e3\u653e\n        operator delete(ptr);\n    }\n};\n\n\/\/ \u30ab\u30b9\u30bf\u30e0\u30c1\u30a7\u30c3\u30af\u8a2d\u5b9a\nstruct CheckConfig {\n    bool enableMemoryTracking = true;\n    bool enableThreadSafety = true;\n    int maxArraySize = 1000;\n    std::vector&lt;std::string&gt; excludePaths;\n\n    static CheckConfig&amp; getInstance() {\n        static CheckConfig instance;\n        return instance;\n    }\n\n    void configure() {\n        \/\/ \u8a2d\u5b9a\u306e\u9069\u7528\n        applyMemoryTracking();\n        applyThreadSafety();\n        applyArrayBounds();\n    }\n\nprivate:\n    void applyMemoryTracking() {\n        if (enableMemoryTracking) {\n            \/\/ \u30e1\u30e2\u30ea\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u306e\u8a2d\u5b9a\n        }\n    }\n\n    void applyThreadSafety() {\n        if (enableThreadSafety) {\n            \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u306e\u8a2d\u5b9a\n        }\n    }\n\n    void applyArrayBounds() {\n        \/\/ \u914d\u5217\u5883\u754c\u30c1\u30a7\u30c3\u30af\u306e\u8a2d\u5b9a\n    }\n};<\/pre>\n\n\n\n<p>\u9ad8\u5ea6\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e2\u30b8\u30e5\u30fc\u30eb\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a5f\u80fd\u3054\u3068\u306b\u8a2d\u5b9a\u3092\u5206\u96e2<\/li>\n\n\n\n<li>\u518d\u5229\u7528\u53ef\u80fd\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u4f5c\u6210<\/li>\n\n\n\n<li>\u4f9d\u5b58\u95a2\u4fc2\u306e\u660e\u78ba\u306a\u7ba1\u7406<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u62e1\u5f35\u6027\u306e\u78ba\u4fdd<\/strong> \u8981\u7d20 \u30a2\u30d7\u30ed\u30fc\u30c1 \u30e1\u30ea\u30c3\u30c8 \u30eb\u30fc\u30eb \u30d7\u30e9\u30b0\u30a4\u30f3\u5f62\u5f0f \u5bb9\u6613\u306a\u8ffd\u52a0\u3068\u66f4\u65b0 \u8a2d\u5b9a \u968e\u5c64\u69cb\u9020 \u67d4\u8edf\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba \u6291\u5236 \u6761\u4ef6\u4ed8\u304d \u7d30\u304b\u306a\u5236\u5fa1\u304c\u53ef\u80fd<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0d\u8981\u306a\u30c1\u30a7\u30c3\u30af\u306e\u7121\u52b9\u5316<\/li>\n\n\n\n<li>\u4e26\u5217\u51e6\u7406\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5229\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a2d\u5b9a\u306e\u81ea\u52d5\u691c\u8a3c<\/li>\n\n\n\n<li>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u81ea\u52d5\u751f\u6210<\/li>\n\n\n\n<li>\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u3068\u306e\u7d71\u5408<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u9ad8\u5ea6\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u56fa\u6709\u306e\u8981\u4ef6\u306b\u5408\u308f\u305b\u305f\u52b9\u679c\u7684\u306a\u9759\u7684\u89e3\u6790\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-48\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u5b8c\u5168\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-49\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-50\">1. \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u524a\u6e1b\u30c6\u30af\u30cb\u30c3\u30af<\/h4>\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=\"\">\/\/ \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u5236\u5fa1\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a\u30af\u30e9\u30b9\nclass MemoryOptimizer {\npublic:\n    static void configure() {\n        \/\/ \u6700\u5927\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u8a2d\u5b9a\n        setenv(\"CPPCHECK_MAX_MEMORY\", \"2048\", 1);\n\n        \/\/ \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u4f7f\u7528\u8a2d\u5b9a\n        setenv(\"CPPCHECK_TEMP_DIR\", \"\/tmp\/cppcheck\", 1);\n    }\n\n    static void cleanup() {\n        \/\/ \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\n        system(\"rm -rf \/tmp\/cppcheck\/*\");\n    }\n};<\/pre>\n\n\n\n<p>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u6700\u9069\u5316\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n<div id=\"id-cec6c0dd-c8d2-43cf-a953-07af0ccd0c6b\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u624b\u6cd5<\/th><th>\u52b9\u679c<\/th><th>\u5b9f\u88c5\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>\u4e26\u5217\u51e6\u7406\u306e\u5236\u5fa1<\/td><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u5206\u6563<\/td><td><code>-j<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/td><\/tr><tr><td>\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u6d3b\u7528<\/td><td>\u30e1\u30e2\u30ea\u6d88\u8cbb\u306e\u6291\u5236<\/td><td><code>--max-ctu-depth<\/code>\u306e\u8abf\u6574<\/td><\/tr><tr><td>\u30a4\u30f3\u30af\u30ea\u30e1\u30f3\u30bf\u30eb\u89e3\u6790<\/td><td>\u90e8\u5206\u7684\u306a\u89e3\u6790\u306b\u3088\u308b\u8ca0\u8377\u8efd\u6e1b<\/td><td>\u5909\u66f4\u30d5\u30a1\u30a4\u30eb\u306e\u307f\u306e\u89e3\u6790<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-51\">2. \u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u5bfe\u5fdc<\/h4>\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=\"\">#!\/bin\/bash\n\n# \u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7528\u306e\u6700\u9069\u5316\u30b9\u30af\u30ea\u30d7\u30c8\nfunction optimize_large_project() {\n    # \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u5206\u5272\u3057\u3066\u89e3\u6790\n    find src\/ -name \"*.cpp\" | split -l 100 - cpp_files_\n\n    for file in cpp_files_*; do\n        # \u5404\u30d0\u30c3\u30c1\u3092\u500b\u5225\u306b\u89e3\u6790\n        cppcheck --enable=all \\\n                 --max-configs=10 \\\n                 --max-ctu-depth=2 \\\n                 --files-from=$file \\\n                 --xml 2&gt;&gt;results_${file}.xml\n    done\n\n    # \u7d50\u679c\u306e\u7d71\u5408\n    merge_results results_*.xml &gt; final_report.xml\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-52\">\u30b9\u30ad\u30e3\u30f3\u901f\u5ea6\u5411\u4e0a\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-53\">1. \u4e26\u5217\u51e6\u7406\u306e\u6700\u9069\u5316<\/h4>\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=\"\">import os\nimport multiprocessing\n\ndef optimize_parallel_scan():\n    # CPU\u6570\u306e\u53d6\u5f97\n    cpu_count = multiprocessing.cpu_count()\n\n    # \u6700\u9069\u306a\u30b9\u30ec\u30c3\u30c9\u6570\u306e\u8a08\u7b97\n    optimal_threads = max(1, cpu_count - 1)\n\n    # \u30b9\u30ad\u30e3\u30f3\u30b3\u30de\u30f3\u30c9\u306e\u69cb\u7bc9\n    cmd = f\"cppcheck --enable=all -j {optimal_threads} \"\n    cmd += \"--cppcheck-build-dir=build \"\n    cmd += \"--suppressions-list=suppressions.txt \"\n    cmd += \"src\/\"\n\n    return os.system(cmd)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">2. \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528<\/h4>\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=\"\">\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u7ba1\u7406\u30af\u30e9\u30b9\nclass CppcheckCache {\npublic:\n    static void initialize() {\n        setupCacheDirectory();\n        cleanupOldCache();\n    }\n\n    static void setupCacheDirectory() {\n        std::filesystem::create_directories(\"cppcheck_cache\");\n    }\n\n    static void cleanupOldCache() {\n        \/\/ 7\u65e5\u4ee5\u4e0a\u53e4\u3044\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u524a\u9664\n        const int MAX_CACHE_DAYS = 7;\n        removeOldFiles(\"cppcheck_cache\", MAX_CACHE_DAYS);\n    }\n\nprivate:\n    static void removeOldFiles(const std::string&amp; dir, int days) {\n        \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u306e\u5b9f\u88c5\n    }\n};<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-55\">\u30a8\u30e9\u30fc\u51fa\u529b\u306e\u6574\u5f62\u3068\u6d3b\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-56\">1. \u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc\u30d5\u30a9\u30fc\u30de\u30c3\u30bf<\/h4>\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 ErrorFormatter:\n    def __init__(self):\n        self.errors = []\n\n    def parse_xml(self, xml_file):\n        \"\"\"XML\u30a8\u30e9\u30fc\u51fa\u529b\u306e\u89e3\u6790\"\"\"\n        import xml.etree.ElementTree as ET\n        tree = ET.parse(xml_file)\n        root = tree.getroot()\n\n        for error in root.findall('.\/\/error'):\n            self.errors.append({\n                'id': error.get('id'),\n                'severity': error.get('severity'),\n                'message': error.get('msg'),\n                'file': error.find('location').get('file'),\n                'line': error.find('location').get('line')\n            })\n\n    def generate_report(self, output_format='html'):\n        \"\"\"\u30ec\u30dd\u30fc\u30c8\u306e\u751f\u6210\"\"\"\n        if output_format == 'html':\n            return self._generate_html()\n        elif output_format == 'markdown':\n            return self._generate_markdown()\n        else:\n            return self._generate_text()\n\n    def _generate_html(self):\n        \"\"\"HTML\u30ec\u30dd\u30fc\u30c8\u306e\u751f\u6210\"\"\"\n        html = ['&lt;html&gt;&lt;body&gt;']\n        html.append('&lt;h1&gt;Cppcheck Analysis Report&lt;\/h1&gt;')\n\n        for error in self.errors:\n            html.append(f'&lt;div class=\"error {error[\"severity\"]}\"&gt;')\n            html.append(f'&lt;h3&gt;{error[\"id\"]}&lt;\/h3&gt;')\n            html.append(f'&lt;p&gt;{error[\"message\"]}&lt;\/p&gt;')\n            html.append(f'&lt;p&gt;File: {error[\"file\"]} Line: {error[\"line\"]}&lt;\/p&gt;')\n            html.append('&lt;\/div&gt;')\n\n        html.append('&lt;\/body&gt;&lt;\/html&gt;')\n        return '\\n'.join(html)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-57\">2. \u30a8\u30e9\u30fc\u5206\u6790\u30c4\u30fc\u30eb<\/h4>\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 ErrorAnalyzer:\n    def __init__(self):\n        self.error_stats = {}\n\n    def analyze_errors(self, errors):\n        \"\"\"\u30a8\u30e9\u30fc\u30d1\u30bf\u30fc\u30f3\u306e\u5206\u6790\"\"\"\n        for error in errors:\n            category = error['severity']\n            if category not in self.error_stats:\n                self.error_stats = 0\n            self.error_stats += 1\n\n    def generate_summary(self):\n        \"\"\"\u30a8\u30e9\u30fc\u7d71\u8a08\u306e\u751f\u6210\"\"\"\n        summary = ['Error Analysis Summary']\n        for category, count in self.error_stats.items():\n            summary.append(f'{category}: {count} issues')\n        return '\\n'.join(summary)<\/pre>\n\n\n\n<p>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u554f\u984c\u306e\u8a3a\u65ad<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30b9\u30ef\u30c3\u30d7\u4f7f\u7528\u72b6\u6cc1\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30d7\u30ed\u30bb\u30b9\u6570\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u306e\u89e3\u6c7a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u7279\u5b9a<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u306e\u52b9\u7387\u5316<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u51fa\u529b\u554f\u984c\u306e\u5bfe\u51e6<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u89e3\u6790<\/li>\n\n\n\n<li>\u30ec\u30dd\u30fc\u30c8\u5f62\u5f0f\u306e\u8abf\u6574<\/li>\n\n\n\n<li>\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u306e\u9069\u7528<\/li>\n<\/ul>\n\n\n\n<p>\u4e3b\u306a\u554f\u984c\u3068\u89e3\u6c7a\u7b56\uff1a<\/p>\n\n\n<div id=\"id-a2fa63b8-b1c2-4932-b596-b5af0816ac56\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u554f\u984c<\/th><th>\u75c7\u72b6<\/th><th>\u89e3\u6c7a\u7b56<\/th><\/tr><\/thead><tbody><tr><td>\u30e1\u30e2\u30ea\u4e0d\u8db3<\/td><td>\u30d7\u30ed\u30bb\u30b9\u306e\u7d42\u4e86<\/td><td>\u30e1\u30e2\u30ea\u5236\u9650\u306e\u8a2d\u5b9a\u3001\u4e26\u5217\u51e6\u7406\u306e\u8abf\u6574<\/td><\/tr><tr><td>\u4f4e\u901f\u306a\u89e3\u6790<\/td><td>\u51e6\u7406\u6642\u9593\u306e\u5897\u5927<\/td><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528\u3001\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/td><\/tr><tr><td>\u8aa4\u691c\u77e5\u306e\u591a\u767a<\/td><td>\u5927\u91cf\u306e\u8b66\u544a<\/td><td>\u6291\u5236\u30eb\u30fc\u30eb\u306e\u8abf\u6574\u3001\u8a2d\u5b9a\u306e\u898b\u76f4\u3057<\/td><\/tr><tr><td>\u51fa\u529b\u306e\u8907\u96d1\u5316<\/td><td>\u89e3\u6790\u56f0\u96e3\u306a\u7d50\u679c<\/td><td>\u30ab\u30b9\u30bf\u30e0\u30d5\u30a9\u30fc\u30de\u30c3\u30bf\u306e\u4f7f\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u624b\u6cd5\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001cppcheck\u306e\u52b9\u679c\u7684\u306a\u904b\u7528\u304c\u53ef\u80fd\u306b\u306a\u308a\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-1717","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\/1717","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=1717"}],"version-history":[{"count":1,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1717\/revisions"}],"predecessor-version":[{"id":1718,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1717\/revisions\/1718"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}