{"id":256424,"date":"2015-04-30T16:55:03","date_gmt":"2015-04-30T12:55:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=256424"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=256424","title":{"rendered":"\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 FreeCAD \u0438 \u0435\u0433\u043e \u00ab\u043d\u0435\u0445\u043e\u0440\u043e\u0448\u0438\u0435\u00bb \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438"},"content":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/bf1\/f1b\/b5f\/bf1f1bb5f9eba10d734bbec826995516.png\" \/><\/div>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u043e\u0431\u0437\u043e\u0440 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 FreeCAD, \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u0412\u0435\u0441\u043e\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438\u0448\u043b\u0430\u0441\u044c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u0430\u0451\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u043b\u044e\u0441\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0441\u0444\u0435\u0440\u0435 Open Source. \u0418 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u043d\u0435 \u043f\u043e\u0432\u043e\u0434 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0438\u0445. \u041d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c \u043a\u043e\u0434\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0436\u0438\u0442\u044c \u0431\u0430\u0433\u0438. \u0418\u0445 \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0438 \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u043b\u0443\u0447\u0448\u0438\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432\u0430\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/go.php?url=1534\">FreeCAD<\/a> \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0447\u0435\u0440\u0442\u0435\u0436\u0438 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0439. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a FreeCAD \u042e\u0440\u0433\u0435\u043d \u0420\u0438\u0433\u0435\u043b\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0446\u0438\u0438 DaimlerChrysler, \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438. \u0412 \u0441\u0440\u0435\u0434\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0440\u044f\u0434\u0430 \u043e\u0442\u0440\u0430\u0441\u043b\u0435\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0421\u0410\u041f\u0420 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Open Source, \u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u00ab\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/www.viva64.com\/ru\/pvs-studio\/\">PVS-Studio<\/a> \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u043b\u0443\u0447\u0448\u0435. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u00ab\u0433\u043b\u044e\u043a\u0430\u043c\u0438\u00bb \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0442\u043e\u0447\u043a\u0443 \u0438\u043b\u0438 \u0432\u044b\u043f\u0440\u044f\u043c\u0438\u0442\u044c \u043b\u0438\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u044a\u0435\u0437\u0436\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435.<br \/>  <a name=\"habracut\"><\/a>   <\/p>\n<h2>\u0427\u0442\u043e \u0441 PVS-Studio?!<\/h2>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/aae\/6a2\/029\/aae6a20299baf1390875d55b7bb27858.png\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0435\u043a\u0442 FreeCAD \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c, \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435. \u041c\u043d\u0435 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0442\u0440\u0443\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f Visual Studio Community 2013 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 PVS-Studio. \u041d\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435 \u0437\u0430\u0434\u0430\u043b\u0430\u0441\u044c\u2026<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/b56\/808\/ddb\/b56808ddb92a6715cc58ca2ded75122b.png\" \/><\/div>\n<p>  \u041f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0435 \u0441\u0442\u0430\u043b\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c <a href=\"http:\/\/www.viva64.com\/ru\/t\/0076\/\">\u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/a> \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c *.i. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0443\u043c\u0435\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043d\u043e \u0442\u0443\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432:  <\/p>\n<pre><code class=\"cpp\">\/FI&quot;Drawing.dir\/Debug\/\/Drawing_d.pch&quot;<\/code><\/pre>\n<p>  \u0424\u043b\u0430\u0433 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 <a href=\"http:\/\/www.viva64.com\/go.php?url=1570\">\/FI (Name Forced Include File)<\/a>, \u043a\u0430\u043a \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 #include, \u0441\u043b\u0443\u0436\u0430\u0442 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u0430\u0439\u043b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u042d\u0442\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0447\u0443\u0434\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 Visual C++ \u0442\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u0442\u043e Visual C++ \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435. \u0410 \u0432\u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 PVS-Studio \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Clang, \u043d\u0435\u0434\u043e\u043b\u0433\u043e \u0434\u0443\u043c\u0430\u044f, \u0432\u043a\u043b\u044e\u0447\u0438\u043b *.i \u0444\u0430\u0439\u043b \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. PVS-Studio \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0432\u043e\u0445\u0430 \u0438 \u0441\u043e\u0448\u0451\u043b \u0441 \u0443\u043c\u0430.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0439, \u043e \u0447\u0435\u043c \u0438\u0434\u0451\u0442 \u0440\u0435\u0447\u044c, \u0432\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u0440\u043f\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Clang \u0444\u0430\u0439\u043b\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/b42\/2ca\/b4a\/b422cab4a86d57b0047ebf20d196093d.png\" \/><\/div>\n<p>  \u041f\u0440\u043e\u0435\u043a\u0442 \u0431\u044b\u043b \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430, \u043d\u043e \u0445\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<h2>FreeCAD<\/h2>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0435\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d41\/e16\/fe8\/d41e16fe8d628e4668044a507f00e2dc.png\"\/><\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0090\/\">V501<\/a> There are identical sub-expressions &#8216;surfaceTwo-&gt;IsVRational()&#8217; to the left and to the right of the &#8216;!=&#8217; operator. modelrefine.cpp 780  <\/p>\n<pre><code class=\"cpp\">bool FaceTypedBSpline::isEqual(const TopoDS_Face &amp;faceOne,                                const TopoDS_Face &amp;faceTwo) const {   ....   if (surfaceOne-&gt;IsURational() != surfaceTwo-&gt;IsURational())     return false;   if (surfaceTwo-&gt;IsVRational() != surfaceTwo-&gt;IsVRational())\/\/&lt;=     return false;   if (surfaceOne-&gt;IsUPeriodic() != surfaceTwo-&gt;IsUPeriodic())     return false;   if (surfaceOne-&gt;IsVPeriodic() != surfaceTwo-&gt;IsVPeriodic())     return false;   if (surfaceOne-&gt;IsUClosed() != surfaceTwo-&gt;IsUClosed())     return false;   if (surfaceOne-&gt;IsVClosed() != surfaceTwo-&gt;IsVClosed())     return false;   if (surfaceOne-&gt;UDegree() != surfaceTwo-&gt;UDegree())     return false;   if (surfaceOne-&gt;VDegree() != surfaceTwo-&gt;VDegree())     return false;   .... }<\/code><\/pre>\n<p>  \u041f\u043e \u043b\u0435\u0432\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435 \u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u00absurfaceTwo\u00bb \u0432\u043c\u0435\u0441\u0442\u043e \u00absurfaceOne\u00bb \u0438\u0437-\u0437\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \u0434\u0435\u043b\u0430\u0442\u044c copy-paste \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u0438 \u0434\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043c\u044b \u0442\u043e\u0436\u0435 \u0434\u043e\u0439\u0434\u0451\u043c =).<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0106\/\">V517<\/a> The use of &#8216;if (A) {&#8230;} else if (A) {&#8230;}&#8217; pattern was detected. There is a probability of logical error presence. Check lines: 162, 164. taskpanelview.cpp 162  <\/p>\n<pre><code class=\"cpp\">\/\/\/ @cond DOXERR void TaskPanelView::OnChange(....) {   std::string temp;    if (Reason.Type == SelectionChanges::AddSelection) {   }   else if (Reason.Type == SelectionChanges::ClrSelection) {   }   else if (Reason.Type == SelectionChanges::RmvSelection) {   }   else if (Reason.Type == SelectionChanges::RmvSelection) {   } }<\/code><\/pre>\n<p>  \u0427\u0435\u0433\u043e \u044d\u0442\u043e \u043c\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0449\u0451 \u043f\u0438\u0448\u0435\u0442\u0441\u044f? \u0410 \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443: \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0106\/\">V517<\/a> The use of &#8216;if (A) {&#8230;} else if (A) {&#8230;}&#8217; pattern was detected. There is a probability of logical error presence. Check lines: 1465, 1467. application.cpp 1465  <\/p>\n<pre><code class=\"cpp\">pair&lt;string, string&gt; customSyntax(const string&amp; s) { #if defined(FC_OS_MACOSX)     if (s.find(&quot;-psn_&quot;) == 0)         return make_pair(string(&quot;psn&quot;), s.substr(5)); #endif     if (s.find(&quot;-display&quot;) == 0)         return make_pair(string(&quot;display&quot;), string(&quot;null&quot;));     else if (s.find(&quot;-style&quot;) == 0)         return make_pair(string(&quot;style&quot;), string(&quot;null&quot;));     ....     else if (s.find(&quot;-button&quot;) == 0)                        \/\/&lt;==         return make_pair(string(&quot;button&quot;), string(&quot;null&quot;)); \/\/&lt;==     else if (s.find(&quot;-button&quot;) == 0)                        \/\/&lt;==         return make_pair(string(&quot;button&quot;), string(&quot;null&quot;)); \/\/&lt;==     else if (s.find(&quot;-btn&quot;) == 0)         return make_pair(string(&quot;btn&quot;), string(&quot;null&quot;));     .... }<\/code><\/pre>\n<p>  \u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0434\u0435\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0435 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b \u043e\u0434\u043d\u0443 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0438\u0441\u043a \u0432\u0441\u0435\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a. <\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0106\/\">V517<\/a> The use of &#8216;if (A) {&#8230;} else if (A) {&#8230;}&#8217; pattern was detected. There is a probability of logical error presence. Check lines: 191, 199. blendernavigationstyle.cpp 191  <\/p>\n<pre><code class=\"cpp\">SbBool BlenderNavigationStyle::processSoEvent(....) {   ....   else if (!press &amp;&amp;    (this-&gt;currentmode == NavigationStyle::DRAGGING)) {      \/\/&lt;==       SbTime tmp = (ev-&gt;getTime() - this-&gt;centerTime);       float dci = (float)QApplication::....;       if (tmp.getValue() &lt; dci) {           newmode = NavigationStyle::ZOOMING;       }       processed = TRUE;   }   else if (!press &amp;&amp;    (this-&gt;currentmode == NavigationStyle::DRAGGING)) {      \/\/&lt;==       this-&gt;setViewing(false);       processed = TRUE;   }   .... }<\/code><\/pre>\n<p>  \u0410 \u0432\u043e\u0442, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u0440\u0438 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043c\u044b\u0448\u043a\u043e\u0439, \u0430 \u0442\u0443\u0442 \u0442\u0430\u043a\u043e\u0439 \u043b\u044f\u043f: \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c. <\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0112\/\">V523<\/a> The &#8216;then&#8217; statement is equivalent to the &#8216;else&#8217; statement. viewproviderfemmesh.cpp 695<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/3d6\/c30\/25c\/3d6c3025ca403eb62fdbfe530e7510a6.png\" \/><\/div>\n<p>  <\/p>\n<pre><code class=\"cpp\">inline void insEdgeVec(std::map&lt;int,std::set&lt;int&gt; &gt; &amp;map,                        int n1, int n2) {   if(n1&lt;n2)     map[n2].insert(n1);   else     map[n2].insert(n1); };<\/code><\/pre>\n<p>  \u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041c\u043e\u0436\u0435\u0442 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0442\u0430\u043a \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c:  <\/p>\n<pre><code class=\"cpp\">inline void insEdgeVec(std::map&lt;int,std::set&lt;int&gt; &gt; &amp;map,                        int n1, int n2) {   if(n1&lt;n2)     map[n2].insert(n1);   else     map[n1].insert(n2); };<\/code><\/pre>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0441\u0442\u0440\u043e\u043a\u0443? \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443: <a href=\"http:\/\/www.viva64.com\/ru\/b\/0260\/\">\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>. \u041d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e. \u041d\u0435 \u0437\u043d\u0430\u044e :).<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0168\/\">V570<\/a> The &#8216;this-&gt;quat[3]&#8217; variable is assigned to itself. rotation.cpp 260  <\/p>\n<pre><code class=\"cpp\">Rotation &amp; Rotation::invert(void) {   this-&gt;quat[0] = -this-&gt;quat[0];   this-&gt;quat[1] = -this-&gt;quat[1];   this-&gt;quat[2] = -this-&gt;quat[2];   this-&gt;quat[3] =  this-&gt;quat[3]; \/\/&lt;==   return *this; }<\/code><\/pre>\n<p>  \u0415\u0449\u0451 \u043e \u00ab\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445\u00bb. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u043e\u0440\u043e\u0436\u0438\u043b\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435\u0442 \u0437\u043d\u0430\u043a\u0430 \u043c\u0438\u043d\u0443\u0441\u0430. \u041d\u043e \u0442\u0443\u0442 \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0176\/\">V576<\/a> Incorrect format. A different number of actual arguments is expected while calling &#8216;fprintf&#8217; function. Expected: 2. Present: 3. memdebug.cpp 222  <\/p>\n<pre><code class=\"cpp\">int __cdecl MemDebug::sAllocHook(....) {   ....   if ( pvData != NULL )     fprintf( logFile, &quot; at %p\\n&quot;, pvData );   else     fprintf( logFile, &quot;\\n&quot;, pvData );         \/\/&lt;==   .... }<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0206\/\">V596<\/a> The object was created but it is not being used. The &#8216;throw&#8217; keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 231<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/1ec\/b13\/763\/1ecb137632c9a8402813449e8149685c.png\" \/><\/div>\n<p>  <\/p>\n<pre><code class=\"cpp\">void WaypointPy::setTool(Py::Int arg) {   if((int)arg.operator long() &gt; 0)     getWaypointPtr()-&gt;Tool = (int)arg.operator long();   else      Base::Exception(&quot;negativ tool not allowed!&quot;); }<\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u041f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u00abthrow\u00bb:  <\/p>\n<pre><code class=\"cpp\">void WaypointPy::setTool(Py::Int arg) {   if((int)arg.operator long() &gt; 0)     getWaypointPtr()-&gt;Tool = (int)arg.operator long();   else      throw Base::Exception(&quot;negativ tool not allowed!&quot;); }<\/code><\/pre>\n<p>  \u0415\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442:<\/p>\n<ul>\n<li>V596 The object was created but it is not being used. The &#8216;throw&#8217; keyword could be missing: throw Exception(FOO); application.cpp 274<\/li>\n<li>V596 The object was created but it is not being used. The &#8216;throw&#8217; keyword could be missing: throw Exception(FOO); fileinfo.cpp 519<\/li>\n<li>V596 The object was created but it is not being used. The &#8216;throw&#8217; keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 244<\/li>\n<li>V596 The object was created but it is not being used. The &#8216;throw&#8217; keyword could be missing: throw Exception(FOO); sketch.cpp 185<\/li>\n<\/ul>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0210\/\">V599<\/a> The virtual destructor is not present, although the &#8216;Curve&#8217; class contains virtual functions. constraints.cpp 1442  <\/p>\n<pre><code class=\"cpp\">class Curve { \/\/a base class for all curve-based \/\/objects (line, circle\/arc, ellipse\/arc)  \/\/&lt;== public:   virtual DeriVector2 CalculateNormal(....) = 0;   virtual int PushOwnParams(VEC_pD &amp;pvec) = 0;   virtual void ReconstructOnNewPvec (....) = 0;   virtual Curve* Copy() = 0; };  class Line: public Curve    \/\/&lt;== { public:   Line(){}   Point p1;   Point p2;   DeriVector2 CalculateNormal(Point &amp;p, double* derivparam = 0);   virtual int PushOwnParams(VEC_pD &amp;pvec);   virtual void ReconstructOnNewPvec (VEC_pD &amp;pvec, int &amp;cnt);   virtual Line* Copy(); };<\/code><\/pre>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435:  <\/p>\n<pre><code class=\"cpp\">class ConstraintAngleViaPoint : public Constraint { private:   inline double* angle() { return pvec[0]; };   Curve* crv1;  \/\/&lt;==   Curve* crv2;  \/\/&lt;==   .... };  ConstraintAngleViaPoint::~ConstraintAngleViaPoint() {   delete crv1; crv1 = 0; \/\/&lt;==   delete crv2; crv2 = 0; \/\/&lt;== } <\/code><\/pre>\n<p>  \u0412 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435 \u00abCurve\u00bb \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0418 \u043e\u043d \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c! \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0435 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0447\u0438\u0449\u0435\u043d\u044b \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441. \u0421\u0443\u0434\u044f \u043f\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044e, \u0443 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043c\u043d\u043e\u0433\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u00abLine\u00bb \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0276\/\">V655<\/a> The strings were concatenated but are not utilized. Consider inspecting the expression. propertyitem.cpp 1013  <\/p>\n<pre><code class=\"cpp\">void PropertyVectorDistanceItem::setValue(const QVariant&amp; variant) {   if (!variant.canConvert&lt;Base::Vector3d&gt;())       return;   const Base::Vector3d&amp; value = variant.value&lt;Base::Vector3d&gt;();    Base::Quantity q = Base::Quantity(value.x, Base::Unit::Length);   QString unit = QString::fromLatin1(&quot;('%1 %2'&quot;).arg(....;   q = Base::Quantity(value.y, Base::Unit::Length);   unit + QString::fromLatin1(&quot;'%1 %2'&quot;).arg(....;   \/\/&lt;==    setPropertyValue(unit); }<\/code><\/pre>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0433\u043b\u044f\u0434\u0435\u0442\u044c\u0441\u044f, \u0442\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0443\u0442 \u0445\u043e\u0442\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;+=&#8217; \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0422\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0438\u043c\u0435\u043b \u0431\u044b \u0441\u043c\u044b\u0441\u043b.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0205\/\">V595<\/a> The &#8216;root&#8217; pointer was utilized before it was verified against nullptr. Check lines: 293, 294. view3dinventorexamples.cpp 293  <\/p>\n<pre><code class=\"cpp\">void LightManip(SoSeparator * root) {    SoInput in;   in.setBuffer((void *)scenegraph, std::strlen(scenegraph));   SoSeparator * _root = SoDB::readAll( &amp;in );   root-&gt;addChild(_root);       \/\/&lt;==   if ( root == NULL ) return;  \/\/&lt;==   root-&gt;ref();   .... }<\/code><\/pre>\n<p>  \u041e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c:<\/p>\n<ul>\n<li>V595 The &#8216;cam&#8217; pointer was utilized before it was verified against nullptr. Check lines: 1049, 1056. viewprovider.cpp 1049<\/li>\n<li>V595 The &#8216;viewProviderRoot&#8217; pointer was utilized before it was verified against nullptr. Check lines: 187, 188. taskcheckgeometry.cpp 187<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 209, 210. viewproviderrobotobject.cpp 209<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 222, 223. viewproviderrobotobject.cpp 222<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 235, 236. viewproviderrobotobject.cpp 235<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 248, 249. viewproviderrobotobject.cpp 248<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 261, 262. viewproviderrobotobject.cpp 261<\/li>\n<li>V595 The &#8216;node&#8217; pointer was utilized before it was verified against nullptr. Check lines: 274, 275. viewproviderrobotobject.cpp 274<\/li>\n<li>V595 The &#8216;owner&#8217; pointer was utilized before it was verified against nullptr. Check lines: 991, 995. propertysheet.cpp 991<\/li>\n<\/ul>\n<p>  <\/p>\n<h2>Open CASCADE library<\/h2>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0108\/\">V519<\/a> The &#8216;myIndex[1]&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 60, 61. brepmesh_pairofindex.hxx 61  <\/p>\n<pre><code class=\"cpp\">\/\/! Prepends index to the pair. inline void Prepend(const Standard_Integer theIndex) {   if (myIndex[1] &gt;= 0)     Standard_OutOfRange::Raise (&quot;BRepMesh_PairOfIndex....&quot;);    myIndex[1] = myIndex[0];   myIndex[1] = theIndex; }<\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 &#8216;myIndex&#8217; \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 1. \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0445\u043e\u0442\u0435\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cpp\">myIndex[1] = myIndex[0]; myIndex[0] = theIndex;<\/code><\/pre>\n<p>  <\/p>\n<h2>SALOME Smesh Module<\/h2>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0090\/\">V501<\/a> There are identical sub-expressions &#8216;0 &lt;= theParamsHint.Y()&#8217; to the left and to the right of the &#8216;&amp;&amp;&#8217; operator. smesh_block.cpp 661  <\/p>\n<pre><code class=\"cpp\">bool SMESH_Block::ComputeParameters(const gp_Pnt&amp; thePoint,                                     gp_XYZ&amp;       theParams,                                     const int     theShapeID,                                     const gp_XYZ&amp; theParamsHint) {   ....   bool hasHint =    ( 0 &lt;= theParamsHint.X() &amp;&amp; theParamsHint.X() &lt;= 1 &amp;&amp;      0 &lt;= theParamsHint.Y() &amp;&amp; theParamsHint.Y() &lt;= 1 &amp;&amp;      0 &lt;= theParamsHint.Y() &amp;&amp; theParamsHint.Y() &lt;= 1 );  \/\/&lt;==   .... }<\/code><\/pre>\n<p>  \u0422\u0443\u0442 \u044f\u0432\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 .Z(). \u0422\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443 \u043a\u043b\u0430\u0441\u0441\u0430 \u0435\u0441\u0442\u044c, \u043e\u043d \u0434\u0430\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00abgp_XYZ\u00bb.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0092\/\">V503<\/a> This is a nonsensical comparison: pointer &lt; 0. driverdat_r_smds_mesh.cpp 55  <\/p>\n<pre><code class=\"cpp\">Driver_Mesh::Status DriverDAT_R_SMDS_Mesh::Perform() {   ....   FILE* aFileId = fopen(file2Read, &quot;r&quot;);   if (aFileId &lt; 0) {     fprintf(stderr, &quot;....&quot;, file2Read);     return DRS_FAIL;   }   .... }<\/code><\/pre>\n<p>  \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0443\u043b\u044f. \u0414\u0430\u0436\u0435 \u0432 \u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 fopen(), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043a\u043d\u0438\u0433\u0430\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442 \u0441 NULL \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e == \u0438\u043b\u0438 !=.<\/p>\n<p>  \u042f \u0443\u0434\u0438\u0432\u0438\u043b\u0441\u044f, \u043a\u0430\u043a \u043c\u043e\u0433 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434. \u041d\u043e \u043c\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u0433\u0430 \u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0430\u0440\u043f\u043e\u0432 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435 \u043a\u043e\u0434\u0430, \u0433\u0434\u0435 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"http:\/\/www.viva64.com\/go.php?url=1536\">open()<\/a>. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 -1 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 &lt;0 \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u043c\u0435\u0441\u0442\u043d\u043e. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043b\u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442 \u043d\u0430 fopen(), \u043d\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e:<\/p>\n<ul>\n<li>V503 This is a nonsensical comparison: pointer &lt; 0. driverdat_w_smds_mesh.cpp 41<\/li>\n<\/ul>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0155\/\">V562<\/a> It&#8217;s odd to compare a bool type value with a value of 12: !myType == SMESHDS_MoveNode. smeshds_command.cpp 75  <\/p>\n<pre><code class=\"cpp\">class SMESHDS_EXPORT SMESHDS_Command {   ....   private:   SMESHDS_CommandType myType;   .... };  enum SMESHDS_CommandType {    SMESHDS_AddNode,   SMESHDS_AddEdge,   SMESHDS_AddTriangle,   SMESHDS_AddQuadrangle,   .... };  void SMESHDS_Command::MoveNode(....) {   if (!myType == SMESHDS_MoveNode)  \/\/&lt;==   {     MESSAGE(&quot;SMESHDS_Command::MoveNode : Bad Type&quot;);     return;   }   .... }<\/code><\/pre>\n<p>  \u0415\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u00abSMESHDS_CommandType\u00bb, \u0432 \u043d\u0451\u043c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439, \u043d\u043e \u0447\u0442\u043e \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u043d\u0430\u043a \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u044f?? \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0439:  <\/p>\n<pre><code class=\"cpp\">if (myType != SMESHDS_MoveNode)  \/\/&lt;== {   MESSAGE(&quot;SMESHDS_Command::MoveNode : Bad Type&quot;);   return; }<\/code><\/pre>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0431\u044b\u043b\u0430 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0435\u0449\u0451 \u0432 20 \u043c\u0435\u0441\u0442, \u0432\u043e\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a: <a href=\"http:\/\/www.viva64.com\/external-pictures\/txt\/FreeCAD_V562.txt\">FreeCAD_V562.txt<\/a>.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0162\/\">V567<\/a> Undefined behavior. The order of argument evaluation is not defined for &#8216;splice&#8217; function. The &#8216;outerBndPos&#8217; variable is modified while being used twice between sequence points. smesh_pattern.cpp 4260  <\/p>\n<pre><code class=\"cpp\">void SMESH_Pattern::arrangeBoundaries (....) {   ....   if ( outerBndPos != boundaryList.begin() )       boundaryList.splice( boundaryList.begin(),                            boundaryList,                            outerBndPos,     \/\/&lt;==                            ++outerBndPos ); \/\/&lt;== }<\/code><\/pre>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432. \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442. \u041d\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0435\u0441\u0442\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0430\u043d\u043e \u043d\u0435 \u0437\u0440\u044f. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 C++ \u043d\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043a\u0430\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>  \u041f\u043e\u044f\u0441\u043d\u044e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:  <\/p>\n<pre><code class=\"cpp\">int a = 5; printf(&quot;%i, %i&quot;, a, ++a);<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u00ab5, 6\u00bb, \u0442\u0430\u043a \u0438 \u00ab6, 6. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0289\/\">V663<\/a> Infinite loop is possible. The &#8216;cin.eof()&#8217; condition is insufficient to break from the loop. Consider adding the &#8216;cin.fail()&#8217; function call to the conditional expression. unv_utilities.hxx 63  <\/p>\n<pre><code class=\"cpp\">inline bool beginning_of_dataset(....) {   ....   while( ((olds != &quot;-1&quot;) || (news == &quot;-1&quot;) ) &amp;&amp; !in_file.eof() ){     olds = news;     in_file &gt;&gt; news;   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043b\u0430\u0441\u0441\u043e\u043c &#8216;std::istream&#8217; \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#8216;eof()&#8217; \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u044f \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#8216;eof()&#8217; \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8216;false&#8217;. \u0414\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 &#8216;fail()&#8217;.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0205\/\">V595<\/a> The &#8216;anElem&#8217; pointer was utilized before it was verified against nullptr. Check lines: 1950, 1951. smesh_controls.cpp 1950  <\/p>\n<pre><code class=\"cpp\">bool ElemGeomType::IsSatisfy( long theId ) {   if (!myMesh) return false;   const SMDS_MeshElement* anElem = myMesh-&gt;FindElement( theId );   const SMDSAbs_ElementType anElemType = anElem-&gt;GetType();   if (!anElem || (myType != SMDSAbs_All &amp;&amp; anElemType != myType))     return false;   const int aNbNode = anElem-&gt;NbNodes();   .... }<\/code><\/pre>\n<p>  \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u201eanElem\u201c \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0415\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435:<\/p>\n<ul>\n<li>V595 The &#8216;elem&#8217; pointer was utilized before it was verified against nullptr. Check lines: 3989, 3990. smesh_mesheditor.cpp 3989<\/li>\n<li>V595 The &#8216;anOldGrp&#8217; pointer was utilized before it was verified against nullptr. Check lines: 1488, 1489. smesh_mesh.cpp 1488<\/li>\n<li>V595 The &#8216;aFaceSubmesh&#8217; pointer was utilized before it was verified against nullptr. Check lines: 496, 501. smesh_pattern.cpp 496<\/li>\n<\/ul>\n<p>  <\/p>\n<h2>Boost C++ Libraries<\/h2>\n<p>  <a href=\"http:\/\/www.viva64.com\/ru\/d\/0162\/\">V567<\/a> Undefined behavior. The &#8216;this-&gt;n_&#8217; variable is modified while being used twice between sequence points. regex_token_iterator.hpp 63  <\/p>\n<pre><code class=\"cpp\">template&lt;typename BidiIter&gt; struct regex_token_iterator_impl   : counted_base&lt;regex_token_iterator_impl&lt;BidiIter&gt; &gt; {   ....   if(0 != (++this-&gt;n_ %= (int)this-&gt;subs_.size()) || ....   {     ....   }   .... }<\/code><\/pre>\n<p>  \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 %= \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u043c. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043d\u0435\u0442, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0435\u0437\u0435\u043d\u0438\u044f.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u042d\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e.<\/p>\n<h2>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0441 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434: Svyatoslav Razmyslov. <a href=\"http:\/\/www.viva64.com\/en\/b\/0322\/\">Analyzing FreeCAD&#8217;s Source Code and Its \u201eSick\u201c Dependencies<\/a>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441?<\/b><\/p>\n<div class=\"spoiler_text\">\u0427\u0430\u0441\u0442\u043e \u043a \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0437\u0430\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u043d\u0438\u0445 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0437\u0434\u0435\u0441\u044c: <a href=\"http:\/\/www.viva64.com\/ru\/a\/0085\/\">\u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e PVS-Studio \u0438 CppCat, \u0432\u0435\u0440\u0441\u0438\u044f 2015<\/a>. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c.  <\/div>\n<\/div>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/257079\/\"> http:\/\/habrahabr.ru\/post\/257079\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/bf1\/f1b\/b5f\/bf1f1bb5f9eba10d734bbec826995516.png\" \/><\/div>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u043e\u0431\u0437\u043e\u0440 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 FreeCAD, \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u0412\u0435\u0441\u043e\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438\u0448\u043b\u0430\u0441\u044c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u0430\u0451\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u043b\u044e\u0441\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0441\u0444\u0435\u0440\u0435 Open Source. \u0418 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u043d\u0435 \u043f\u043e\u0432\u043e\u0434 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0438\u0445. \u041d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c \u043a\u043e\u0434\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0436\u0438\u0442\u044c \u0431\u0430\u0433\u0438. \u0418\u0445 \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0438 \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u043b\u0443\u0447\u0448\u0438\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432\u0430\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<p>  <a href=\"http:\/\/www.viva64.com\/go.php?url=1534\">FreeCAD<\/a> \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0447\u0435\u0440\u0442\u0435\u0436\u0438 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0439. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a FreeCAD \u042e\u0440\u0433\u0435\u043d \u0420\u0438\u0433\u0435\u043b\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0446\u0438\u0438 DaimlerChrysler, \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438. \u0412 \u0441\u0440\u0435\u0434\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0440\u044f\u0434\u0430 \u043e\u0442\u0440\u0430\u0441\u043b\u0435\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0421\u0410\u041f\u0420 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Open Source, \u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u00ab\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/www.viva64.com\/ru\/pvs-studio\/\">PVS-Studio<\/a> \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u043b\u0443\u0447\u0448\u0435. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u00ab\u0433\u043b\u044e\u043a\u0430\u043c\u0438\u00bb \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0442\u043e\u0447\u043a\u0443 \u0438\u043b\u0438 \u0432\u044b\u043f\u0440\u044f\u043c\u0438\u0442\u044c \u043b\u0438\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u044a\u0435\u0437\u0436\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-256424","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256424"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256424\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}