{"id":298670,"date":"2020-02-14T09:00:10","date_gmt":"2020-02-14T09:00:10","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=298670"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-02-14T09:00:10","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=298670","title":{"rendered":"\u041d\u043e\u043b\u044c, \u043e\u0434\u0438\u043d, \u0434\u0432\u0430, \u0424\u0440\u0435\u0434\u0434\u0438 \u0437\u0430\u0431\u0435\u0440\u0451\u0442 \u0442\u0435\u0431\u044f"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/488332\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7df\/971\/1f1\/7df9711f1099158d4c7b159f6a5502d5.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1\"><\/div>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0442\u044c \u00ab\u0443\u0436\u0430\u0441\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u0438 \u0442\u0438\u043f\u043e\u0432\u043e\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u0435\u043b 0, 1, 2. \u041d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u044b \u043d\u0430 C, C++, C# \u0438\u043b\u0438 Java. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b 0, 1, 2, \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0424\u0440\u0435\u0434\u0434\u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u0442 \u043a \u0432\u0430\u043c \u043d\u043e\u0447\u044c\u044e \u0432 \u0433\u043e\u0441\u0442\u0438. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0438 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0441 \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u042f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u043c \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044f\u043c \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043b\u044e\u0434\u0438 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438:<\/p>\n<ol>\n<li><a href=\"https:\/\/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><\/li>\n<li><a href=\"https:\/\/www.viva64.com\/ru\/b\/0360\/\">\u0421\u0430\u043c\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 \u043c\u0438\u0440\u0435 C\/C++<\/a><\/li>\n<li><a href=\"https:\/\/www.viva64.com\/ru\/b\/0509\/\">\u0417\u043b\u043e \u0436\u0438\u0432\u0451\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a><\/li>\n<\/ol>\n<p>  \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043d\u0435 \u044f, \u0430 \u043c\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u0433\u0430 \u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432 \u0420\u0430\u0437\u043c\u044b\u0441\u043b\u043e\u0432. \u041e\u043d \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432 \u0441\u0432\u043e\u0438\u0445 <a href=\"https:\/\/www.viva64.com\/ru\/b\/a\/svyatoslav-razmyslov\/\">\u0441\u0442\u0430\u0442\u044c\u044f\u0445<\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432 \u0441\u0432\u043e\u0451\u043c \u0438\u043c\u0435\u043d\u0438 \u0447\u0438\u0441\u043b\u0430 1 \u0438 2. \u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043c\u043d\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438 \u043e\u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043b\u043e\u0434\u043e\u0442\u0432\u043e\u0440\u043d\u043e\u0439. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.viva64.com\/ru\/examples\/\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a<\/a> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0434\u0430, \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043b\u044e\u0434\u0438 \u043f\u0443\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445 0, 1, 2 \u0438\u043b\u0438 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0442\u0430\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430. \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c \u043d\u0438\u0436\u0435. \u042f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432\u0443 \u0437\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438 \u043f\u043e\u0441\u0432\u044f\u0449\u0430\u044e \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0435\u043c\u0443.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cfe\/8e3\/4c6\/cfe8e34c69c04ef441c656ac32cdbbde.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 14\"><\/div>\n<p>  <i>\u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432 \u0420\u0430\u0437\u043c\u044b\u0441\u043b\u043e\u0432, \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/483742\/\">\u043b\u043e\u0432\u0435\u0446<\/a> <a href=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/486706\/\">\u0431\u0430\u0433\u043e\u0432<\/a> \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a.<\/i><\/p>\n<p>  \u041a\u0430\u043a\u043e\u0432\u0430 \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438? \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u0432\u0441\u0435 \u043c\u044b \u043e\u0448\u0438\u0431\u0430\u0435\u043c\u0441\u044f \u0438 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u044b \u2014 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0437\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u0430\u0447\u0438\u0432\u0430\u044f \u0441\u0432\u043e\u0451 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u044b\u0445 0, 1, 2. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043e\u0449\u0443\u0442\u0438\u0442\u044c \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0414\u0435\u043b\u043e \u043d\u0435 \u0432 \u0440\u0435\u043a\u043b\u0430\u043c\u0435 PVS-Studio (\u0445\u043e\u0442\u044f \u0432 \u043d\u0435\u0439 \u0442\u043e\u0436\u0435 :). \u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043b\u0438\u0448\u043d\u0438\u043c, \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u044d\u0442\u043e \u044f\u0440\u043a\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442.<\/p>\n<p>  \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u043d \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0438\u0436\u0435 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u043f\u0438\u0447\u043d\u044b\u0435 \u043b\u044f\u043f\u044b \u0432 \u0434\u0430\u0436\u0435 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043a\u0430\u043a Qt, Clang, Hive, LibreOffice, Linux Kernel, .NET Compiler Platform, XNU kernel, Mozilla Firefox. \u041f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0434\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0430 \u0441\u0430\u043c\u044b\u0435 \u0447\u0442\u043e \u043d\u0438 \u043d\u0430 \u0435\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u044b\u0435. \u041d\u0435 \u0443\u0431\u0435\u0434\u0438\u043b? \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c!<\/p>\n<p>  <i>\u00ab\u0411\u043e\u043b\u0442\u043e\u0432\u043d\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442! \u041f\u043e\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u043d\u0435 \u0431\u0430\u0433\u0438!\u00bb<\/i><\/p>\n<p>  <i>&copy; \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043d\u043d\u0430\u044f \u0446\u0438\u0442\u0430\u0442\u0430 Linus Torvalds.<\/i><\/p>\n<h2>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u0445 \u043f\u0440\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/h2>\n<p>  \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0432 \u043d\u0430\u0448\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043e\u043f\u0443\u0449\u0443 \u044d\u0442\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0438 \u0431\u0435\u0437 \u043d\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u0430 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u0430. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0445\u043e\u0442\u044f \u044d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0440\u0430\u0437\u0443 \u0431\u0440\u043e\u0441\u0430\u044e\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430 \u0432 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 \u043a\u043e\u0434\u0430, \u043e\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0443\u043c\u0435\u044e\u0442 \u043f\u0440\u044f\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<p>  \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0441 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435 \u0432 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 XNU kernel, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">uint32_t gss_krb5_3des_unwrap_mbuf(....) {   ....   for (cflag = 1; cflag &gt;= 0; cflag--) {     *minor = gss_krb5_3des_token_get(        ctx, &amp;itoken, wrap, &amp;hash, &amp;offset, &amp;length, reverse);     if (*minor == 0)       break;     wrap.Seal_Alg[0] = 0xff;     wrap.Seal_Alg[0] = 0xff;   }   .... }<\/code><\/pre>\n<p>  \u0421\u0442\u0440\u043e\u0447\u043a\u0443 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0437\u0430\u0431\u044b\u043b\u0438. \u041a\u0430\u043a \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0437\u0434\u0435\u0441\u044c \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">wrap.Seal_Alg[0] = 0xff; wrap.Seal_Alg[1] = 0xff;<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Sequence&lt; OUString &gt; FirebirdDriver::   getSupportedServiceNames_Static() throw (RuntimeException) {   Sequence&lt; OUString &gt; aSNS( 2 );   aSNS[0] = &quot;com.sun.star.sdbc.Driver&quot;;   aSNS[0] = &quot;com.sun.star.sdbcx.Driver&quot;;   return aSNS; }<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u043d\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c 0 \u043d\u0430 1. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u043b.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0442\u0440\u043e\u043a? \u041c\u043e\u0436\u043d\u043e \u0438 \u0432\u0441\u0451. \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0435 \u043e\u043d\u043e, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Quake-III-Arena, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">int VL_FindAdjacentSurface(....) {   ....   if (fabs(dir[0]) &gt; test-&gt;radius ||       fabs(dir[1]) &gt; test-&gt;radius ||       fabs(dir[1]) &gt; test-&gt;radius)   {   .... }<\/code><\/pre>\n<p>  \u0412 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <i>dir[1]<\/i> \u043d\u0430 <i>dir[2]<\/i>. \u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 Z \u043d\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 OpenCOLLADA, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">struct short2 {   short values[2];   short2(short s1, short s2)   {     values[0] = s1;     values[2] = s2;   }   .... };<\/code><\/pre>\n<p>  \u0414\u0430, \u0434\u0430\u0436\u0435 \u0432 \u0442\u0430\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0443\u0434\u0440\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/557\/e77\/ddb\/557e77ddb32df5ca3554597d92ffcb49.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 8\"><\/div>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Godot Engine, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Array PhysicsDirectSpaceState::_cast_motion(....) {   ....   Array ret(true);   ret.resize(2);   ret[0]=closest_safe;   ret[0]=closest_unsafe;   return ret; }<\/code><\/pre>\n<p>  \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Asterisk, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">static void sip_threadinfo_destructor(void *obj) {   struct sip_threadinfo *th = obj;   struct tcptls_packet *packet;    if (th-&gt;alert_pipe[1] &gt; -1) {            \/\/ &lt;=     close(th-&gt;alert_pipe[0]);   }   if (th-&gt;alert_pipe[1] &gt; -1) {     close(th-&gt;alert_pipe[1]);   }   th-&gt;alert_pipe[0] = th-&gt;alert_pipe[1] = -1;   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u043e\u0448\u0438\u0431\u043a\u0430, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0435\u043c. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0431\u044b\u043b\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u0438\u043c\u0438. \u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0431\u043b\u043e\u043a\u0435. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e. \u041c\u043d\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u043d\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u0435\u0434\u0438\u043d\u043e\u0440\u043e\u0433\u043e\u043c, \u043f\u043e\u0436\u0438\u043c\u0430\u044e\u0449\u0438\u043c \u043f\u043b\u0435\u0447\u0430\u043c\u0438:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/071\/1f3\/dd7\/0711f3dd70bf461e3105765a0862ea30.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 9\"><\/div>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Open CASCADE Technology, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">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>  \u0414\u0432\u0430 \u0440\u0430\u0437\u0430 \u0432 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443\u0436\u0435 \u044f\u0447\u0435\u0439\u043a\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u042f\u0432\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043d\u043e \u043a\u0430\u043a \u0435\u0451 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043d\u0435 \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043b\u0430 \u0438\u043c \u043d\u0430 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:  <\/p>\n<pre><code class=\"cpp\">myIndex[1] = myIndex[0]; myIndex[0] = theIndex;<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Trans-Proteomic Pipeline, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void ASAPRatio_getProDataStrct(proDataStrct *data,                                char **pepBofFiles) {   ....   if (data-&gt;indx == -1) {     data-&gt;ratio[0] = -2.;     data-&gt;ratio[0] = 0.;             \/\/ &lt;=     data-&gt;inv_ratio[0] = -2.;     data-&gt;inv_ratio[1] = 0.;     return;   }   .... }<\/code><\/pre>\n<p>  \u042f \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u044e, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u043d\u0430\u0443\u0447\u043d\u044b\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0442\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. Trans-Proteomic Pipeline \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u0438. \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0430\u0440\u0435\u0448\u0430\u0442\u044c \u0438 \u00ab\u043d\u0430\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u00bb. \u0412 \u044d\u0442\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e: <a href=\"https:\/\/www.viva64.com\/ru\/b\/0156\/\">\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 2012 \u0433\u043e\u0434\u0430<\/a>, <a href=\"https:\/\/www.viva64.com\/ru\/b\/0212\/\">\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 2013 \u0433\u043e\u0434\u0430<\/a>. \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043c\u043e\u0436\u043d\u043e \u0432\u043d\u043e\u0432\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ITK, \u044f\u0437\u044b\u043a C++<\/b><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b: Medicine Insight Segmentation and Registration Toolkit (ITK). \u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u0440\u0443\u0433\u043e\u0439, \u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435.  <\/p>\n<pre><code class=\"cpp\">template&lt; typename TCoordRepType &gt; void VoronoiDiagram2D&lt; TCoordRepType &gt;::SetOrigin(PointType vorsize) {   m_VoronoiBoundaryOrigin[0] = vorsize[0];   m_VoronoiBoundaryOrigin[0] = vorsize[1]; }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ITK, \u044f\u0437\u044b\u043a C++<\/b><\/p>\n<p>  int itkPointSetToSpatialObjectDemonsRegistrationTest(&#8230;.)  <\/p>\n<pre><code class=\"cpp\">{   ....   \/\/ Set its position   EllipseType::TransformType::OffsetType offset;   offset[0]=50;   offset[1]=50;   offset[1]=50;   .... }<\/code><\/pre>\n<p>  \u0427\u0438\u0441\u0442\u044b\u0439 Copy-Paste.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ReactOS, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">HPALETTE CardWindow::CreateCardPalette() {   ....   \/\/include button text colours   cols[0] = RGB(0, 0, 0);   cols[1] = RGB(255, 255, 255);    \/\/include the base background colour   cols[1] = crBackgnd;    \/\/include the standard button colours...   cols[3] = CardButton::GetHighlight(crBackgnd);   cols[4] = CardButton::GetShadow(crBackgnd);   cols[5] = CardButton::GetFace(crBackgnd);   .... }<\/code><\/pre>\n<p>  \u041f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 <i>crBackgnd <\/i> \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 <i>cols[2]<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Coin3D, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">SoVRMLInline::GLRender(SoGLRenderAction * action) {   ....   if ((size[0] &gt;= 0.0f &amp;&amp; size[1] &gt;= 0.0f &amp;&amp; size[1] &gt;= 0.0f) &amp;&amp;       ((vis == ALWAYS) ||        (vis == UNTIL_LOADED &amp;&amp; child == NULL))) {   .... }<\/code><\/pre>\n<p>  \u0414\u0432\u0430\u0436\u0434\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <i>size[1]<\/i>, \u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <i>size[2]<\/i> \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u0441\u044f. \u0412\u043e\u0442 \u0442\u0430\u043a \u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 OpenCV, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool Jpeg2KDecoder::readHeader() {   ....   cmptlut[0] = ....   cmptlut[1] = ....   cmptlut[2] = ....   if( cmptlut[0] &lt; 0 || cmptlut[1] &lt; 0 || cmptlut[0] &lt; 0 )     result = false;   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u044f\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <i>cmptlut[0] &lt; 0<\/i> \u0431\u044b\u043b\u043e \u0434\u0432\u0430\u0436\u0434\u044b \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Visualization Toolkit (VTK), \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void vtkImageStencilRaster::PrepareForNewData(....) {   ....   if (allocateExtent &amp;&amp;       allocateExtent[1] &gt;= allocateExtent[1])   .... }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0427\u0442\u043e \u0442\u0443\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c? \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0434\u0430, \u043f\u0440\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0445\u043e\u0442\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u044d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Visualization Toolkit (VTK), \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">template &lt;class iterT&gt; void vtkDataSetAttributesCopyValues(....) {   ....   inZPtr +=     (outExt[0] - outExt[0])*inIncs[0] * data_type_size +     (outExt[2] - outExt[2])*inIncs[1] * data_type_size +     (outExt[4] - outExt[4])*inIncs[2] * data_type_size;   .... }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044f\u0432\u043d\u043e \u0442\u043e\u0440\u043e\u043f\u0438\u043b\u0441\u044f \u043f\u043e\u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u041f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u043e\u043d \u043e\u0448\u0438\u0431\u0441\u044f \u0442\u0440\u0438\u0436\u0434\u044b. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u044b\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u0438 \u0438\u0437 \u0441\u0435\u0431\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d:  <\/p>\n<pre><code class=\"cpp\">inZPtr +=   (0)*inIncs[0] * data_type_size +   (0)*inIncs[1] * data_type_size +   (0)*inIncs[2] * data_type_size;<\/code><\/pre>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435:  <\/p>\n<pre><code class=\"cpp\">inZPtr += 0;<\/code><\/pre>\n<p>  \u0412\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u043e. \u0412 \u043a\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0449\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. \u041b\u044e\u0431\u043b\u044e \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0438.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Visualization Toolkit (VTK), \u044f\u0437\u044b\u043a C++<\/b><\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.  <\/p>\n<pre><code class=\"cpp\">void vtkPiecewiseControlPointsItem::SetControlPoint(   vtkIdType index, double* newPos) {   double oldPos[4];   this-&gt;PiecewiseFunction-&gt;GetNodeValue(index, oldPos);   if (newPos[0] != oldPos[0] || newPos[1] != oldPos[1] ||       newPos[2] != oldPos[2] || newPos[2] != oldPos[2])     {       this-&gt;PiecewiseFunction-&gt;SetNodeValue(index, newPos);     } }<\/code><\/pre>\n<p>  \u0414\u0432\u0430\u0436\u0434\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 <i>newPos[2] != oldPos[2]<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ADAPTIVE Communication Environment (ACE), \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool URL_Base::strip_scheme (ACE_CString&amp; url_string) {   ....   ACE_CString::size_type pos = url_string.find (':');   if (pos &gt; 0 &amp;&amp;       url_string[pos+1] == '\/' &amp;&amp;       url_string[pos+1] == '\/')   {     ....     \/\/ skip '&lt;protocol&gt;:\/\/'     url_string = url_string.substr (pos+3);   }   .... }<\/code><\/pre>\n<p>  \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u044b \u0434\u0432\u0435 \u043a\u043e\u0441\u044b\u0435 \u0447\u0435\u0440\u0442\u044b, \u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0438\u0449\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430 &quot;:\/\/&quot;. \u0418\u0437-\u0437\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u00ab\u043f\u043e\u0434\u0441\u043b\u0435\u043f\u043e\u0432\u0430\u0442\u0430\u00bb \u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u043e\u0439 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 IPP Samples, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void MeBase::MakeVlcTableDecision() {   ....   Ipp32s BestMV =     IPP_MIN(IPP_MIN(m_cur.MvRate[0],m_cur.MvRate[1]),                     IPP_MIN(m_cur.MvRate[2],m_cur.MvRate[3]));   Ipp32s BestAC =     IPP_MIN(IPP_MIN(m_cur.AcRate[0],m_cur.AcRate[1]),                     IPP_MIN(m_cur.AcRate[2],m_cur.AcRate[2]));   .... }<\/code><\/pre>\n<p>  \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c, \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u0430\u043a\u0440\u043e\u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445:  <\/p>\n<pre><code class=\"cpp\">IPP_MIN(m_cur.AcRate[2],m_cur.AcRate[2])<\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">IPP_MIN(m_cur.AcRate[2],m_cur.AcRate[3])<\/code><\/pre>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0415\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cpp\">Ipp32s BestMV = std::min_element(begin(m_cur.MvRate), end(m_cur.MvRate)); Ipp32s BestAC = std::min_element(begin(m_cur.AcRate), end(m_cur.AcRate));<\/code><\/pre>\n<p>  \u0422\u043e \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u0435\u0442 \u043a\u043e\u0440\u043e\u0447\u0435, \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d \u043e\u0448\u0438\u0431\u043a\u0430\u043c. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0448\u0430\u043d\u0441\u043e\u0432, \u0447\u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Audacity, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">sampleCount VoiceKey::OnBackward (....) {   ....   int atrend = sgn(buffer[samplesleft - 2]-                    buffer[samplesleft - 1]);   int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]-                    buffer[samplesleft - WindowSizeInt-2]);   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:  <\/p>\n<pre><code class=\"cpp\">int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]-                  buffer[samplesleft - WindowSizeInt-1]);<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 PDFium, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void sycc420_to_rgb(opj_image_t* img) {   ....   opj_image_data_free(img-&gt;comps[0].data);   opj_image_data_free(img-&gt;comps[1].data);   opj_image_data_free(img-&gt;comps[2].data);   img-&gt;comps[0].data = d0;   img-&gt;comps[1].data = d1;   img-&gt;comps[2].data = d2;   img-&gt;comps[1].w = yw;                 \/\/ 1   img-&gt;comps[1].h = yh;                 \/\/ 1   img-&gt;comps[2].w = yw;                 \/\/ 1   img-&gt;comps[2].h = yh;                 \/\/ 1   img-&gt;comps[1].w = yw;                 \/\/ 2   img-&gt;comps[1].h = yh;                 \/\/ 2   img-&gt;comps[2].w = yw;                 \/\/ 2   img-&gt;comps[2].h = yh;                 \/\/ 2   img-&gt;comps[1].dx = img-&gt;comps[0].dx;   img-&gt;comps[2].dx = img-&gt;comps[0].dx;   img-&gt;comps[1].dy = img-&gt;comps[0].dy;   img-&gt;comps[2].dy = img-&gt;comps[0].dy; }<\/code><\/pre>\n<p>  \u0414\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u044f\u0434 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u0422\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438, \u0447\u0442\u043e \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c <i>\/\/2<\/i>, \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c, \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f. \u042f \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u043b\u0441\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043b\u0438 \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u0442\u044c\u044e. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0430, \u0438 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0442 \u043b\u0438\u0448\u043d\u0438\u0439 \u043a\u043e\u0434, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0447\u043b\u0435\u043d\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445 1, 2. \u0422\u0430\u043a \u0447\u0442\u043e, \u0434\u0443\u043c\u0430\u044e, \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u043a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0447\u0438\u0441\u043b\u0430\u0445.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 CMake, \u0421<\/b><\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0434\u0430\u043b\u0435\u0435 \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 CMake, \u0430 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d. \u0421\u0443\u0434\u044f \u043f\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u044f <i>utf8_encode<\/i> \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 Tim Kientzle \u0435\u0449\u0451 \u0432 2007. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u0447\u0443\u0435\u0442 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043c\u043d\u043e\u0433\u043e \u0433\u0434\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f. \u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e. \u0420\u0430\u0437 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0435\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 CMake, \u0442\u043e \u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a CMake.  <\/p>\n<pre><code class=\"cpp\">static char * utf8_encode(const wchar_t *wval) {   ....   p[0] = 0xfc | ((wc &gt;&gt; 30) &amp; 0x01);   p[1] = 0x80 | ((wc &gt;&gt; 24) &amp; 0x3f);   p[1] = 0x80 | ((wc &gt;&gt; 18) &amp; 0x3f);   p[2] = 0x80 | ((wc &gt;&gt; 12) &amp; 0x3f);   p[3] = 0x80 | ((wc &gt;&gt; 6) &amp; 0x3f);   p[4] = 0x80 | (wc &amp; 0x3f);   p += 6;   .... }<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u0414\u0432\u0430\u0436\u0434\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <i>p[1]<\/i>. \u0415\u0441\u043b\u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0434 \u043f\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0443, \u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c:  <\/p>\n<pre><code class=\"cpp\">p[0] = 0xfc | ((wc &gt;&gt; 30) &amp; 0x01); p[1] = 0x80 | ((wc &gt;&gt; 24) &amp; 0x3f); p[2] = 0x80 | ((wc &gt;&gt; 18) &amp; 0x3f); p[3] = 0x80 | ((wc &gt;&gt; 12) &amp; 0x3f); p[4] = 0x80 | ((wc &gt;&gt; 6) &amp; 0x3f); p[5] = 0x80 | (wc &amp; 0x3f); p += 6;<\/code><\/pre>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435, \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043a\u043e\u0434\u0443 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C \u0438\u043b\u0438 C++. \u041d\u0435\u0442 \u043a\u043e\u0434\u0430 \u043d\u0430 C# \u0438\u043b\u0438 Java!<\/p>\n<p>  \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u044f \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u044f\u0437\u044b\u043a\u0430. \u0418 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0433\u043b\u0430\u0432\u0430\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445. \u0414\u0443\u043c\u0430\u044e, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u043d\u0430\u0447\u0430\u043b \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u043e\u0437\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a\u0438 C#\/Java \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 C\/C++, \u0438 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0412\u0438\u0434\u0438\u043c\u043e, C \u0438 C++ \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u044e\u0431\u044f\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u0430 0, 1 \u0438 2 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 :).<\/p>\n<h2>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445<\/h2>\n<p>  \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u0434\u0435\u043b. \u041b\u044e\u0434\u044f\u043c \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0430\u043a\u0438\u0445 \u0438\u043c\u0435\u043d\u0430\u0445, \u043a\u0430\u043a <i>a1<\/i> \u0438 <i>a2<\/i>. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f? \u041c\u043e\u0436\u043d\u043e. \u041b\u0435\u0433\u043a\u043e. \u0418 \u0441\u0435\u0439\u0447\u0430\u0441 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0436\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Hive, \u044f\u0437\u044b\u043a Java<\/b>  <\/p>\n<pre><code class=\"java\">@Override public List&lt;ServiceInstance&gt; getAllInstancesOrdered() {   List&lt;ServiceInstance&gt; list = new LinkedList&lt;&gt;();   list.addAll(instances.values());   Collections.sort(list, new Comparator&lt;ServiceInstance&gt;() {     @Override     public int compare(ServiceInstance o1, ServiceInstance o2) {       return o2.getWorkerIdentity().compareTo(o2.getWorkerIdentity());     }   });   return list; }<\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f <i>compare <\/i> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430: <i>o1<\/i> \u0438 <i>o2<\/i>. \u041d\u043e \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0434\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <i>o2<\/i>.<\/p>\n<p>  \u0427\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Copy-Paste \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:  <\/p>\n<pre><code class=\"cpp\">@Override public List&lt;ServiceInstance&gt; getAllInstancesOrdered() {   List&lt;ServiceInstance&gt; list = new LinkedList&lt;&gt;();   readLock.lock();   try {     list.addAll(instances.values());   } finally {     readLock.unlock();   }   Collections.sort(list, new Comparator&lt;ServiceInstance&gt;() {     @Override     public int compare(ServiceInstance o1, ServiceInstance o2) {       return o2.getWorkerIdentity().compareTo(o2.getWorkerIdentity());     }   });   return list; }<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/776\/52c\/06b\/77652c06b1550ac7ad80935716930f97.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 10\"><\/div>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Infer.NET, \u044f\u0437\u044b\u043a C#<\/b>  <\/p>\n<pre><code class=\"cs\">private void MergeParallelTransitions() {   ....   if (double.IsInfinity(transition1.Weight.Value) &amp;&amp;           double.IsInfinity(transition1.Weight.Value))   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Doom 3, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">uint AltOp::fixedLength() {   uint l1 = exp1-&gt;fixedLength();   uint l2 = exp1-&gt;fixedLength();    if (l1 != l2 || l1 == ~0u)     return ~0;    return l1; }<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, \u0433\u0434\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <i>l2<\/i>. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>exp2<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Source Engine SDK, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void GetFPSColor( int nFps, unsigned char ucColor[3] ) {   ....   int nFPSThreshold1 = 20;   int nFPSThreshold2 = 15;    if (IsPC() &amp;&amp;       g_pMaterialSystemHardwareConfig-&gt;GetDXSupportLevel() &gt;= 95)   {     nFPSThreshold1 = 60;     nFPSThreshold1 = 50;   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">nFPSThreshold1 = 60; nFPSThreshold2 = 50;<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Linux Kernel, \u044f\u0437\u044b\u043a C<\/b><\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u043e \u0438 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432. \u0421\u0435\u0439\u0447\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.  <\/p>\n<pre><code class=\"cpp\">int private_ioctl(struct vnt_private *pDevice, struct ifreq *rq) {   ....   if (sStartAPCmd.byBasicRate &amp; BIT3) {     pMgmt-&gt;abyIBSSSuppRates[2] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[3] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[4] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[5] |= BIT7;   } else if (sStartAPCmd.byBasicRate &amp; BIT2) {     pMgmt-&gt;abyIBSSSuppRates[2] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[3] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[4] |= BIT7;   } else if (sStartAPCmd.byBasicRate &amp; BIT1) {  \/\/ &lt;=     pMgmt-&gt;abyIBSSSuppRates[2] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[3] |= BIT7;   } else if (sStartAPCmd.byBasicRate &amp; BIT1) {  \/\/ &lt;=     pMgmt-&gt;abyIBSSSuppRates[2] |= BIT7;   } else {     \/* default 1,2M *\/     pMgmt-&gt;abyIBSSSuppRates[2] |= BIT7;     pMgmt-&gt;abyIBSSSuppRates[3] |= BIT7;   }   .... }<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0434\u0432\u0430\u0436\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u043a\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <i>BIT1<\/i>, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0439. \u0422\u0435\u043b\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c, \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 CMaNGOS, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void AttackedBy(Unit* pAttacker) override {   ....   DoScriptText(urand(0, 1) ?                SAY_BELNISTRASZ_AGGRO_1 :                SAY_BELNISTRASZ_AGGRO_1,                m_creature, pAttacker);   .... }<\/code><\/pre>\n<p>  \u0412 \u0438\u0433\u0440\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 <i>SAY_BELNISTRASZ_AGGRO_1<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Vangers: One For The Road, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">const char* iGetJoyBtnNameText(int vkey,int lang) {   ....   if (vkey &gt;= VK_STICK_SWITCH_1 &amp;&amp; vkey &lt;= VK_STICK_SWITCH_9)   {      ret = (lang)       ? iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1]       : iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1];     return ret;   }   .... }<\/code><\/pre>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u044f\u0434\u043e\u043c \u043a\u043e\u0434\u0443, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c:  <\/p>\n<pre><code class=\"cpp\">ret = (lang)   ? iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1]   : iJoystickStickSwitch1[vkey - VK_STICK_SWITCH_1];<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 RT-Thread, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">uint8_t can_receive_message_length(uint32_t can_periph,                                    uint8_t fifo_number) {   uint8_t val = 0U;    if(CAN_FIFO0 == fifo_number){     val = (uint8_t)(CAN_RFIFO0(can_periph) &amp; CAN_RFIFO_RFL0_MASK);   }else if(CAN_FIFO0 == fifo_number){     val = (uint8_t)(CAN_RFIFO1(can_periph) &amp; CAN_RFIFO_RFL0_MASK);   }else{     \/* illegal parameter *\/   }   return val; }<\/code><\/pre>\n<p>  RT-Thread \u2014 \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 FIFO 0 \u0438 FIFO 1. \u0418 \u0433\u0434\u0435-\u0442\u043e \u043a\u0442\u043e-\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0441\u044f \u0441 \u0433\u043b\u044e\u0447\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2e9\/3e3\/3a9\/2e93e33a9dd36ed4bd3049a66d1e6ad5.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 11\"><\/div>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0434\u0435\u0441\u044c:  <\/p>\n<pre><code class=\"cpp\">if      (CAN_FIFO0 == fifo_number){ .... }else if(CAN_FIFO0 == fifo_number){<\/code><\/pre>\n<p>  \u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0430\u0451\u0442 false. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if      (CAN_FIFO0 == fifo_number){ .... }else if(CAN_FIFO1 == fifo_number){<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Hive, \u044f\u0437\u044b\u043a Java<\/b>  <\/p>\n<pre><code class=\"java\">private void generateDateTimeArithmeticIntervalYearMonth(String[] tdesc) throws Exception {   String operatorName = tdesc[1];   String operatorSymbol = tdesc[2];   String operandType1 = tdesc[3];   String colOrScalar1 = tdesc[4];   String operandType2 = tdesc[5];   String colOrScalar2 = tdesc[6];   ....   if (colOrScalar1.equals(&quot;Col&quot;) &amp;&amp; colOrScalar1.equals(&quot;Column&quot;)) {     ....   } else if (colOrScalar1.equals(&quot;Col&quot;) &amp;&amp; colOrScalar1.equals(&quot;Scalar&quot;)) {     .... }<\/code><\/pre>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 2 \u043e\u0448\u0438\u0431\u043a\u0438:<\/p>\n<ol>\n<li>\u0421\u0442\u0440\u043e\u043a\u0430, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f\u0441\u044f \u0432 <i>colOrScalar1,<\/i> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c \u00abCol\u00bb \u0438 \u00abColumn\u00bb;<\/li>\n<li>\u0421\u0442\u0440\u043e\u043a\u0430, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f\u0441\u044f \u0432 <i>colOrScalar1,<\/i> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c \u00abCol\u00bb \u0438 \u00abScalar\u00bb.<\/li>\n<\/ol>\n<p>  \u042f\u0432\u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Shareaza, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void CDownloadWithSources::MergeMetadata(const CXMLElement* pXML) {   CQuickLock pLock( Transfers.m_pSection );    CXMLAttribute* pAttr1 =     m_pXML-&gt;GetAttribute(CXMLAttribute::schemaName);   CXMLAttribute* pAttr2 =     pXML-&gt;GetAttribute(CXMLAttribute::schemaName);    if (pAttr1 &amp;&amp; pAttr2 &amp;&amp;       !pAttr1-&gt;GetValue().CompareNoCase(pAttr1-&gt;GetValue()))     .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">pAttr1-&gt;GetValue().CompareNoCase(pAttr2-&gt;GetValue())<\/code><\/pre>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0430\u0443\u0437\u0443. \u0415\u0441\u0442\u044c \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0433\u043e\u0440\u0443 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u043c\u044b \u0437\u0430\u0431\u0443\u0434\u0435\u043c, \u0437\u0430\u0447\u0435\u043c \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c. <\/p>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0434 \u0447\u0443\u0436\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u0412\u0441\u0451 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0432\u043e\u0434 \u0442\u044b\u043a\u0430\u0442\u044c \u043f\u0430\u043b\u044c\u0446\u0435\u043c \u0438 \u043f\u0440\u0438\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c: \u00ab\u0425\u0430-\u0445\u0430, \u043d\u0443 \u043d\u0430\u0434\u043e \u0436\u0435\u00bb. \u042d\u0442\u043e\u0442 \u043f\u043e\u0432\u043e\u0434 \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f!<\/p>\n<p>  <a href=\"https:\/\/www.viva64.com\/ru\/inspections\/\">\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u0438\u0437 \u043d\u0430\u0441 \u043d\u0435 \u0437\u0430\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u043d \u043e\u0442 \u043e\u0448\u0438\u0431\u043e\u043a. \u041e\u0448\u0438\u0431\u043a\u0438, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0442\u044c. \u0415\u0449\u0451 \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 0, 1, 2 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<p>  \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043b\u044e\u0434\u044f\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0432 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430. \u041f\u043e\u043d\u0438\u043c\u0430\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043c\u044b \u043e\u0448\u0438\u0431\u0430\u0435\u043c\u0441\u044f, \u043b\u044e\u0434\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e\u0431\u0437\u043e\u0440\u044b \u043a\u043e\u0434\u0430, \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b, \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>  \u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0438 \u0442\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0432\u0435\u0449\u0438? \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043e\u0431\u0449\u0430\u044f\u0441\u044c \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043c\u044b \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u043a\u043e\u043d\u0441\u0442\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u044d\u0442\u043e \u0442\u0430\u043a \u0443\u0436 \u0432\u0441\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u0423 \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u0430 \u0441\u0430\u043c\u043e\u043e\u0446\u0435\u043d\u043a\u0430 \u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043c\u044b\u0441\u043b\u0438, \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u042d\u0442\u043e \u0433\u0440\u0443\u0441\u0442\u043d\u043e.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0442\u0438\u043c\u043b\u0438\u0434\/\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u0442\u043e \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0437\u0430\u043e\u0434\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0442 \u0441 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/www.viva64.com\/ru\/b\/0498\/\">\u0437\u0430\u043c\u0435\u0442\u043a\u043e\u0439<\/a>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Qt, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">AtomicComparator::ComparisonResult IntegerComparator::compare(const Item &amp;o1,                            const AtomicComparator::Operator,                            const Item &amp;o2) const {   const Numeric *const num1 = o1.as&lt;Numeric&gt;();   const Numeric *const num2 = o1.as&lt;Numeric&gt;();    if(num1-&gt;isSigned() || num2-&gt;isSigned())   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">const Numeric *const num2 = o1.as&lt;Numeric&gt;();<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Android, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">static inline bool isAudioPlaybackRateEqual(   const AudioPlaybackRate &amp;pr1,   const AudioPlaybackRate &amp;pr2) {     return fabs(pr1.mSpeed - pr2.mSpeed) &lt;              AUDIO_TIMESTRETCH_SPEED_MIN_DELTA &amp;&amp;            fabs(pr1.mPitch - pr2.mPitch) &lt;              AUDIO_TIMESTRETCH_PITCH_MIN_DELTA &amp;&amp;            pr2.mStretchMode == pr2.mStretchMode &amp;&amp;            pr2.mFallbackMode == pr2.mFallbackMode; }<\/code><\/pre>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0434\u0432\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <i>pr2.mStretchMode<\/i> \u0438 <i>pr2.mFallbackMode<\/i> \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u0438 \u0441 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Boost, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">point3D operator\/(const point3D &amp;p1, const point3D &amp;p2) {   return point3D(p1.x\/p2.x, p1.y\/p2.y, p1.z\/p1.z); }<\/code><\/pre>\n<p>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438\u0441\u044c \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <i>p1.z<\/i> \u0441\u0430\u043c\u0443 \u043d\u0430 \u0441\u0435\u0431\u044f.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Clang, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool haveSameType(QualType Ty1, QualType Ty2) {   return (Context.getCanonicalType(Ty1) ==           Context.getCanonicalType(Ty2) ||           (Ty2-&gt;isIntegerType() &amp;&amp;            Ty2-&gt;isIntegerType())); }<\/code><\/pre>\n<p>  \u0414\u0430, \u0434\u0430, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438 \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u0445. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">(Ty1-&gt;isIntegerType() &amp;&amp;  Ty2-&gt;isIntegerType())<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Clang, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">static GenericValue executeFCMP_ORD(GenericValue Src1,                                     GenericValue Src2,                                     Type *Ty) {   GenericValue Dest;   if (Ty-&gt;isFloatTy())     Dest.IntVal = APInt(1,(Src1.FloatVal == Src1.FloatVal &amp;&amp;                            Src2.FloatVal == Src2.FloatVal));   else     Dest.IntVal = APInt(1,(Src1.DoubleVal == Src1.DoubleVal &amp;&amp;                            Src2.DoubleVal == Src2.DoubleVal));   return Dest; }<\/code><\/pre>\n<p>  \u0412\u0441\u0451 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043b\u043e\u0441\u044c, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u0438 \u0441 \u0441\u043e\u0431\u043e\u0439. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if (Ty-&gt;isFloatTy())   Dest.IntVal = APInt(1,(Src1.FloatVal == Src2.FloatVal &amp;&amp;                          Src1.FloatVal == Src2.FloatVal)); else   Dest.IntVal = APInt(1,(Src1.DoubleVal == Src2.DoubleVal &amp;&amp;                          Src1.DoubleVal == Src2.DoubleVal));<\/code><\/pre>\n<p>  \u0418, \u0434\u0443\u043c\u0430\u044e, \u0443\u0436\u0435 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442, \u0447\u0442\u043e \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0444\u0430\u0439\u043b\u0435 \u043c\u044b \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043c Copy-Paste:  <\/p>\n<pre><code class=\"cpp\">static GenericValue executeFCMP_UNO(GenericValue Src1,                                     GenericValue Src2,                                     Type *Ty) {   GenericValue Dest;   if (Ty-&gt;isFloatTy())     Dest.IntVal = APInt(1,(Src1.FloatVal != Src2.FloatVal ||                            Src1.FloatVal != Src2.FloatVal));   else     Dest.IntVal = APInt(1,(Src1.DoubleVal != Src2.DoubleVal ||                            Src1.DoubleVal != Src2.DoubleVal));   return Dest; }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Clang, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Instruction *InstCombiner::visitXor(BinaryOperator &amp;I) {   ....   if (Op0I &amp;&amp; Op1I &amp;&amp; Op0I-&gt;isShift() &amp;&amp;       Op0I-&gt;getOpcode() == Op1I-&gt;getOpcode() &amp;&amp;       Op0I-&gt;getOperand(1) == Op1I-&gt;getOperand(1) &amp;&amp;       (Op1I-&gt;hasOneUse() || Op1I-&gt;hasOneUse())) {   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">(Op0I-&gt;hasOneUse() || Op1I-&gt;hasOneUse())<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Qt, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">inline bool qCompare(QImage const &amp;t1, QImage const &amp;t2, ....) {   ....   if (t1.width() != t2.width() || t2.height() != t2.height()) {   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 NCBI Genome Workbench, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">static bool s_PCRPrimerSetLess(const CPCRPrimerSet&amp; s1, const CPCRPrimerSet&amp; s2) {   if (!s1.IsSet() &amp;&amp; s1.IsSet()) {     return true;   } else if (s1.IsSet() &amp;&amp; !s2.IsSet()) {     return false;   } else if (!s1.IsSet() &amp;&amp; !s2.IsSet()) {     return false;   } else if (s1.Get().size() &lt; s2.Get().size()) {     return true;   } else if (s1.Get().size() &gt; s2.Get().size()) {     return false;   } else {   ..... }<\/code><\/pre>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435. \u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if (!s1.IsSet() &amp;&amp; s2.IsSet()) {<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 NCBI Genome Workbench, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">CRef&lt;CSeq_align&gt; CNWAligner::Run(CScope &amp;scope, const CSeq_loc &amp;loc1,                                  const CSeq_loc &amp;loc2, bool trim_end_gaps) {   if ((!loc1.IsInt() &amp;&amp; !loc1.IsWhole()) ||       (!loc1.IsInt() &amp;&amp; !loc1.IsWhole()))   {     NCBI_THROW(CException, eUnknown,                &quot;Only whole and interval locations supported&quot;);   }   .... }<\/code><\/pre>\n<p>  \u0411\u044b\u043b\u0430 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u043e\u0441\u043f\u0435\u0448\u0438\u043b \u0438 \u0437\u0430\u0431\u044b\u043b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <i>loc1<\/i> \u043d\u0430 <i>loc2<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 FlashDevelop, \u0421#<\/b>  <\/p>\n<pre><code class=\"cpp\">public void SetPrices(....) {   UInt32 a0 = _choice.GetPrice0();   UInt32 a1 = _choice.GetPrice1();   UInt32 b0 = a1 + _choice2.GetPrice0();   \/\/ &lt;=   UInt32 b1 = a1 + _choice2.GetPrice1();   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 FreeCAD, \u044f\u0437\u044b\u043a C++<\/b>  <\/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\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0438 \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0451? \u041c\u043e\u0436\u043d\u043e.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">class SVX_DLLPUBLIC SdrMarkView : public SdrSnapView {   ....   const Point&amp; GetRef1() const { return maRef1; }   const Point&amp; GetRef2() const { return maRef1; }   .... };<\/code><\/pre>\n<p>  \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f Copy-Paste \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">const Point&amp; GetRef2() const { return maRef2; }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool CmpAttr(   const SfxPoolItem&amp; rItem1, const SfxPoolItem&amp; rItem2) {   ....   ::boost::optional&lt;sal_uInt16&gt; oNumOffset1 =         static_cast&lt;const SwFmtPageDesc&amp;&gt;(rItem1).GetNumOffset();   ::boost::optional&lt;sal_uInt16&gt; oNumOffset2 =         static_cast&lt;const SwFmtPageDesc&amp;&gt;(rItem1).GetNumOffset();   .... }<\/code><\/pre>\n<p>  \u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f Copy-Paste \u043e\u0448\u0438\u0431\u043a\u0430 :). \u0412 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 1 \u043d\u0430 2 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0437\u0430\u0431\u044b\u043b\u0438.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">XMLTransformerOOoEventMap_Impl::XMLTransformerOOoEventMap_Impl(         XMLTransformerEventMapEntry *pInit,         XMLTransformerEventMapEntry *pInit2 ) {   if( pInit )     AddMap( pInit );   if( pInit )     AddMap( pInit2 ); }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0437\u0430\u043c\u0435\u043d\u0435 1 \u043d\u0430 2, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 2 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/bc2\/b45\/1ab\/bc2b451ab103e2657fff7f29a31c3920.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 12\"><\/div>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u043b\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0437\u0430\u0432\u0430\u0440\u0438\u0442\u044c \u0447\u0430\u0439 \u0438\u043b\u0438 \u043a\u043e\u0444\u0435, \u0438 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043c\u0438\u0440\u043e\u043c \u0447\u0438\u0441\u0435\u043b 0, 1 \u0438 2.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Geant4 software, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void G4VTwistSurface::GetBoundaryLimit(G4int areacode,                                        G4double limit[]) const {   ....   if (areacode &amp; sC0Min1Max) {      limit[0] = fAxisMin[0];      limit[1] = fAxisMin[1];   } else if (areacode &amp; sC0Max1Min) {      limit[0] = fAxisMax[0];      limit[1] = fAxisMin[1];   } else if (areacode &amp; sC0Max1Max) {      limit[0] = fAxisMax[0];      limit[1] = fAxisMax[1];   } else if (areacode &amp; sC0Min1Max) {      limit[0] = fAxisMin[0];      limit[1] = fAxisMax[1];   }   .... }<\/code><\/pre>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u0435\u0442\u043e\u043c \u0438 \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u043b\u0438. \u0413\u043e\u0442\u043e\u0432\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u0443? <\/p>\n<p>  \u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443. \u0412\u044b \u043c\u043e\u043b\u043e\u0434\u0446\u044b!<\/p>\n<p>  \u041a\u0442\u043e \u043f\u043e\u043b\u0435\u043d\u0438\u043b\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c, \u0442\u0435\u0445 \u044f \u0442\u043e\u0436\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e. \u041e\u0431\u0437\u043e\u0440 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043e\u0447\u0435\u043d\u044c \u0443\u0442\u043e\u043c\u0438\u0442\u0435\u043b\u0435\u043d \u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0412\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0443\u0441\u0442\u0430\u044e\u0442.<\/p>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u0438 \u0434\u0432\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442:  <\/p>\n<pre><code class=\"cpp\">if        (areacode &amp; sC0Min1Max) { } else if (areacode &amp; sC0Min1Max) {<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0434, \u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if        (areacode &amp; sC0Min1Min) { } else if (areacode &amp; sC0Max1Min) { } else if (areacode &amp; sC0Max1Max) { } else if (areacode &amp; sC0Min1Max) {<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 CryEngine V, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool CompareRotation(const Quat&amp; q1, const Quat&amp; q2, float epsilon) {   return (fabs_tpl(q1.v.x - q2.v.x) &lt;= epsilon)       &amp;&amp; (fabs_tpl(q1.v.y - q2.v.y) &lt;= epsilon)       &amp;&amp; (fabs_tpl(q2.v.z - q2.v.z) &lt;= epsilon) \/\/ &lt;=       &amp;&amp; (fabs_tpl(q1.w - q2.w) &lt;= epsilon); }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 TortoiseGit, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void CGitStatusListCtrl::OnContextMenuList(....) {   ....   if( (!this-&gt;m_Rev1.IsEmpty()) ||       (!this-&gt;m_Rev1.IsEmpty()) )   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Geant4 software, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">G4double G4MesonAbsorption:: GetTimeToAbsorption(const G4KineticTrack&amp; trk1,                     const G4KineticTrack&amp; trk2) {   ....   if(( trk1.GetDefinition() == G4Neutron::Neutron() ||        trk1.GetDefinition() == G4Neutron::Neutron() ) &amp;&amp;        sqrtS&gt;1.91*GeV &amp;&amp; pi*distance&gt;maxChargedCrossSection)     return time;   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 MonoDevelop, \u0421#<\/b>  <\/p>\n<pre><code class=\"cpp\">private bool MembersMatch(ISymbol member1, ISymbol member2) {   ....   if (member1.DeclaredAccessibility !=       member1.DeclaredAccessibility    || member1.IsStatic != member1.IsStatic)   {     return false;   }   .... }<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043f\u043e\u043a\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0434\u0430 \u0438\u0434\u0443\u0442 \u0431\u0435\u0437 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0442\u0443\u0442 \u0438 \u043f\u043e\u044f\u0441\u043d\u044f\u0442\u044c \u043d\u0435\u0447\u0435\u0433\u043e. \u041c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0432\u0437\u0434\u044b\u0445\u0430\u0442\u044c.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Dolphin Emulator, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool IRBuilder::maskedValueIsZero(InstLoc Op1, InstLoc Op2) const {   return (~ComputeKnownZeroBits(Op1) &amp;           ~ComputeKnownZeroBits(Op1)) == 0; }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 RunAsAdmin Explorer Shim, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool IsLuidsEqual(LUID luid1, LUID luid2) {   return (luid1.LowPart == luid2.LowPart) &amp;&amp;          (luid2.HighPart == luid2.HighPart); }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 IT++, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Gold::Gold(const ivec &amp;mseq1_connections,            const ivec &amp;mseq2_connections) {   ....   it_assert(mseq1.get_length() == mseq1.get_length(),             &quot;Gold::Gold(): dimension mismatch&quot;); }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 QuantLib, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Distribution ManipulateDistribution::convolve(   const Distribution&amp; d1, const Distribution&amp; d2) {   ....   QL_REQUIRE (d1.xmin_ == 0.0 &amp;&amp; d1.xmin_ == 0.0,               &quot;distributions offset larger than 0&quot;);   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Samba, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">static bool samu_correct(struct samu *s1, struct samu *s2) {   ....   } else if (s1_len != s1_len) {     DEBUG(0, (&quot;Password history not written correctly, &quot;               &quot;lengths differ, want %d, got %d\\n&quot;,           s1_len, s2_len));   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Mozilla Firefox, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">static PRBool IsZPositionLEQ(nsDisplayItem* aItem1,                              nsDisplayItem* aItem2,                              void* aClosure) {   if (!aItem1-&gt;GetUnderlyingFrame()-&gt;Preserves3D() ||       !aItem1-&gt;GetUnderlyingFrame()-&gt;Preserves3D()) {     return IsContentLEQ(aItem1, aItem2, aClosure);   }   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Haiku Operation System, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">void trans_double_path::reset() {   m_src_vertices1.remove_all();   m_src_vertices2.remove_all();   m_kindex1 = 0.0;               \/\/ &lt;=   m_kindex1 = 0.0;               \/\/ &lt;=   m_status1 = initial;   m_status2 = initial; }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Qt, \u044f\u0437\u044b\u043a C++<\/b><\/p>\n<p>  Ok, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0440\u0430\u0434\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043d\u0430\u0439\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u0437\u0434\u0435\u0441\u044c:  <\/p>\n<pre><code class=\"cpp\">static ShiftResult shift(....) {   ....   qreal l = (orig-&gt;x1 - orig-&gt;x2)*(orig-&gt;x1 - orig-&gt;x2) +             (orig-&gt;y1 - orig-&gt;y2)*(orig-&gt;y1 - orig-&gt;y1) *             (orig-&gt;x3 - orig-&gt;x4)*(orig-&gt;x3 - orig-&gt;x4) +             (orig-&gt;y3 - orig-&gt;y4)*(orig-&gt;y3 - orig-&gt;y4);   .... }<\/code><\/pre>\n<p>  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0441\u0440\u0430\u0437\u0443, \u0438 \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b5c\/960\/461\/b5c960461e9ffce998cee4e1380b08f7.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 13\"><\/div>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0432\u043c\u0435\u0441\u0442\u043e <i>orig-&gt;y1 \u2014 orig-&gt;y1<\/i> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e <i>orig-&gt;y1 \u2014 orig-&gt;y2<\/i>.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 .NET Compiler Platform, \u044f\u0437\u044b\u043a \u0421#<\/b>  <\/p>\n<pre><code class=\"cpp\">public void IndexerMemberRace() {   ....   for (int i = 0; i &lt; 20; i++)   {     ....     if (i % 2 == 0)     {       thread1.Start();       thread2.Start();     }     else     {       thread1.Start();       thread2.Start();     }     ....   }   .... }<\/code><\/pre>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u0412 \u0446\u0435\u043b\u044f\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0438 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u0438 \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u0433\u043e \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0434\u043e\u043b\u0436\u0435\u043d.<\/p>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if (i % 2 == 0) {   thread1.Start();   thread2.Start(); } else {   thread2.Start();   thread1.Start(); }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Samba, \u044f\u0437\u044b\u043a \u0421<\/b>  <\/p>\n<pre><code class=\"cpp\">static int compare_procids(const void *p1, const void *p2) {   const struct server_id *i1 = (struct server_id *)p1;   const struct server_id *i2 = (struct server_id *)p2;    if (i1-&gt;pid &lt; i2-&gt;pid) return -1;   if (i2-&gt;pid &gt; i2-&gt;pid) return 1;   return 0; }<\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0435\u0440\u043d\u0451\u0442 1, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0435 <i>i2-&gt;pid &gt; i2-&gt;pid<\/i> \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430.<\/p>\n<p>  \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u043e \u043e\u0431\u044b\u043a\u043d\u043e\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430, \u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e:  <\/p>\n<pre><code class=\"cpp\">if (i1-&gt;pid &gt; i2-&gt;pid) return 1;<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ChakraCore, \u044f\u0437\u044b\u043a C++<\/b><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0432 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435. \u0423\u0440\u0430!  <\/p>\n<pre><code class=\"cpp\">bool Lowerer::GenerateFastBrSrEq(....,                                  IR::RegOpnd * srcReg1,                                  IR::RegOpnd * srcReg2,                                  ....) {   ....   else if (srcReg1 &amp;&amp; (srcReg1-&gt;m_sym-&gt;m_isStrConst))   ....   else if (srcReg1 &amp;&amp; (srcReg1-&gt;m_sym-&gt;m_isStrConst))   .... }<\/code><\/pre>\n<h2>\u041f\u0440\u043e\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438<\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043c\u0435\u043d\u0435\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u0435\u043b 0, 1, 2.<\/p>\n<h3>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u0433\u0434\u0435 \u044f\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 0\/1\/2<\/h3>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 ROOT, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">Int_t TProofMonSenderML::SendSummary(TList *recs, const char *id) {   ....   if (fSummaryVrs == 0) {     if ((dsn = recs-&gt;FindObject(&quot;dataset&quot;))) recs-&gt;Remove(dsn);   } else if (fSummaryVrs == 0) {   .... }<\/code><\/pre>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u043e \u0434\u0432\u0430\u0436\u0434\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <i>fSummaryVrs<\/i> \u0441 0.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 .NET CoreCLR, \u044f\u0437\u044b\u043a \u0421#<\/b>  <\/p>\n<pre><code class=\"cpp\">void PutIA64Imm22(UINT64 * pBundle, UINT32 slot, INT32 imm22) {   if (slot == 0)             \/\/ &lt;=   {     ....   }   else if (slot == 1)   {     ....   }   else if (slot == 0)        \/\/ &lt;=   {     ....    }   .... }<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 FFmpeg, \u044f\u0437\u044b\u043a C<\/b>  <\/p>\n<pre><code class=\"cpp\">static int imc_decode_block(....) {   ....   if (stream_format_code &amp; 0x1)     imc_decode_level_coefficients_raw(....);   else if (stream_format_code &amp; 0x1)     imc_read_level_coeffs_raw(....);   .... }<\/code><\/pre>\n<h3>\u0418\u043d\u0434\u0435\u043a\u0441 \/ \u0438\u043c\u044f<\/h3>\n<p>  \u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0432\u0435\u0440\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u043b\u0438 \u0438\u043c\u044f. \u0410 \u0432\u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0441\u0440\u0430\u0437\u0443 \u0438 \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0448\u044c, \u043a\u0430\u043a \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443. \u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u043a\u0430\u043a \u043a \u043e\u0434\u043d\u043e\u0439, \u0442\u0430\u043a \u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u0439 \u0433\u043b\u0430\u0432\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Mesa 3D Graphics Library, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">bool ir_algebraic_visitor::reassociate_constant(....) {   ....   if (ir1-&gt;operands[0]-&gt;type-&gt;is_matrix() ||       ir1-&gt;operands[0]-&gt;type-&gt;is_matrix() ||       ir2-&gt;operands[1]-&gt;type-&gt;is_matrix() ||       ir2-&gt;operands[1]-&gt;type-&gt;is_matrix())    return false;   .... }<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cpp\">if (ir1-&gt;operands[0]-&gt;type-&gt;is_matrix() ||     ir1-&gt;operands[1]-&gt;type-&gt;is_matrix() ||     ir2-&gt;operands[0]-&gt;type-&gt;is_matrix() ||     ir2-&gt;operands[1]-&gt;type-&gt;is_matrix())<\/code><\/pre>\n<p>  \u0418 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cpp\">if (ir1-&gt;operands[0]-&gt;type-&gt;is_matrix() ||     ir2-&gt;operands[0]-&gt;type-&gt;is_matrix() ||     ir1-&gt;operands[1]-&gt;type-&gt;is_matrix() ||     ir2-&gt;operands[1]-&gt;type-&gt;is_matrix())<\/code><\/pre>\n<h3>\u041b\u0438\u0448\u043d\u0438\u0439 0<\/h3>\n<p>  \u0418\u043d\u043e\u0433\u0434\u0430 0 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u043d\u0438\u043c \u0438 \u0432\u0440\u0435\u0434\u043d\u044b\u043c. \u0418\u0437-\u0437\u0430 \u043d\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u043e\u0441\u044c\u043c\u0435\u0440\u0438\u0447\u043d\u043e\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0418\u043b\u0438 \u043f\u043e\u0440\u0442\u044f\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>  \u041d\u0430\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043d\u043e \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u043f\u0440\u043e \u043d\u0438\u0445 \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u0434 \u0441 \u044d\u0442\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043d\u0430 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.viva64.com\/ru\/w\/v536\/\">V536<\/a> Be advised that the utilized constant value is represented by an octal form, <a href=\"https:\/\/www.viva64.com\/ru\/examples\/v536\/\">\u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/a>;<\/li>\n<li><a href=\"https:\/\/www.viva64.com\/ru\/w\/v638\/\">V638<\/a> A terminal null is present inside a string. The &#8216;\\0xNN&#8217; characters were encountered. Probably meant: &#8216;\\xNN&#8217;, <a href=\"https:\/\/www.viva64.com\/ru\/examples\/v638\/\">\u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/a>.<\/li>\n<\/ul>\n<h3>\u0417\u0430\u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c +1<\/h3>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Haiku Operation System, \u044f\u0437\u044b\u043a C++<\/b>  <\/p>\n<pre><code class=\"cpp\">int UserlandFS::KernelEmu::new_path(const char *path, char **copy) {   ....   \/\/ append a dot, if desired   if (appendDot) {     copiedPath[len] = '.';     copiedPath[len] = '\\0';   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:  <\/p>\n<pre><code class=\"cpp\">copiedPath[len] = '.'; copiedPath[len + 1] = '\\0';<\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0440\u0435\u0434\u043a\u0430. \u042f \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043d\u0435 \u0440\u0430\u0437 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0438. \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u043e\u0433\u0434\u0430 \u044f \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438, \u044f \u043d\u0430\u0448\u0451\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440. \u041c\u043d\u0435 \u0436\u0430\u043b\u044c, \u0447\u0442\u043e \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u043f\u0443\u0433\u0430\u0442\u044c \u0432\u0430\u0441 \u044d\u0442\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435. \u041f\u0440\u043e\u0448\u0443 \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u041e\u0448\u0438\u0431\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (C#)<\/h3>\n<p>  \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0412\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c {0}, {1} \u0438\u043b\u0438 {2}.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Azure PowerShell, \u044f\u0437\u044b\u043a C#<\/b>  <\/p>\n<pre><code class=\"cs\">protected override void ProcessRecordInternal() {   ....   if (this.ShouldProcess(this.Name,     string.Format(&quot;Creating Log Alert Rule '{0}' in resource group {0}&quot;,       this.Name, this.ResourceGroupName)))   {     ....   }   .... }<\/code><\/pre>\n<p>  \u041e\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438\u0441\u044c \u0438 \u0434\u0432\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 {0}. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0430\u0436\u0434\u044b \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0438\u043c\u044f <i>this.Name<\/i>. \u0410 \u0432\u043e\u0442 \u0438\u043c\u044f <i>this.ResourceGroupName<\/i> \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443. <\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Mono, \u044f\u0437\u044b\u043a C#<\/b>  <\/p>\n<pre><code class=\"cs\">void ReadEntropy () {   if (reader.IsEmptyElement)     throw new XmlException (       String.Format (&quot;WS-Trust Entropy element is empty.{2}&quot;,                       LineInfo ()));   .... }<\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435. \u041d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435\u0442. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u043c\u0443 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0443 \u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u043b\u043e\u043c\u0430\u043d.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 Xenko, \u044f\u0437\u044b\u043a C#<\/b>  <\/p>\n<pre><code class=\"cs\">public string ToString(string format,                                 IFormatProvider formatProvider) {   if (format == null)     return ToString(formatProvider);    return string.Format(                       formatProvider,                       &quot;Red:{1} Green:{2} Blue:{3}&quot;,                       R.ToString(format, formatProvider),                       G.ToString(format, formatProvider),                       B.ToString(format, formatProvider)); }<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0437\u0430\u0431\u044b\u043b, \u0447\u0442\u043e \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 {0}, \u0430 \u043d\u0435 \u0441 {1}. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"cpp\">return string.Format(                     formatProvider,                     &quot;Red:{0} Green:{1} Blue:{2}&quot;,                     R.ToString(format, formatProvider),                     G.ToString(format, formatProvider),                     B.ToString(format, formatProvider));<\/code><\/pre>\n<p>  <b>\u041f\u0440\u043e\u0435\u043a\u0442 .NET Compiler Platform, \u044f\u0437\u044b\u043a C#<\/b>  <\/p>\n<pre><code class=\"cs\">private void DumpAttributes(Symbol s) {   ....   Console.WriteLine(&quot;{0} {1} {2}&quot;, pa.ToString());   .... }<\/code><\/pre>\n<p>  \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044f\u0432\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438<\/h2>\n<p>  \u041c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 0, 1 \u0438 2, \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0431\u044b \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u043b: \u00ab\u041b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0442\u044c o1 \u0438 o2\u00bb, \u0432\u044b \u0431\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u043b\u0438\u0441\u044c, \u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0434\u0430\u043b\u0438 \u044d\u0442\u043e\u043c\u0443 \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0430\u043a\u043e\u0435 \u043f\u0440\u0438\u0434\u0430\u0434\u0438\u0442\u0435 \u0441\u0435\u0439\u0447\u0430\u0441, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0432 \u0441\u0442\u0430\u0442\u044c\u044e.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u044b, \u0438 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e. \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0451\u043d \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u043e\u043e\u0440\u0443\u0436\u0451\u043d. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430 \u0438 \u0443\u0434\u0435\u043b\u0438\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c, \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 0, 1, 2.<\/p>\n<p>  \u0414\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0441\u043b\u043e\u0436\u043d\u043e. \u041a\u0430\u043a \u0432\u044b \u0432\u0438\u0434\u0435\u043b\u0438, \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u0432 \u0442\u0430\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043a\u043e\u0434\u0435, \u0433\u0434\u0435 \u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c-\u0442\u043e \u043d\u0435\u0447\u0435\u0433\u043e.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0441\u0442\u0430\u043d\u0443 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c 0, 1, 2 \u0438 \u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430. \u0415\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0447\u0438\u0441\u0435\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c Firts\/Second\/Left\/Right \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, \u0442\u043e \u0441\u043e\u0431\u043b\u0430\u0437\u043d \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u044f \u0438\u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a\u0430\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442, \u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u00ab\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430\u00bb. \u0422\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0445 \u043b\u0435\u0433\u0447\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c. \u0421\u043c. \u0433\u043b\u0430\u0432\u0443 N13 \u0432 \u043c\u0438\u043d\u0438-\u043a\u043d\u0438\u0433\u0435 &quot;<a href=\"https:\/\/www.viva64.com\/ru\/b\/0391\/\">\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e<\/a>&quot;.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c. \u0412\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430 <a href=\"https:\/\/www.viva64.com\/ru\/pvs-studio\/\">PVS-Studio<\/a>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u043d\u0435\u0434\u0440\u044f\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0440\u0430\u043d\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435. <\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0438 \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u0416\u0435\u043b\u0430\u044e \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043f\u043e\u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f \u0441 0, 1, 2, \u0447\u0442\u043e\u0431\u044b \u0424\u0440\u0435\u0434\u0434\u0438 \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b \u043a \u0432\u0430\u043c.<\/p>\n<p><a href=\"https:\/\/habr.com\/en\/company\/pvs-studio\/blog\/488328\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c78\/30f\/70c\/c7830f70c5577c3d6704f254d7cad6a3.png\"><\/div>\n<p><\/a><\/p>\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: Andrey Karpov. <a href=\"https:\/\/habr.com\/en\/company\/pvs-studio\/blog\/488328\/\">Zero, one, two, Freddy&#8217;s coming for you<\/a>.<\/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=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/488332\/\"> https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/488332\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/488332\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7df\/971\/1f1\/7df9711f1099158d4c7b159f6a5502d5.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1\"><\/div>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0442\u044c \u00ab\u0443\u0436\u0430\u0441\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u0438 \u0442\u0438\u043f\u043e\u0432\u043e\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u0435\u043b 0, 1, 2. \u041d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u044b \u043d\u0430 C, C++, C# \u0438\u043b\u0438 Java. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b 0, 1, 2, \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0424\u0440\u0435\u0434\u0434\u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u0442 \u043a \u0432\u0430\u043c \u043d\u043e\u0447\u044c\u044e \u0432 \u0433\u043e\u0441\u0442\u0438. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0438 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0441 \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438.  <\/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-298670","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298670","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=298670"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298670\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=298670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=298670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=298670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}