{"id":111639,"date":"2022-09-26T09:56:18","date_gmt":"2022-09-26T01:56:18","guid":{"rendered":"http:\/\/www.zhushiyao.com\/?p=111639"},"modified":"2022-09-26T09:56:46","modified_gmt":"2022-09-26T01:56:46","slug":"71358496ef","status":"publish","type":"post","link":"http:\/\/www.zhushiyao.com\/?p=111639","title":{"rendered":"C++\u6700\u4f73\u5b9e\u8df5 | 1. \u5de5\u5177"},"content":{"rendered":"<div class=\"bpp-post-content\">\n<section style=\"color: black; line-height: 1.6; letter-spacing: 0px; word-break: break-word; overflow-wrap: break-word; text-align: left; font-size: 14px; padding: 10px; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;\">\n<blockquote style=\"border-top: none; border-bottom: none; font-size: 0.9em; overflow: auto; color: #6a737d; padding: 10px 10px 10px 20px; margin-bottom: 20px; margin-top: 20px; border-left-color: rgba(0, 0, 0, 0.65); border-right: 1px solid rgba(0, 0, 0, 0.65); background: #f9f9f9;\">\n<p style=\"padding-top: 8px; padding-bottom: 8px; font-size: 14px; color: black; line-height: 26px;\"><em>\u672c\u7cfb\u5217\u662f\u5f00\u6e90\u4e66<span style=\"color: #1e6bb8; font-weight: bold;\">C++ Best Practises<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[1]<\/sup>\u7684\u4e2d\u6587\u7248\uff0c\u5168\u4e66\u4ece\u5de5\u5177\u3001\u4ee3\u7801\u98ce\u683c\u3001\u5b89\u5168\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u79fb\u690d\u6027\u3001\u591a\u7ebf\u7a0b\u3001\u6027\u80fd\u3001\u6b63\u786e\u6027\u7b49\u89d2\u5ea6\u5168\u9762\u4ecb\u7ecd\u4e86\u73b0\u4ee3C++\u9879\u76ee\u7684\u6700\u4f73\u5b9e\u8df5\u3002\u672c\u6587\u662f\u8be5\u7cfb\u5217\u7684\u7b2c\u4e00\u7bc7\u3002<\/em><\/p>\n<\/blockquote>\n<h3 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; background-color: #000; color: #fff; padding: 2px 10px; width: fit-content; font-size: 17px; margin: 60px auto 10px;\">\u00a0<\/h3>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">C++\u6700\u4f73\u5b9e\u8df5:<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">1. \u5de5\u5177\uff08\u672c\u6587\uff09<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">2. \u4ee3\u7801\u98ce\u683c<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">3.\u00a0\u5b89\u5168\u6027<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">4.\u00a0\u53ef\u7ef4\u62a4\u6027<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">5.\u00a0\u53ef\u79fb\u690d\u6027\u53ca\u591a\u7ebf\u7a0b<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">6.\u00a0\u6027\u80fd<\/p>\n<p style=\"color: #9a9a9a; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 15px; text-align: left; white-space: normal;\">7.\u00a0\u6b63\u786e\u6027\u548c\u811a\u672c<\/p>\n<h3 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; background-color: #000; color: #fff; padding: 2px 10px; width: fit-content; font-size: 17px; margin: 60px auto 10px;\">\u524d\u8a00<\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">C++\u6700\u4f73\u5b9e\u8df5: \u652f\u6301Fork\u7684\u7f16\u7801\u6807\u51c6\u6587\u6863<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u672c\u6587\u6863\u65e8\u5728\u6536\u96c6\u5bf9C++\u6700\u4f73\u5b9e\u8df5\u6240\u8fdb\u884c\u7684\u534f\u4f5c\u6027\u8ba8\u8bba\uff0c\u662f<em>\u300aEffective C++\u300b(Meyers)<\/em> \u548c<em>\u300aC++ Coding Standards\u300b(Alexandrescu, Sutter)<\/em> \u7b49\u4e66\u7c4d\u7684\u8865\u5145\u3002\u5728\u8ba8\u8bba\u5982\u4f55\u786e\u4fdd\u6574\u4f53\u4ee3\u7801\u8d28\u91cf\u7684\u540c\u65f6\uff0c\u8865\u5145\u4e86\u4e00\u4e9b\u6ca1\u6709\u8ba8\u8bba\u5230\u7684\u8f83\u4f4e\u7ea7\u522b\u7684\u7ec6\u8282\uff0c\u5e76\u63d0\u4f9b\u4e86\u5177\u4f53\u7684\u98ce\u683c\u5efa\u8bae\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5728\u4efb\u4f55\u60c5\u51b5\u4e0b\uff0c\u7b80\u5355\u660e\u4e86\u90fd\u662f\u9996\u9009\u3002\u672c\u6587\u6240\u4e3e\u793a\u4f8b\u662f\u4e3a\u4e86\u8bf4\u660e\u4e3a\u4ec0\u4e48\u4e00\u79cd\u9009\u62e9\u6bd4\u53e6\u4e00\u79cd\u66f4\u53d7\u6b22\u8fce\u3002\u5728\u5fc5\u8981\u60c5\u51b5\u4e0b\uff0c\u4e5f\u4f1a\u7528\u6587\u5b57\u8bf4\u660e\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u672c\u6587\u6863\u7531Jason Turner\u7f16\u5199\uff0c\u6839\u636e<span style=\"color: #1e6bb8; font-weight: bold;\">\u77e5\u8bc6\u5171\u4eab\u7f72\u540d-\u975e\u5546\u4e1a4.0\u56fd\u9645\u8bb8\u53ef\u534f\u8bae<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[2]<\/sup>\u6388\u6743\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><em>\u514d\u8d23\u58f0\u660e<\/em><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u672c\u6587\u6863\u7684\u7f16\u5199\u57fa\u4e8e\u4e2a\u4eba\u7ecf\u9a8c\uff0c\u4f60\u4e0d\u9700\u8981\u5b8c\u5168\u540c\u610f\u5176\u4e2d\u7684\u89c2\u70b9\u3002\u672c\u6587\u6863\u4fdd\u5b58\u4e8e<span style=\"color: #1e6bb8; font-weight: bold;\">GitHub<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[3]<\/sup>\u4e0a\uff0c\u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5fork\u4f9b\u81ea\u5df1\u4f7f\u7528\uff0c\u6216\u8005\u63d0\u4ea4\u4fee\u6539\u5efa\u8bae\u4e0e\u5927\u5bb6\u5206\u4eab\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u672c\u6587\u6863\u542f\u53d1O&#8217;Reilly\u53d1\u5e03\u4e86\u89c6\u9891: <span style=\"color: #1e6bb8; font-weight: bold;\">Learning C++ Best Practices<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[4]<\/sup><\/p>\n<h3 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; background-color: #000; color: #fff; padding: 2px 10px; width: fit-content; font-size: 17px; margin: 60px auto 10px;\">\u5de5\u5177<\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5e94\u8be5\u5728\u5f00\u53d1\u8fc7\u7a0b\u7684\u65e9\u671f\u5efa\u7acb\u7528\u4e8e\u6267\u884c\u8fd9\u4e9b\u5de5\u5177\u7684\u81ea\u52a8\u5316\u6846\u67b6\uff0c\u68c0\u51fa\u6e90\u4ee3\u7801\u3001\u6784\u5efa\u548c\u6267\u884c\u6d4b\u8bd5\u6240\u4f7f\u7528\u7684\u547d\u4ee4\u4e0d\u5e94\u8d85\u8fc72-3\u4e2a\uff0c\u4e00\u65e6\u6d4b\u8bd5\u5b8c\u6210\uff0c\u5e94\u8be5\u5bf9\u4ee3\u7801\u7684\u72b6\u6001\u548c\u8d28\u91cf\u6709\u63a5\u8fd1\u5b8c\u6574\u7684\u4e86\u89e3\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u6e90\u7801\u7ba1\u7406<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5bf9\u4e8e\u4efb\u4f55\u8f6f\u4ef6\u5f00\u53d1\u9879\u76ee\u6765\u8bf4\uff0c\u6e90\u7801\u7ba1\u7406\u90fd\u662f\u7edd\u5bf9\u5fc5\u8981\u7684\uff0c\u5982\u679c\u8fd8\u6ca1\u6709\uff0c\u90a3\u5c31\u5f00\u59cb\u4f7f\u7528\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">GitHub<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[5]<\/sup> \u2014\u2014 \u5141\u8bb8\u65e0\u9650\u5236\u7684\u516c\u5171\u5b58\u50a8\u5e93\u548c\u79c1\u6709\u5b58\u50a8\u5e93\uff0c\u652f\u6301\u6700\u591a3\u4e2a\u534f\u4f5c\u8005\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Bitbucket<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[6]<\/sup> \u2014\u2014 \u5141\u8bb8\u65e0\u9650\u5236\u7684\u79c1\u4eba\u5b58\u50a8\u5e93\uff0c\u6700\u591a5\u4e2a\u534f\u4f5c\u8005\uff0c\u514d\u8d39\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">SourceForge<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[7]<\/sup> \u2014\u2014 \u4ec5\u652f\u6301\u6258\u7ba1\u5f00\u653e\u6e90\u7801\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">GitLab<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[8]<\/sup> \u2014\u2014 \u514d\u8d39\u63d0\u4f9b\u65e0\u9650\u7684\u516c\u5171\u548c\u79c1\u6709\u5b58\u50a8\u5e93\uff0c\u5305\u62ec\u65e0\u9650\u7684CI\u6267\u884c\u5668(CI Runner)\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Visual Studio Online<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[9]<\/sup> (http:\/\/www.visualstudio.com\/what-is-visual-studio-online-vs) \u2014\u2014 \u65e0\u9650\u7684\u516c\u5171\u5b58\u50a8\u5e93\uff0c\u79c1\u6709\u5b58\u50a8\u5e93\u6536\u8d39\uff0c\u652f\u6301git\u6216TFVC\u3002\u53e6\u5916\u63d0\u4f9b: \u95ee\u9898\u8ddf\u8e2a\u3001\u9879\u76ee\u8ba1\u5212(\u5305\u62ecScrum\u7b49\u591a\u4e2a\u654f\u6377\u6a21\u677f)\u3001\u96c6\u6210\u6258\u7ba1\u6784\u5efa\uff0c\u6240\u6709\u7279\u6027\u90fd\u53ef\u4ee5\u96c6\u6210\u5230Microsoft Visual Studio\u4e2d\uff0c\u4ec5\u652f\u6301Windows\u3002<\/section>\n<\/li>\n<\/ul>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u6784\u5efa\u5de5\u5177<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4f7f\u7528\u5e7f\u6cdb\u63a5\u53d7\u7684\u884c\u4e1a\u6807\u51c6\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u9632\u6b62\u5728\u505a\u63a2\u7d22\u3001\u94fe\u63a5\u65b0\u5e93\u3001\u6253\u5305\u4ea7\u54c1\u7b49\u7b49\u5de5\u4f5c\u65f6\u91cd\u590d\u53d1\u660e\u8f6e\u5b50\u3002\u4f8b\u5b50\u5305\u62ec:<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">CMake<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[10]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5bf9\u4e8e\u6784\u5efa\u6027\u80fd\uff0c\u8bf7\u8003\u8651: https:\/\/github.com\/sakra\/cotire<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5bf9\u4e8e\u589e\u5f3a\u53ef\u7528\u6027\uff0c\u8bf7\u8003\u8651: https:\/\/github.com\/toeb\/cmakepp<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4f7f\u7528 https:\/\/cmake.org\/cmake\/help\/v3.6\/command\/target_compile_features.html \u4f5c\u4e3aC++\u6807\u51c6flag<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u8003\u8651\u4f7f\u7528 https:\/\/github.com\/cheshirekow\/cmake_format \u81ea\u52a8\u683c\u5f0f\u5316CMakeLists.txt\u6587\u4ef6<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">CMake\u7279\u5b9a\u6700\u4f73\u5b9e\u8df5\u8bf7\u53c2\u8003\u540e\u7eed\u7684<span style=\"color: #1e6bb8; font-weight: bold;\">\u5ef6\u4f38\u9605\u8bfb<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[11]<\/sup>\u90e8\u5206<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">cmake --build<\/code>\u63d0\u4f9b\u4e86\u5e73\u53f0\u65e0\u5173\u7684\u901a\u7528\u7f16\u8bd1\u63a5\u53e3<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Waf<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[12]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">FASTBuild<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[13]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Ninja<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[14]<\/sup> \u2014\u2014 \u53ef\u4ee5\u6781\u5927\u4f18\u5316\u5927\u578b\u9879\u76ee\u7684\u589e\u91cf\u6784\u5efa\u65f6\u95f4\uff0c\u53ef\u4ee5\u4f5c\u4e3aCMake\u7684target\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Bazel<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[15]<\/sup> \u2014\u2014 \u57fa\u4e8e\u7f51\u7edc\u5de5\u4ef6\u7f13\u5b58\u548c\u8fdc\u7a0b\u6267\u884c\u7684\u5feb\u901f\u589e\u91cf\u6784\u5efa<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Buck<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[16]<\/sup> \u2014\u2014 \u7c7b\u4f3c\u4e8eBazel\uff0c\u5bf9iOS\u548cAndroid\u6709\u5f88\u597d\u7684\u652f\u6301<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">gyp<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[17]<\/sup> \u2014\u2014 \u8c37\u6b4cchromium\u7684\u6784\u5efa\u5de5\u5177<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">maiken<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[18]<\/sup> \u2014\u2014 \u5177\u6709maven\u914d\u7f6e\u98ce\u683c\u7684\u8de8\u5e73\u53f0\u6784\u5efa\u5de5\u5177<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Qt Build Suite<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[19]<\/sup> \u2014\u2014 \u57fa\u4e8eQt\u7684\u8de8\u5e73\u53f0\u6784\u5efa\u5de5\u5177<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">meson<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[20]<\/sup> \u2014\u2014 \u5feb\u901f\u3001\u5bf9\u7528\u6237\u53cb\u597d\u7684\u5f00\u6e90\u6784\u5efa\u7cfb\u7edf<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">premake<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[21]<\/sup><\/section>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8bf7\u8bb0\u4f4f\uff0c\u8fd9\u4e0d\u4ec5\u662f\u6784\u5efa\u5de5\u5177\uff0c\u4e5f\u662f\u7f16\u7a0b\u8bed\u8a00\u3002\u8bf7\u5c3d\u91cf\u7ef4\u62a4\u826f\u597d\u6574\u6d01\u7684\u6784\u5efa\u811a\u672c\uff0c\u5e76\u9075\u5faa\u6b63\u5728\u4f7f\u7528\u7684\u5de5\u5177\u7684\u63a8\u8350\u5b9e\u8df5\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u5305\u7ba1\u7406\u5668<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5305\u7ba1\u7406\u662fC++\u7684\u91cd\u8981\u4e3b\u9898\uff0c\u76ee\u524d\u8fd8\u6ca1\u6709\u660e\u786e\u7684\u8d62\u5bb6\u3002\u8bf7\u8003\u8651\u4f7f\u7528\u5305\u7ba1\u7406\u5668\u6765\u5e2e\u52a9\u8ddf\u8e2a\u9879\u76ee\u7684\u4f9d\u8d56\u5173\u7cfb\uff0c\u4ece\u800c\u5e2e\u52a9\u65b0\u4eba\u66f4\u5bb9\u6613\u5f00\u59cb\u53c2\u4e0e\u9879\u76ee\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Conan<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[22]<\/sup> \u2014\u2014 \u8de8\u5e73\u53f0C++\u4f9d\u8d56\u7ba1\u7406\u5668<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">hunter<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[23]<\/sup> \u2014\u2014 CMake\u9a71\u52a8\u7684\u8de8\u5e73\u53f0\u5305\u7ba1\u7406\u5668\uff0c\u9002\u7528\u4e8eC\/C++<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">[C++ Archive Network (CPPAN)](https:\/\/cppan.org\/ &#8220;C++ Archive Network (CPPAN &#8220;C++ Archive Network (CPPAN)&#8221;)&#8221;) \u2014\u2014 \u8de8\u5e73\u53f0C++\u4f9d\u8d56\u7ba1\u7406\u5668<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">qpm<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[24]<\/sup> \u2014\u2014 Qt\u7684\u5305\u7ba1\u7406\u5668<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">build2<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[25]<\/sup> \u2014\u2014 \u7c7bCargo\u7684C++\u5305\u7ba1\u7406\u5668<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Buckaroo<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[26]<\/sup> \u2014\u2014 \u771f\u6b63\u53bb\u4e2d\u5fc3\u5316\u7684\u8de8\u5e73\u53f0\u4f9d\u8d56\u7ba1\u7406\u5668\uff0c\u9002\u7528\u4e8eC\/C++\u7b49\u7b49<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Vcpkg<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[27]<\/sup> \u2014\u2014 \u5fae\u8f6fC++\u5e93\u7ba1\u7406\u5668\uff0c\u652f\u6301Windows, Linux\u548cMacOS<\/section>\n<\/li>\n<\/ul>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u6301\u7eed\u96c6\u6210<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u9009\u62e9\u4e86\u6784\u5efa\u5de5\u5177\u4e4b\u540e\uff0c\u63a5\u4e0b\u6765\u9700\u8981\u8bbe\u7f6e\u6301\u7eed\u96c6\u6210\u73af\u5883\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5728\u66f4\u6539\u88ab\u63a8\u9001\u5230\u5b58\u50a8\u5e93\u65f6\u4f1a\u89e6\u53d1\u6301\u7eed\u96c6\u6210(CI)\u5de5\u5177\u81ea\u52a8\u6784\u5efa\u6e90\u4ee3\u7801\uff0c\u53ef\u4ee5\u79c1\u6709\u90e8\u7f72CI\u5de5\u5177\u6216\u4f7f\u7528\u6258\u7ba1\u7684CI\u7cfb\u7edf\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Travis CI<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[28]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u80fd\u5f88\u597d\u7684\u4e0eC++\u4e00\u8d77\u5de5\u4f5c<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u8bbe\u8ba1\u4e0eGitHub\u4e00\u8d77\u4f7f\u7528<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">GitHub\u516c\u5171\u5b58\u50a8\u5e93\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">AppVeyor<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[29]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u652f\u6301Windows\u3001MSVC\u548cMinGW<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">GitHub\u516c\u5171\u5b58\u50a8\u5e93\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Hudson CI<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[30]<\/sup> \/ <span style=\"color: #1e6bb8; font-weight: bold;\">Jenkins CI<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[31]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u9700\u8981Java\u5e94\u7528\u670d\u52a1\u5668<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u652f\u6301Windows\u3001OS X\u548cLinux<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u53ef\u4ee5\u901a\u8fc7\u8bb8\u591a\u63d2\u4ef6\u8fdb\u884c\u6269\u5c55<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">TeamCity<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[32]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5bf9\u5f00\u6e90\u9879\u76ee\u514d\u8d39<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Decent CI<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[33]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u7b80\u5355\u6301\u7eed\u96c6\u6210\uff0c\u53ef\u4ee5\u5c06\u7ed3\u679c\u53d1\u5e03\u5230GitHub<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u652f\u6301Windows\u3001OS X\u548cLinux<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4f7f\u7528<span style=\"color: #1e6bb8; font-weight: bold;\">ChaiScript<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[34]<\/sup><\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Visual Studio Online<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[35]<\/sup> (http:\/\/www.visualstudio.com\/what-is-visual-studio-online-vs)<\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4e0eVisual Studio Online\u7684\u6e90\u4ee3\u7801\u5e93\u7d27\u5bc6\u96c6\u6210<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4f7f\u7528MSBuild (Visual Studio\u7684\u6784\u5efa\u5f15\u64ce)\uff0c\u53ef\u5728Windows\u3001OS X\u548cLinux\u4e0a\u4f7f\u7528<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u63d0\u4f9b\u6258\u7ba1\u7684\u6784\u5efa\u4ee3\u7406\uff0c\u4e5f\u5141\u8bb8\u7528\u6237\u63d0\u4f9b\u6784\u5efa\u4ee3\u7406<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u53ef\u4ee5\u5728Microsoft Visual Studio\u4e2d\u63a7\u5236\u548c\u76d1\u63a7<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u901a\u8fc7Microsoft Team Foundation Server\u8fdb\u884c\u5185\u90e8\u5b89\u88c5<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">GitLab<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[36]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4f7f\u7528\u81ea\u5b9a\u4e49Docker\u955c\u50cf\uff0c\u56e0\u6b64\u53ef\u7528\u4e8eC++<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u6709\u514d\u8d39\u7684\u5171\u4eab\u6267\u884c\u5668<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u63d0\u4f9b\u7b80\u5355\u7684\u8986\u76d6\u7387\u7ed3\u679c\u5206\u6790<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5982\u679c\u5728GitHub\u4e0a\u6709\u5f00\u6e90\u3001\u516c\u5f00\u6258\u7ba1\u7684\u9879\u76ee:<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u73b0\u5728\u5c31\u628aTravis Ci\u548cAppVeyor\u6574\u5408\u8d77\u6765\u3002\u5173\u4e8e\u5982\u4f55\u5728\u57fa\u4e8eC++ cmake\u7684\u5e94\u7528\u7a0b\u5e8f\u4e2d\u542f\u7528\u7684\u7b80\u5355\u793a\u4f8b\uff0c\u8bf7\u53c2\u8003: https:\/\/github.com\/ChaiScript\/ChaiScript\/blob\/master\/.travis.yml<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u542f\u7528\u8986\u76d6\u5de5\u5177(Codecov\u6216Coveralls)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u542f\u7528<span style=\"color: #1e6bb8; font-weight: bold;\">Coverity Scan<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[37]<\/sup><\/section>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8fd9\u4e9b\u5de5\u5177\u90fd\u662f\u514d\u8d39\u7684\uff0c\u8bbe\u7f6e\u8d77\u6765\u4e5f\u76f8\u5bf9\u5bb9\u6613\u3002\u4e00\u65e6\u628a\u5b83\u4eec\u90fd\u8bbe\u7f6e\u597d\uff0c\u5c31\u53ef\u4ee5\u5bf9\u9879\u76ee\u8fdb\u884c\u6301\u7eed\u7684\u6784\u5efa\u3001\u6d4b\u8bd5\u3001\u5206\u6790\u548c\u62a5\u544a\uff0c\u5e76\u4e14\u514d\u8d39\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u7f16\u8bd1\u5668<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u542f\u7528\u6240\u6709\u53ef\u7528\u3001\u5408\u7406\u7684\u544a\u8b66\u9009\u9879\uff0c\u6709\u4e9b\u544a\u8b66\u9009\u9879\u53ea\u5728\u542f\u7528\u4e86\u4f18\u5316\u7684\u60c5\u51b5\u4e0b\u624d\u6709\u6548\uff0c\u6216\u8005\u4f18\u5316\u7ea7\u522b\u8d8a\u9ad8\uff0c\u6548\u679c\u8d8a\u597d\uff0c\u4f8b\u5982GCC\u4e2d\u7684<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wnull-dereference<\/code>\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5e94\u8be5\u4f7f\u7528\u5c3d\u53ef\u80fd\u591a\u7684\u7f16\u8bd1\u5668\uff0c\u6bcf\u4e2a\u7f16\u8bd1\u5668\u5bf9\u6807\u51c6\u7684\u5b9e\u73b0\u7565\u6709\u4e0d\u540c\uff0c\u652f\u6301\u591a\u4e2a\u7f16\u8bd1\u5668\u5c06\u6709\u52a9\u4e8e\u786e\u4fdd\u5b9e\u73b0\u6700\u53ef\u79fb\u690d\u3001\u6700\u53ef\u9760\u7684\u4ee3\u7801\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">GCC \/ Clang<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic<\/code><\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wall -Wextra<\/code> \u5408\u7406\u3001\u6807\u51c6<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wshadow<\/code> \u5982\u679c\u53d8\u91cf\u58f0\u660e\u8986\u76d6\u4e86\u7236\u4e0a\u4e0b\u6587\u4e2d\u7684\u53d8\u91cf\uff0c\u5219\u8b66\u544a\u7528\u6237<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wnon-virtual-dtor<\/code> \u5982\u679c\u5e26\u6709\u865a\u51fd\u6570\u7684\u7c7b\u6709\u975e\u865a\u6790\u6784\u51fd\u6570\uff0c\u5219\u8b66\u544a\u7528\u6237\uff0c\u6709\u52a9\u4e8e\u6355\u83b7\u96be\u4ee5\u8ddf\u8e2a\u7684\u5185\u5b58\u9519\u8bef<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wold-style-cast<\/code> \u5bf9C\u98ce\u683c\u7684\u7c7b\u578b\u8f6c\u6362\u53d1\u51fa\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wcast-align<\/code> \u8b66\u544a\u6709\u6f5c\u5728\u6027\u80fd\u95ee\u9898\u7684\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wunused<\/code> \u8b66\u544a\u4efb\u4f55\u672a\u4f7f\u7528\u7684\u4e1c\u897f<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Woverloaded-virtual<\/code> \u5982\u679c\u91cd\u8f7d(\u800c\u4e0d\u662f\u8986\u76d6)\u865a\u51fd\u6570\uff0c\u5219\u53d1\u51fa\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wpedantic<\/code> \u5982\u679c\u4f7f\u7528\u4e86\u975e\u6807\u51c6\u7684C++\u5219\u53d1\u51fa\u8b66\u544a(\u6240\u6709\u7248\u672c\u7684GCC, Clang &gt;= 3.2)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wconversion<\/code> \u5bf9\u53ef\u80fd\u4e22\u5931\u6570\u636e\u7684\u7c7b\u578b\u8f6c\u6362\u53d1\u51fa\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wsign-conversion<\/code> \u5bf9\u5f71\u54cd\u5230\u7b26\u53f7\u7684\u7c7b\u578b\u8f6c\u6362\u53d1\u51fa\u8b66\u544a(Clang\u6240\u6709\u7248\u672c\uff0cGCC &gt;= 4.3)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wmisleading-indentation<\/code> \u5982\u679c\u4ee3\u7801\u4e2d\u6709\u7f29\u8fdb\uff0c\u4f46\u6ca1\u6709\u5bf9\u5e94\u7684\u4ee3\u7801\u5757\uff0c\u5219\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC &gt;= 6.0\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wduplicated-cond<\/code> \u5982\u679c<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">if<\/code>\/<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">else<\/code>\u5206\u652f\u6709\u91cd\u590d\u6761\u4ef6\uff0c\u5219\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC &gt;= 6.0\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wduplicated-branches<\/code> \u5982\u679c<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">if<\/code>\/<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">else<\/code>\u5206\u652f\u6709\u91cd\u590d\u7684\u4ee3\u7801\uff0c\u5219\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC &gt;= 7.0\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wlogical-op<\/code> \u5728\u53ef\u80fd\u9700\u8981\u6309\u4f4d\u64cd\u4f5c\u7684\u5730\u65b9\u4f7f\u7528\u903b\u8f91\u64cd\u4f5c\u65f6\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wnull-dereference<\/code> \u5982\u679c\u68c0\u6d4b\u5230\u7a7a\u89e3\u5f15\u7528\u5c06\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC &gt;= 6.0\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wuseless-cast<\/code> \u5982\u679c\u6267\u884c\u5f3a\u5236\u8f6c\u6362\u5230\u76f8\u540c\u7684\u7c7b\u578b\uff0c\u5219\u4f1a\u53d1\u51fa\u8b66\u544a(\u4ec5\u5728GCC &gt;= 4.8\u4e2d)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wdouble-promotion<\/code> \u5982\u679c<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">float<\/code>\u9690\u5f0f\u63d0\u5347\u4e3a<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">double<\/code>\u5219\u53d1\u51fa\u8b66\u544a(GCC &gt;= 4.6, Clang &gt;= 3.8)<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wformat=2<\/code> \u5bf9\u8f93\u51fa\u683c\u5f0f\u5316\u51fd\u6570(\u5373<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">printf<\/code>)\u7684\u5b89\u5168\u95ee\u9898\u53d1\u51fa\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Wlifetime<\/code> \u663e\u793a\u5bf9\u8c61\u751f\u547d\u5468\u671f\u95ee\u9898(\u76ee\u524d\u53ea\u6709Clang\u7684\u7279\u6b8a\u5206\u652f)<\/section>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8003\u8651\u4f7f\u7528<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Weverything<\/code>\uff0c\u5e76\u4e14\u53ea\u5728\u9700\u8981\u7684\u60c5\u51b5\u4e0b\u7981\u7528\u5c11\u6570\u8b66\u544a\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Weffc++<\/code>\u8b66\u544a\u6a21\u5f0f\u53ef\u80fd\u592a\u5435\u4e86\uff0c\u4f46\u5982\u679c\u5bf9\u9879\u76ee\u9002\u7528\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">MSVC<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/permissive-<\/code> \u2014\u2014 <span style=\"color: #1e6bb8; font-weight: bold;\">\u6267\u884c\u6807\u51c6\u4e00\u81f4\u6027<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[38]<\/sup><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/W4 \/w14640<\/code> \u2014\u2014 \u4f7f\u7528\u5e76\u8003\u8651\u4ee5\u4e0b\u5185\u5bb9(\u53c2\u89c1\u4e0b\u9762\u7684\u63cf\u8ff0)<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/W4<\/code> \u4e00\u5207\u5408\u7406\u7684\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14242<\/code> &#8216;identifier&#8217;: \u4ece&#8217;type1&#8217;\u5230&#8217;type1&#8217;\u7684\u8f6c\u6362\uff0c\u53ef\u80fd\u4e22\u5931\u6570\u636e<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14254<\/code> &#8216;operator&#8217;: \u4ece\u201ctype1:field_bits\u201d\u5230\u201ctype2:field_bits\u201d\u7684\u8f6c\u6362\uff0c\u53ef\u80fd\u4e22\u5931\u6570\u636e<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14263<\/code> &#8216;function&#8217;: \u6210\u5458\u51fd\u6570\u4e0d\u91cd\u5199\u4efb\u4f55\u57fa\u7c7b\u865a\u6210\u5458\u51fd\u6570<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14265<\/code> &#8216;classname&#8217;: \u7c7b\u6709\u865a\u51fd\u6570\uff0c\u4f46\u6790\u6784\u51fd\u6570\u4e0d\u662f\u8be5\u7c7b\u7684\u865a\u5b9e\u4f8b\uff0c\u53ef\u80fd\u65e0\u6cd5\u6b63\u786e\u6790\u6784<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14287<\/code> &#8216;operator&#8217;: \u65e0\u7b26\u53f7\/\u8d1f\u5e38\u6570\u4e0d\u5339\u914d<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/we4289<\/code> nonstandard extension used: &#8216;variable&#8217;: \u5728for\u5faa\u73af\u4e2d\u58f0\u660e\u7684\u5faa\u73af\u63a7\u5236\u53d8\u91cf\u5728for\u5faa\u73af\u4f5c\u7528\u57df\u4e4b\u5916\u4f7f\u7528<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14296<\/code> &#8216;operator&#8217;: \u8868\u8fbe\u5f0f\u603b\u662f&#8217;\u5e03\u5c14\u503c(boolean_value)&#8217;<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14311<\/code> &#8216;variable&#8217;: \u6307\u9488\u4ece&#8217;type1&#8217;\u8f6c\u6362\u5230&#8217;type2&#8217;\u65f6\u88ab\u622a\u65ad<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14545<\/code> \u9017\u53f7\u524d\u7684\u8868\u8fbe\u5f0f\u8ba1\u7b97\u7684\u662f\u7f3a\u5c11\u53c2\u6570\u5217\u8868\u7684\u51fd\u6570<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14546<\/code> \u9017\u53f7\u524d\u7684\u51fd\u6570\u8c03\u7528\u7f3a\u5c11\u53c2\u6570\u5217\u8868<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14547<\/code> &#8216;operator&#8217;: \u9017\u53f7\u524d\u7684\u8fd0\u7b97\u7b26\u65e0\u6548\uff0c\u9884\u671f\u8fd0\u7b97\u7b26\u6709\u526f\u4f5c\u7528<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14549<\/code> &#8216;operator&#8217;: \u9017\u53f7\u524d\u7684\u8fd0\u7b97\u7b26\u65e0\u6548\uff0c\u60f3\u8981\u201c\u8fd0\u7b97\u7b26\u201d\u5417?<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14555<\/code> \u8868\u8fbe\u5f0f\u6ca1\u6709\u6548\u679c\uff0c\u8868\u8fbe\u5f0f\u9884\u671f\u5e26\u6709\u526f\u4f5c\u7528<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14619<\/code> pragma warning: \u6ca1\u6709\u8b66\u544a\u53f7\u7801<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14640<\/code> \u5728\u7ebf\u7a0b\u4e0d\u5b89\u5168\u7684\u9759\u6001\u6210\u5458\u521d\u59cb\u5316\u65f6\u542f\u7528\u8b66\u544a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14826<\/code> \u4ece&#8217;type1&#8217;\u5230&#8217;type_2&#8217;\u7684\u8f6c\u6362\u4f1a\u6269\u5c55\u7b26\u53f7\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u610f\u5916\u7684\u8fd0\u884c\u65f6\u884c\u4e3a<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14905<\/code> \u5bbd\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u8f6c\u6362\u4e3a&#8217;LPSTR&#8217;<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14906<\/code> \u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u8f6c\u6362\u4e3a&#8217;LPWSTR&#8217;<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/w14928<\/code> \u975e\u6cd5\u7684\u62f7\u8d1d\u521d\u59cb\u5316\uff0c\u5df2\u9690\u5f0f\u5e94\u7528\u591a\u4e2a\u7528\u6237\u5b9a\u4e49\u8f6c\u6362<\/section>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4e0d\u5efa\u8bae<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/Wall<\/code> \u4f1a\u5bf9\u6807\u51c6\u5e93\u4e2d\u5305\u542b\u7684\u6587\u4ef6\u53d1\u51fa\u8b66\u544a\uff0c\u6709\u592a\u591a\u989d\u5916\u7684\u8b66\u544a\uff0c\u56e0\u6b64\u6ca1\u4ec0\u4e48\u7528\u3002<\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u901a\u7528<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4e00\u5f00\u59cb\u5c31\u8bbe\u7f6e\u975e\u5e38\u4e25\u683c\u7684\u8b66\u544a\uff0c\u5728\u9879\u76ee\u5f00\u59cb\u540e\u8bd5\u56fe\u63d0\u9ad8\u8b66\u544a\u7ea7\u522b\u53ef\u80fd\u4f1a\u5f88\u75db\u82e6\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8003\u8651\u4f7f\u7528<em>\u5c06\u8b66\u544a\u89c6\u4e3a\u9519\u8bef\u7684\u8bbe\u7f6e<\/em>\uff0c\u4f8b\u5982MSVC\u4e2d\u7684<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/Wx<\/code>\uff0c\u4ee5\u53caGCC\/Clang\u4e2d\u7684<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-Werror<\/code>\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u57fa\u4e8eLLVM\u7684\u5de5\u5177<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u57fa\u4e8eLLVM\u7684\u5de5\u5177\u4e0e\u80fd\u591f\u8f93\u51fa\u7f16\u8bd1\u547d\u4ee4\u6570\u636e\u5e93\u7684\u6784\u5efa\u7cfb\u7edf(\u4f8b\u5982cmake)\u914d\u5408\u5f97\u6700\u597d\uff0c\u4f8b\u5982:<\/p>\n<pre style=\"box-shadow: rgba(170, 170, 170, 0.48) 0px 0px 6px 0px; max-width: 100%; border-radius: 4px; margin-top: 10px; margin-right: auto; margin-left: auto;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #61aeee; line-height: 26px;\">$<\/span><span style=\"line-height: 26px;\">\u00a0cmake\u00a0-DCMAKE_EXPORT_COMPILE_COMMANDS=ON\u00a0.<\/span><br \/><\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5982\u679c\u6ca1\u7528\u8fd9\u6837\u7684\u6784\u5efa\u7cfb\u7edf\uff0c\u53ef\u4ee5\u8003\u8651<span style=\"color: #1e6bb8; font-weight: bold;\">Build EAR<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[39]<\/sup>\uff0c\u5b83\u53ef\u4ee5\u4e0e\u73b0\u6709\u6784\u5efa\u7cfb\u7edf\u6302\u94a9\uff0c\u5e76\u751f\u6210\u7f16\u8bd1\u547d\u4ee4\u6570\u636e\u5e93\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">CMake\u73b0\u5728\u4e5f\u63d0\u4f9b\u4e86\u5728<span style=\"color: #1e6bb8; font-weight: bold;\">\u6b63\u5e38\u7f16\u8bd1\u671f\u95f4\u8c03\u7528&#8220;`clang-tidy&#8220;`<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[40]<\/sup>\u7684\u5185\u7f6e\u652f\u6301\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">include-what-you-use<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[41]<\/sup>, <span style=\"color: #1e6bb8; font-weight: bold;\">\u793a\u4f8b\u7ed3\u679c<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[42]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">clang-modernize<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[43]<\/sup>, <span style=\"color: #1e6bb8; font-weight: bold;\">\u793a\u4f8b\u7ed3\u679c<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[44]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">clang-check<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[45]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">clang-tidy<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[46]<\/sup><\/section>\n<\/li>\n<\/ul>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u9759\u6001\u68c0\u67e5<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u6700\u597d\u7684\u9009\u62e9\u662f\u5c06\u9759\u6001\u5206\u6790\u5668\u4f5c\u4e3a\u81ea\u52a8\u5316\u6784\u5efa\u7cfb\u7edf\u7684\u4e00\u90e8\u5206\u8fd0\u884c\uff0ccppcheck\u548cclang\u53ef\u4ee5\u6ee1\u8db3\u514d\u8d39\u9009\u9879\u7684\u8981\u6c42\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Coverity Scan<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Coverity<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[47]<\/sup>\u63d0\u4f9b\u514d\u8d39(\u5f00\u6e90)\u9759\u6001\u5206\u6790\u5de5\u5177\u5305\uff0c\u53ef\u4ee5\u7528\u4e8e\u4e0e<span style=\"color: #1e6bb8; font-weight: bold;\">Travis CI<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[48]<\/sup>\u548c<span style=\"color: #1e6bb8; font-weight: bold;\">AppVeyor<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[49]<\/sup>\u96c6\u6210\u7684\u6bcf\u4e2a\u63d0\u4ea4\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">PVS-Studio<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">PVS-Studio<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[50]<\/sup>\u662f\u7528\u4e8e\u68c0\u6d4b\u7528C\u3001C++\u548cC#\u7f16\u5199\u7684\u7a0b\u5e8f\u6e90\u4ee3\u7801\u4e2d\u7684bug\u7684\u5de5\u5177\uff0c\u5bf9\u4e2a\u4eba\u5b66\u672f\u9879\u76ee\u3001\u5f00\u6e90\u975e\u5546\u4e1a\u9879\u76ee\u548c\u4e2a\u4eba\u5f00\u53d1\u8005\u7684\u72ec\u7acb\u9879\u76ee\u90fd\u662f\u514d\u8d39\u7684\uff0c\u53ef\u4ee5\u5728Windows\u548cLinux\u73af\u5883\u4e0b\u5de5\u4f5c\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Cppcheck<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Cppcheck<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[51]<\/sup>\u662f\u514d\u8d39\u3001\u5f00\u6e90\u7684\u3002\u5b83\u52aa\u529b\u4e89\u53d6\u96f6\u8bef\u62a5\uff0c\u5e76\u4e14\u505a\u5f97\u5f88\u597d\u3002\u56e0\u6b64\uff0c\u5e94\u8be5\u542f\u7528\u6240\u6709\u8b66\u544a: <code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">--enable=all<\/code>\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5907\u6ce8:<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4e3a\u4e86\u6b63\u786e\u5de5\u4f5c\uff0c\u9700\u8981\u683c\u5f0f\u5b8c\u6574\u7684\u5934\u6587\u4ef6\u8def\u5f84\uff0c\u6240\u4ee5\u5728\u4f7f\u7528\u524d\u4e0d\u8981\u5fd8\u8bb0\u4f20\u9012: <code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">--check-config<\/code>\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u67e5\u627e\u672a\u4f7f\u7528\u7684\u5934\u6587\u4ef6\u65f6<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">-j<\/code>\u4e0d\u80fd\u5927\u4e8e1\u3002<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5982\u679c\u9700\u8981\u68c0\u67e5\u6240\u6709\u7684\u4ee3\u7801\uff0c\u8bf7\u8bb0\u4f4f\u4e3a\u5e26\u6709\u5927\u91cf#ifdef\u7684\u4ee3\u7801\u6dfb\u52a0<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">--force<\/code>\u3002<\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">cppclean<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">cppclean<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[52]<\/sup>\u662f\u5f00\u6e90\u9759\u6001\u5206\u6790\u5668\uff0c\u4e13\u6ce8\u4e8e\u53d1\u73b0C++\u6e90\u4ee3\u7801\u4e2d\u5bfc\u81f4\u5927\u578b\u4ee3\u7801\u5e93\u5f00\u53d1\u7f13\u6162\u7684\u95ee\u9898\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">CppDepend<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">CppDepend<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[53]<\/sup>\u901a\u8fc7\u5206\u6790\u548c\u53ef\u89c6\u5316\u4ee3\u7801\u4f9d\u8d56\u5173\u7cfb\u3001\u5b9a\u4e49\u8bbe\u8ba1\u89c4\u5219\u3001\u8fdb\u884c\u5f71\u54cd\u5206\u6790\u4ee5\u53ca\u6bd4\u8f83\u4e0d\u540c\u7248\u672c\u7684\u4ee3\u7801\uff0c\u7b80\u5316\u4e86\u5bf9\u590d\u6742C\/C++\u4ee3\u7801\u5e93\u7684\u7ba1\u7406\uff0c\u5bf9\u5f00\u6e90\u8d21\u732e\u8005\u662f\u514d\u8d39\u7684\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Clang\u7684\u9759\u6001\u5206\u6790\u5668<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">Clang\u7684\u5206\u6790\u7a0b\u5e8f\u7684\u9ed8\u8ba4\u9009\u9879\u9002\u7528\u4e8e\u5404\u4e2a\u5e73\u53f0\uff0c\u53ef\u4ee5\u76f4\u63a5<span style=\"color: #1e6bb8; font-weight: bold;\">\u901a\u8fc7CMake\u4f7f\u7528<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[54]<\/sup>\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7<span style=\"color: #1e6bb8; font-weight: bold;\">\u57fa\u4e8ellvm\u7684\u5de5\u5177<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[55]<\/sup>\u4e2d\u7684<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">clang-check<\/code>\u548c<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">clang-tidy<\/code>\u8c03\u7528\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u6b64\u5916\uff0c<span style=\"color: #1e6bb8; font-weight: bold;\">CodeChecker<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[56]<\/sup>\u53ef\u4ee5\u4f5c\u4e3aclang\u7684\u9759\u6001\u5206\u6790\u524d\u7aef\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">clang-tidy<\/code>\u53ef\u4ee5\u901a\u8fc7<span style=\"color: #1e6bb8; font-weight: bold;\">Clang Power Tools<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[57]<\/sup>\u6269\u5c55\u8f7b\u677e\u7684\u548cVisual Studio\u4e00\u8d77\u4f7f\u7528\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">MSVC\u7684\u9759\u6001\u5206\u6790\u5668<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u53ef\u4ee5\u901a\u8fc7<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">\/analyze<\/code><span style=\"color: #1e6bb8; font-weight: bold;\">\u547d\u4ee4\u884c\u9009\u9879<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[58]<\/sup>\u542f\u7528\uff0c\u53ef\u4ee5\u4f7f\u7528\u9ed8\u8ba4\u9009\u9879\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Flint \/ Flint++<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Flint<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[59]<\/sup>\u548c<span style=\"color: #1e6bb8; font-weight: bold;\">Flint++<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[60]<\/sup>\u662f\u6839\u636eFacebook\u7f16\u7801\u6807\u51c6\u5206\u6790C++\u4ee3\u7801\u7684linter\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">OCLint<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">OCLint<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[61]<\/sup>\u662f\u514d\u8d39\u3001\u81ea\u7531\u3001\u5f00\u6e90\u7684\u9759\u6001\u4ee3\u7801\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bb8\u591a\u4e0d\u540c\u7684\u65b9\u5f0f\u63d0\u9ad8C++\u4ee3\u7801\u7684\u8d28\u91cf\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">ReSharper C++ \/ CLion<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8fd9\u4e24\u79cd\u6765\u81ea<span style=\"color: #1e6bb8; font-weight: bold;\">JetBrains<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[62]<\/sup>\u7684\u5de5\u5177\u90fd\u63d0\u4f9b\u4e86\u4e00\u5b9a\u7a0b\u5ea6\u7684\u9759\u6001\u5206\u6790\u548c\u81ea\u52a8\u4fee\u590d\u529f\u80fd\uff0c\u4e3a\u5f00\u6e90\u9879\u76ee\u8d1f\u8d23\u4eba\u63d0\u4f9b\u4e86\u514d\u8d39\u8bb8\u53ef\u8bc1\u9009\u9879\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Cevelop<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u57fa\u4e8eEclipse\u7684<span style=\"color: #1e6bb8; font-weight: bold;\">Cevelop<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[63]<\/sup> IDE\u63d0\u4f9b\u4e86\u5404\u79cd\u9759\u6001\u5206\u6790\u548c\u91cd\u6784\/\u4ee3\u7801\u4fee\u590d\u5de5\u5177\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u7528C++\u7684<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">constexprs<\/code>\u66ff\u6362\u5b8f\uff0c\u91cd\u6784\u547d\u540d\u7a7a\u95f4(\u63d0\u53d6\/\u5185\u8054<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">using<\/code>\uff0c\u9650\u5b9a\u540d\u79f0)\uff0c\u5e76\u5c06\u4ee3\u7801\u91cd\u6784\u4e3aC++11\u7684\u7edf\u4e00\u521d\u59cb\u5316\u8bed\u6cd5\u3002Cevelop\u662f\u514d\u8d39\u7684\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Qt Creator<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">Qt Creator\u53ef\u4ee5\u63d2\u5165clang\u9759\u6001\u5206\u6790\u5668\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">clazy<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">clazy<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[64]<\/sup>\u662f\u57fa\u4e8eclang\u7684\u5206\u6790Qt\u4f7f\u7528\u60c5\u51b5\u7684\u5de5\u5177\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">IKOS<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">IKOS<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[65]<\/sup>\u662f\u5f00\u6e90\u9759\u6001\u5206\u6790\u5668\uff0c\u7531NASA\u5f00\u53d1\u3002\u5b83\u4ee5\u62bd\u8c61\u89e3\u91ca\u4e3a\u57fa\u7840\uff0c\u7528C++\u7f16\u5199\uff0c\u4f7f\u7528LLVM\u4e3aC\u548cC++\u63d0\u4f9b\u4e86\u5206\u6790\u5668\u3002\u6e90\u4ee3\u7801\u53ef\u4ee5\u5728<span style=\"color: #1e6bb8; font-weight: bold;\">Github<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[66]<\/sup>\u4e0a\u627e\u5230\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u8fd0\u884c\u65f6\u68c0\u67e5<\/h4>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u4ee3\u7801\u8986\u76d6\u7387\u5206\u6790<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8986\u76d6\u7387\u5206\u6790\u5de5\u5177\u5e94\u8be5\u5728\u6d4b\u8bd5\u6267\u884c\u65f6\u8fd0\u884c\uff0c\u4ee5\u786e\u4fdd\u6574\u4e2a\u5e94\u7528\u7a0b\u5e8f\u90fd\u88ab\u6d4b\u5230\u3002\u4e0d\u5e78\u7684\u662f\uff0c\u8986\u76d6\u7387\u5206\u6790\u9700\u8981\u7981\u7528\u7f16\u8bd1\u5668\u4f18\u5316\uff0c\u8fd9\u5c06\u5bfc\u81f4\u6d4b\u8bd5\u6267\u884c\u65f6\u95f4\u5927\u5927\u5ef6\u957f\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Codecov<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[67]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4e0eTravis CI\u548cAppVeyor\u96c6\u6210<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5bf9\u4e8e\u5f00\u6e90\u9879\u76ee\u514d\u8d39<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Coveralls<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[68]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4e0eTravis CI\u548cAppVeyor\u96c6\u6210<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u5bf9\u4e8e\u5f00\u6e90\u9879\u76ee\u514d\u8d39<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">LCOV<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[69]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u6709\u5f88\u591a\u914d\u7f6e\u9879<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Gcovr<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[70]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">kcov<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[71]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u53ef\u4e0ecodecov\u548ccoveralls\u96c6\u6210<\/section>\n<\/li>\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">\u4e0d\u9700\u8981\u7279\u6b8a\u7684\u7f16\u8bd1\u5668flag\uff0c\u53ea\u9700\u8981debug\u7b26\u53f7\uff0c\u5c31\u53ef\u4ee5\u8f93\u51fa\u4ee3\u7801\u8986\u76d6\u7387\u62a5\u544a<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">OpenCppCoverage<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[72]<\/sup><\/section>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; color: black; list-style-type: circle;\">\n<li style=\"list-style-type: circle;\">\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">Windows\u4e0a\u7684\u5f00\u6e90\u4ee3\u7801\u8986\u76d6\u7387\u5de5\u5177<\/section>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Valgrind<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Valgrind<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[73]<\/sup>\u662f\u8fd0\u884c\u65f6\u4ee3\u7801\u5206\u6790\u5668\uff0c\u53ef\u4ee5\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f\u3001\u7ade\u4e89\u6761\u4ef6\u548c\u5176\u4ed6\u76f8\u5173\u95ee\u9898\uff0c\u652f\u6301\u5404\u79cdUnix\u5e73\u53f0\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Dr Memory<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u548cValgrind\u7c7b\u4f3c\u3002http:\/\/www.drmemory.org<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">GCC \/ Clang Sanitizers<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8fd9\u4e9b\u5de5\u5177\u63d0\u4f9b\u4e86\u8bb8\u591a\u4e0eValgrind\u76f8\u540c\u7684\u7279\u6027\uff0c\u4f46\u5185\u7f6e\u5728\u7f16\u8bd1\u5668\u4e2d\uff0c\u6613\u4e8e\u4f7f\u7528\uff0c\u5e76\u63d0\u4f9b\u95ee\u9898\u62a5\u544a\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">AddressSanitizer<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">MemorySanitizer<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">ThreadSanitizer<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">UndefinedBehaviorSanitizer<\/section>\n<\/li>\n<\/ul>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u6ce8\u610f\u53ef\u7528\u7684sanitizer\u9009\u9879\uff0c\u5305\u62ec\u8fd0\u884c\u65f6\u9009\u9879\u3002https:\/\/kristerw.blogspot.com\/2018\/06\/useful-gcc-address-sanitizer-checks-not.html<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Fuzzy\u5206\u6790\u5668<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5982\u679c\u9879\u76ee\u63a5\u53d7\u7528\u6237\u5b9a\u4e49\u7684\u8f93\u5165\uff0c\u53ef\u4ee5\u8003\u8651\u8fd0\u884c\u6a21\u7cca\u8f93\u5165\u6d4b\u8bd5\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8fd9\u4e9b\u5de5\u5177\u90fd\u4f7f\u7528\u8986\u76d6\u7387\u62a5\u544a\u6765\u5bfb\u627e\u65b0\u7684\u4ee3\u7801\u6267\u884c\u8def\u5f84\uff0c\u5e76\u5c1d\u8bd5\u4e3a\u4ee3\u7801\u63d0\u4f9b\u65b0\u7684\u8f93\u5165\u3002\u5b83\u4eec\u53ef\u4ee5\u53d1\u73b0\u5d29\u6e83\u3001\u6302\u8d77\u4ee5\u53ca\u4e00\u4e9b\u6ca1\u6709\u88ab\u8003\u8651\u5230\u7684\u8f93\u5165\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">american fuzzy lop<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[74]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">LibFuzzer<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[75]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">KLEE<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[76]<\/sup> \u2014\u2014 \u53ef\u4ee5\u4e3a\u5355\u72ec\u7684\u51fd\u6570\u63d0\u4f9b\u6a21\u7cca\u6d4b\u8bd5<\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u53d8\u5f02\u6d4b\u8bd5<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u8fd9\u4e9b\u5de5\u5177\u83b7\u53d6\u5728\u5355\u5143\u6d4b\u8bd5\u8fd0\u884c\u671f\u95f4\u6267\u884c\u7684\u4ee3\u7801\uff0c\u5e76\u6539\u53d8\u6267\u884c\u7684\u4ee3\u7801\u3002\u5982\u679c\u6d4b\u8bd5\u5728\u6709\u7a81\u53d8\u7684\u60c5\u51b5\u4e0b\u4ecd\u7136\u901a\u8fc7\uff0c\u90a3\u53ef\u80fd\u610f\u5473\u7740\u5728\u6d4b\u8bd5\u5957\u4ef6\u4e2d\u5b58\u5728\u6709\u7f3a\u9677\u7684\u6d4b\u8bd5\u3002<\/p>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Dextool Mutate<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[77]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">MuCPP<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[78]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">mull<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[79]<\/sup><\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><span style=\"color: #1e6bb8; font-weight: bold;\">CCMutator<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[80]<\/sup><\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u63a7\u5236\u6d41\u4fdd\u62a4<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">MSVC\u7684[\u63a7\u5236\u6d41\u4fdd\u62a4(Control Flow Guard)](https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/mt637065%28v=vs.85%29.aspx?f=255&amp;MSPPError=-2147217396 &#8220;\u63a7\u5236\u6d41\u4fdd\u62a4(Control Flow Guard &#8220;\u63a7\u5236\u6d41\u4fdd\u62a4(Control Flow Guard)&#8221;)&#8221;)\u589e\u52a0\u4e86\u9ad8\u6027\u80fd\u7684\u8fd0\u884c\u65f6\u5b89\u5168\u68c0\u67e5\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u68c0\u67e5STL\u5b9e\u73b0<\/h5>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\"><code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">_GLIBCXX_DEBUG<\/code>\u4e0eGCC\u7684libstdc++\u7684\u5b9e\u73b0\u3002\u53c2\u89c1<span style=\"color: #1e6bb8; font-weight: bold;\">Krister\u7684\u535a\u5ba2\u6587\u7ae0<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[81]<\/sup>\u3002<\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u5806\u5206\u6790<\/h5>\n<ul class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: square;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; color: #010101;\">https:\/\/epfl-vlsc.github.io\/memoro \u2014\u2014 \u4e00\u4e2a\u8be6\u7ec6\u7684\u5806\u5206\u6790\u5668<\/section>\n<\/li>\n<\/ul>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u5ffd\u7565\u8b66\u544a<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5982\u679c\u56e2\u961f\u4e00\u81f4\u8ba4\u4e3a\u7f16\u8bd1\u5668\u6216\u5206\u6790\u5668\u5bf9\u4e0d\u6b63\u786e\u6216\u4e0d\u53ef\u907f\u514d\u7684\u9519\u8bef\u53d1\u51fa\u8b66\u544a\uff0c\u5219\u56e2\u961f\u9700\u8981\u5c3d\u53ef\u80fd\u53ea\u5728\u6700\u5c0f\u7684\u8303\u56f4\u5185\u7981\u7528\u7279\u5b9a\u7684\u9519\u8bef\u8b66\u544a\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5728\u5bf9\u4e00\u6bb5\u4ee3\u7801\u7981\u7528\u8be5\u8b66\u544a\u540e\uff0c\u8bf7\u786e\u4fdd\u91cd\u65b0\u542f\u7528\u8be5\u8b66\u544a\uff0c\u6ca1\u4eba\u5e0c\u671b\u7981\u7528\u7684\u8b66\u544a\u88ab<span style=\"color: #1e6bb8; font-weight: bold;\">\u6cc4\u9732\u5230\u5176\u4ed6\u4ee3\u7801\u4e2d<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[82]<\/sup>\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u6d4b\u8bd5<\/h4>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4e0a\u9762\u63d0\u5230\u7684CMake\u6709\u4e00\u4e2a\u7528\u4e8e\u6267\u884c\u6d4b\u8bd5\u7684\u5185\u7f6e\u6846\u67b6\uff0c\u8bf7\u786e\u4fdd\u4f7f\u7528\u7684\u4efb\u4f55\u6784\u5efa\u7cfb\u7edf\u90fd\u80fd\u591f\u6267\u884c\u5185\u7f6e\u6d4b\u8bd5\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4e3a\u4e86\u8fdb\u4e00\u6b65\u5e2e\u52a9\u6267\u884c\u6d4b\u8bd5\uff0c\u8bf7\u8003\u8651\u4f7f\u7528\u67d0\u4e2a\u5355\u5143\u6d4b\u8bd5\u5e93\uff0c\u5982<span style=\"color: #1e6bb8; font-weight: bold;\">Google Test<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[83]<\/sup>\u3001<span style=\"color: #1e6bb8; font-weight: bold;\">Catch<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[84]<\/sup>\u3001<span style=\"color: #1e6bb8; font-weight: bold;\">CppUTest<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[85]<\/sup>\u6216<span style=\"color: #1e6bb8; font-weight: bold;\">Boost.Test<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[86]<\/sup>\uff0c\u4ee5\u5e2e\u52a9\u7ec4\u7ec7\u6d4b\u8bd5\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u5355\u5143\u6d4b\u8bd5<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5355\u5143\u6d4b\u8bd5\u9488\u5bf9\u7684\u662f\u53ef\u4ee5\u72ec\u7acb\u6d4b\u8bd5\u7684\u5c0f\u4ee3\u7801\u5757\u548c\u72ec\u7acb\u529f\u80fd\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u96c6\u6210\u6d4b\u8bd5<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u5bf9\u4e8e\u63d0\u4ea4\u7684\u6bcf\u4e2a\u7279\u6027\u6216bug\u4fee\u590d\uff0c\u90fd\u5e94\u8be5\u542f\u7528\u6d4b\u8bd5\u3002\u53c2\u89c1\u4e0a\u6587\u4ecb\u7ecd\u7684\u4ee3\u7801\u8986\u76d6\u7387\u5206\u6790\u3002\u8fd9\u4e9b\u6d4b\u8bd5\u6bd4\u5355\u5143\u6d4b\u8bd5\u7ea7\u522b\u66f4\u9ad8\uff0c\u4f46\u4ecd\u7136\u5e94\u8be5\u88ab\u9650\u5236\u5728\u5355\u4e2a\u7279\u6027\u7684\u8303\u56f4\u5185\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">\u9006\u5411\u6d4b\u8bd5<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\">\u4e0d\u8981\u5fd8\u8bb0\u786e\u4fdd\u6d4b\u8bd5\u4ee3\u7801\u4e2d\u7684\u9519\u8bef\u5904\u7406\uff0c\u5e76\u4e14\u786e\u4fdd\u5176\u80fd\u591f\u6b63\u5e38\u5de5\u4f5c\u3002\u5982\u679c\u76ee\u6807\u662f100%\u7684\u4ee3\u7801\u8986\u76d6\u7387\uff0c\u5f88\u660e\u663e\u8fd9\u4e9b\u9519\u8bef\u573a\u666f\u4e5f\u9700\u8981\u88ab\u8986\u76d6\u7684\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u8c03\u8bd5<\/h4>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">uftrace<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">uftrace<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[87]<\/sup>\u53ef\u4ee5\u7528\u6765\u751f\u6210\u7a0b\u5e8f\u6267\u884c\u7684\u51fd\u6570\u8c03\u7528\u56fe\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">rr<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">rr<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[88]<\/sup>\u662f\u4e00\u4e2a\u514d\u8d39\u3001\u5f00\u6e90\u7684\u53cd\u5411\u8c03\u8bd5\u5668\uff0c\u652f\u6301C++\u3002<\/p>\n<h4 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; font-size: 18px;\">\u5176\u4ed6\u5de5\u5177<\/h4>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Lizard<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Lizard<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[89]<\/sup>\u63d0\u4f9b\u4e86\u9488\u5bf9C++\u4ee3\u7801\u5e93\u8fd0\u884c\u590d\u6742\u6027\u5206\u6790\u7684\u975e\u5e38\u7b80\u5355\u7684\u63a5\u53e3\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Metrix++<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Metrix++<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[90]<\/sup>\u53ef\u4ee5\u8bc6\u522b\u5e76\u62a5\u544a\u4ee3\u7801\u4e2d\u6700\u590d\u6742\u7684\u90e8\u5206\uff0c\u4ece\u800c\u5e2e\u52a9\u6211\u4eec\u51cf\u5c11\u590d\u6742\u4ee3\u7801\uff0c\u5e2e\u52a9\u7f16\u8bd1\u5668\u66f4\u597d\u7684\u7406\u89e3\u548c\u4f18\u5316\u4ee3\u7801\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">ABI Compliance Checker<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">ABI Compliance Checker<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[91]<\/sup> (ACC)\u53ef\u4ee5\u5206\u6790\u4e24\u4e2a\u5e93\u7248\u672c\uff0c\u5e76\u751f\u6210\u5173\u4e8eAPI\u548cC++ ABI\u53d8\u5316\u7684\u8be6\u7ec6\u517c\u5bb9\u6027\u62a5\u544a\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5e93\u5f00\u53d1\u4eba\u5458\u53d1\u73b0\u65e0\u610f\u7684\u7834\u574f\u6027\u66f4\u6539\uff0c\u4ee5\u786e\u4fdd\u5411\u540e\u517c\u5bb9\u6027\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">CNCC<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Customizable Naming Convention Checker<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[92]<\/sup>\uff08\u53ef\u81ea\u5b9a\u4e49\u7684\u547d\u540d\u7ea6\u5b9a\u68c0\u67e5\u5668\uff09\u53ef\u4ee5\u62a5\u544a\u4ee3\u7801\u4e2d\u4e0d\u9075\u5faa\u7279\u5b9a\u547d\u540d\u7ea6\u5b9a\u7684\u6807\u8bc6\u7b26\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">ClangFormat<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">ClangFormat<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[93]<\/sup>\u53ef\u4ee5\u81ea\u52a8\u68c0\u67e5\u5e76\u7ea0\u6b63\u4ee3\u7801\u683c\u5f0f\uff0c\u4ee5\u5339\u914d\u7ec4\u7ec7\u7ea6\u5b9a\u3002\u53ef\u4ee5\u53c2\u8003<span style=\"color: #1e6bb8; font-weight: bold;\">\u5173\u4e8eclang-format\u7684\u7cfb\u5217\u6587\u7ae0<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[94]<\/sup>\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">SourceMeter<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">SourceMeter<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[95]<\/sup>\u63d0\u4f9b\u4e86\u514d\u8d39\u7248\u672c\uff0c\u53ef\u4ee5\u4e3a\u4ee3\u7801\u63d0\u4f9b\u8bb8\u591a\u4e0d\u540c\u7684\u5ea6\u91cf\uff0c\u4e5f\u53ef\u4ee5\u8c03\u7528cppcheck\u3002<\/p>\n<h5 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold;\">Bloaty McBloatface<\/h5>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px;\"><span style=\"color: #1e6bb8; font-weight: bold;\">Bloaty McBloatface<\/span><sup style=\"line-height: 0; color: #1e6bb8; font-weight: bold;\">[96]<\/sup>\u662f\u7528\u4e8e\u7c7bunix\u5e73\u53f0\u7684\u4e8c\u8fdb\u5236\u5927\u5c0f\u5206\u6790\u5668\u3002<\/p>\n<blockquote style=\"border-top: none; border-bottom: none; font-size: 0.9em; overflow: auto; color: #6a737d; padding: 10px 10px 10px 20px; margin-bottom: 20px; margin-top: 20px; border-left-color: rgba(0, 0, 0, 0.65); border-right: 1px solid rgba(0, 0, 0, 0.65); background: #f9f9f9;\">\n<p style=\"padding-top: 8px; padding-bottom: 8px; font-size: 14px; color: black; line-height: 26px;\">\u5fae\u4fe1\u516c\u4f17\u53f7\uff1aDeepNoMind<\/p>\n<\/blockquote>\n<h3 style=\"font-weight: bold; font-size: 14px; color: #888888; border-top: 1px solid #eeeeee; padding-top: 30px; padding-bottom: 10px; width: 100%;\"><span style=\"display: block;\">\u53c2\u8003\u8d44\u6599<\/span><\/h3>\n<section style=\"border-left: 5px solid #eee; padding-left: 10px;\"><span style=\"display: flex;\"><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[1]<\/span><\/span><\/span>\n<p>\u00a0<\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">C++ Best Practises: <em>https:\/\/lefticus.gitbooks.io\/cpp-best-practices\/content\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[2]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u77e5\u8bc6\u5171\u4eab\u7f72\u540d-\u975e\u5546\u4e1a4.0\u56fd\u9645\u8bb8\u53ef\u534f\u8bae: <em>http:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[3]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">GitHub: <em>https:\/\/github.com\/lefticus\/cppbestpractices<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[4]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Learning C++ Best Practices: <em>http:\/\/shop.oreilly.com\/product\/0636920049814.do<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[5]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">GitHub: <em>https:\/\/github.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[6]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Bitbucket: <em>https:\/\/bitbucket.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[7]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">SourceForge: <em>http:\/\/sourceforge.net\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[8]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">GitLab: <em>https:\/\/gitlab.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[9]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Visual Studio Online: <em>https:\/\/visualstudio.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[10]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">CMake: <em>http:\/\/www.cmake.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[11]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u5ef6\u4f38\u9605\u8bfb: <em>https:\/\/lefticus.gitbooks.io\/cpp-best-practices\/content\/10-Further_Reading.md<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[12]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Waf: <em>https:\/\/waf.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[13]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">FASTBuild: <em>http:\/\/www.fastbuild.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[14]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Ninja: <em>https:\/\/ninja-build.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[15]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Bazel: <em>http:\/\/bazel.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[16]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Buck: <em>http:\/\/buckbuild.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[17]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">gyp: <em>https:\/\/chromium.googlesource.com\/external\/gyp\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[18]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">maiken: <em>https:\/\/github.com\/Dekken\/maiken<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[19]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Qt Build Suite: <em>http:\/\/doc.qt.io\/qbs\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[20]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">meson: <em>http:\/\/mesonbuild.com\/index.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[21]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">premake: <em>https:\/\/premake.github.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[22]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Conan: <em>https:\/\/www.conan.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[23]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">hunter: <em>https:\/\/github.com\/ruslo\/hunter<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[24]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">qpm: <em>https:\/\/www.qpm.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[25]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">build2: <em>https:\/\/build2.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[26]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Buckaroo: <em>https:\/\/buckaroo.pm\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[27]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Vcpkg: <em>https:\/\/github.com\/microsoft\/vcpkg<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[28]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Travis CI: <em>http:\/\/travis-ci.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[29]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">AppVeyor: <em>http:\/\/www.appveyor.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[30]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Hudson CI: <em>http:\/\/hudson-ci.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[31]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Jenkins CI: <em>https:\/\/jenkins-ci.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[32]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">TeamCity: <em>https:\/\/www.jetbrains.com\/teamcity<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[33]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Decent CI: <em>https:\/\/github.com\/lefticus\/decent_ci<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[34]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">ChaiScript: <em>http:\/\/chaiscript.com\/ChaiScript-BuildResults\/full_dashboard.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[35]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Visual Studio Online: <em>https:\/\/visualstudio.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[36]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">GitLab: <em>https:\/\/gitlab.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[37]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Coverity Scan: <em>https:\/\/scan.coverity.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[38]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u6267\u884c\u6807\u51c6\u4e00\u81f4\u6027: <em>https:\/\/docs.microsoft.com\/en-us\/cpp\/build\/reference\/permissive-standards-conformance<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[39]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Build EAR: <em>https:\/\/github.com\/rizsotto\/Bear<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[40]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u6b63\u5e38\u7f16\u8bd1\u671f\u95f4\u8c03\u7528<code style=\"overflow-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin-right: 2px; margin-left: 2px; background-color: rgba(27, 31, 35, 0.05); font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #ff6441;\">clang-tidy<\/code>: <em>https:\/\/cmake.org\/cmake\/help\/latest\/prop_tgt\/LANG_CLANG_TIDY.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[41]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">include-what-you-use: <em>https:\/\/github.com\/include-what-you-use<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[42]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u793a\u4f8b\u7ed3\u679c: <em>https:\/\/github.com\/ChaiScript\/ChaiScript\/commit\/c0bf6ee99dac14a19530179874f6c95255fde173<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[43]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">clang-modernize: <em>http:\/\/clang.llvm.org\/extra\/clang-modernize.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[44]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u793a\u4f8b\u7ed3\u679c: <em>https:\/\/github.com\/ChaiScript\/ChaiScript\/commit\/6eab8ddfe154a4ebbe956a5165b390ee700fae1b<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[45]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">clang-check: <em>http:\/\/clang.llvm.org\/docs\/ClangCheck.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[46]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">clang-tidy: <em>http:\/\/clang.llvm.org\/extra\/clang-tidy.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[47]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Coverity: <em>https:\/\/scan.coverity.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[48]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Travis CI: <em>http:\/\/travis-ci.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[49]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">AppVeyor: <em>http:\/\/www.appveyor.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[50]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">PVS-Studio: <em>http:\/\/www.viva64.com\/en\/pvs-studio\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[51]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Cppcheck: <em>http:\/\/cppcheck.sourceforge.net\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[52]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">cppclean: <em>https:\/\/github.com\/myint\/cppclean<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[53]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">CppDepend: <em>https:\/\/www.cppdepend.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[54]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u901a\u8fc7CMake\u4f7f\u7528: <em>http:\/\/garykramlich.blogspot.com\/2011\/10\/using-scan-build-from-clang-with-cmake.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[55]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u57fa\u4e8ellvm\u7684\u5de5\u5177: <em>https:\/\/lefticus.gitbooks.io\/cpp-best-practices\/content\/02-Use_the_Tools_Available.html#llvm-based-tools<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[56]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">CodeChecker: <em>https:\/\/github.com\/Ericsson\/CodeChecker<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[57]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Clang Power Tools: <em>https:\/\/clangpowertools.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[58]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u547d\u4ee4\u884c\u9009\u9879: <em>http:\/\/msdn.microsoft.com\/en-us\/library\/ms173498.aspx<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[59]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Flint: <em>https:\/\/github.com\/facebook\/flint<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[60]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Flint++: <em>https:\/\/github.com\/L2Program\/FlintPlusPlus<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[61]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">OCLint: <em>http:\/\/oclint.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[62]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">JetBrains: <em>https:\/\/www.jetbrains.com\/cpp\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[63]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Cevelop: <em>https:\/\/www.cevelop.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[64]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">clazy: <em>https:\/\/github.com\/KDE\/clazy<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[65]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">IKOS: <em>https:\/\/ti.arc.nasa.gov\/opensource\/ikos\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[66]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Github: <em>https:\/\/github.com\/NASA-SW-VnV\/ikos<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[67]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Codecov: <em>https:\/\/codecov.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[68]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Coveralls: <em>https:\/\/coveralls.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[69]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">LCOV: <em>http:\/\/ltp.sourceforge.net\/coverage\/lcov.php<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[70]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Gcovr: <em>http:\/\/gcovr.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[71]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">kcov: <em>http:\/\/simonkagstrom.github.io\/kcov\/index.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[72]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">OpenCppCoverage: <em>https:\/\/github.com\/OpenCppCoverage\/OpenCppCoverage<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[73]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Valgrind: <em>http:\/\/www.valgrind.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[74]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">american fuzzy lop: <em>http:\/\/lcamtuf.coredump.cx\/afl\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[75]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">LibFuzzer: <em>http:\/\/llvm.org\/docs\/LibFuzzer.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[76]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">KLEE: <em>http:\/\/klee.github.io\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[77]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Dextool Mutate: <em>https:\/\/github.com\/joakim-brannstrom\/dextool\/tree\/master\/plugin\/mutate<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[78]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">MuCPP: <em>https:\/\/neptuno.uca.es\/redmine\/projects\/mucpp-mutation-tool\/wiki<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[79]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">mull: <em>https:\/\/github.com\/mull-project\/mull<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[80]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">CCMutator: <em>https:\/\/github.com\/markus-kusano\/CCMutator<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[81]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Krister\u7684\u535a\u5ba2\u6587\u7ae0: <em>https:\/\/kristerw.blogspot.se\/2018\/03\/detecting-incorrect-c-stl-usage.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[82]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u6cc4\u9732\u5230\u5176\u4ed6\u4ee3\u7801\u4e2d: <em>http:\/\/www.forwardscattering.org\/post\/48<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[83]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Google Test: <em>https:\/\/github.com\/google\/googletest<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[84]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Catch: <em>https:\/\/github.com\/philsquared\/Catch<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[85]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">CppUTest: <em>https:\/\/github.com\/cpputest\/cpputest<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[86]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Boost.Test: <em>http:\/\/www.boost.org\/doc\/libs\/release\/libs\/test\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[87]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">uftrace: <em>https:\/\/github.com\/namhyung\/uftrace<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[88]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">rr: <em>http:\/\/rr-project.org\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[89]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Lizard: <em>http:\/\/www.lizard.ws\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[90]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Metrix++: <em>http:\/\/metrixplusplus.sourceforge.net\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[91]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">ABI Compliance Checker: <em>http:\/\/ispras.linuxbase.org\/index.php\/ABI_compliance_checker<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[92]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Customizable Naming Convention Checker: <em>https:\/\/github.com\/mapbox\/cncc<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[93]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">ClangFormat: <em>http:\/\/clang.llvm.org\/docs\/ClangFormat.html<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[94]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">\u5173\u4e8eclang-format\u7684\u7cfb\u5217\u6587\u7ae0: <em>https:\/\/engineering.mongodb.com\/post\/succeeding-with-clangformat-part-1-pitfalls-and-planning\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[95]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">SourceMeter: <em>https:\/\/www.sourcemeter.com\/<\/em><\/p>\n<p><span style=\"display: flex;\"><span style=\"display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; opacity: 0.6; line-height: 26px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; color: #999999;\">[96]<\/span><\/span><\/p>\n<p style=\"display: inline; width: 90%; line-height: 26px; word-break: break-all; color: #999999;\">Bloaty McBloatface: <em>https:\/\/github.com\/google\/bloaty<\/em><\/p>\n<p>\u00a0<\/p>\n<\/section>\n<p><span style=\"font-size: 15px; display: block; text-align: center; margin-top: 50px; color: #999; border-bottom: 1px solid #eee;\">&#8211; END &#8211;<\/span><\/p>\n<\/section>\n<section class=\"mp_profile_iframe_wrp\"><\/section>\n<\/div>\n\n\n<p>\u8f6c\u81ea\uff1ahttps:\/\/mp.weixin.qq.com\/s\/_ZC1t0wMu8fjTq-1HgKrrA<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7cfb\u5217\u662f\u5f00\u6e90\u4e66C++ Best Practises[1]\u7684\u4e2d\u6587\u7248\uff0c\u5168\u4e66\u4ece\u5de5\u5177\u3001\u4ee3\u7801\u98ce\u683c\u3001\u5b89\u5168\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u79fb &hellip; <a href=\"http:\/\/www.zhushiyao.com\/?p=111639\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cC++\u6700\u4f73\u5b9e\u8df5 | 1. \u5de5\u5177\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[899],"_links":{"self":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/111639"}],"collection":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=111639"}],"version-history":[{"count":2,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/111639\/revisions"}],"predecessor-version":[{"id":111642,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/111639\/revisions\/111642"}],"wp:attachment":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=111639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=111639"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=111639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}