{"id":326797,"date":"2022-01-10T07:26:43","date_gmt":"2022-01-10T07:26:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=326797"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=326797","title":{"rendered":"<span>\u041f\u0440\u043e\u0441\u0442\u043e \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 C++<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0430 \u0436\u0438\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 C++.<\/p>\n<p>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432? \u041f\u043e\u0447\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0431\u043e\u044f\u0442\u044c\u0441\u044f? \u041a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434 \u0447\u0438\u0449\u0435? \u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0443\u0436\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a \u043d\u0438\u043c \u0441\u043a\u0435\u043f\u0441\u0438\u0441?<\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<hr\/>\n<h2>\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043c\u0430\u0440\u043a\u0438<\/h2>\n<ol>\n<li>\n<p>\u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u043f\u0440\u0438\u0446\u0435\u043b\u043e\u043c \u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; \u043e\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430. \u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 C++, \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0435\u0433\u043e <abbr title=\"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 if, \u0446\u0438\u043a\u043b\u044b for \u0438 while, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 ?:\">\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/abbr>, \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u043b\u0430\u0441\u0441\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u0420\u0430\u0437\u0434\u0435\u043b\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u0434 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c: \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043a\u043e\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c: \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u043a\u043e\u0434. \u041a\u0430\u043a \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u0435\u043c\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0437\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439. \u0415\u0441\u043b\u0438 \u043b\u0435\u043d\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 <abbr title=\"\u0430\u043d\u0433\u043b.: Integrated development environment (IDE)\">\u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/abbr>, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c <a href=\"https:\/\/www.softwaretestinghelp.com\/best-cpp-compiler-ide\/#C_Online_Compilers\" rel=\"noopener noreferrer nofollow\">\u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/a>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 <a href=\"https:\/\/godbolt.org\/\" rel=\"noopener noreferrer nofollow\">godbolt.org<\/a> (\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u043f\u0446\u0438\u0435\u0439 &#171;-O0&#187;).<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u043f\u0440\u0435\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 (\u0431\u0435\u0437 &#171;printf&#187; \/ &#171;std::cout&#187;). \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u0448\u0443\u043c\u0430 \u0432 \u043a\u043e\u0434\u0435. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432 IDE, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 &#8212; \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u043a\u0440\u043e\u0441:<\/p>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043a\u0440\u043e\u0441 PrintExpression<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">\/\/ \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0435 \u0433\u0434\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0440\u043e\u0441 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \/\/ \u0438\u043d\u043a\u043b\u0443\u0434: \"#include &lt;iostream>\"  \/\/ \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u043c\u0430\u043a\u0440\u043e\u0441. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432 \"std::cout\" \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \/\/ \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (\u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u0435\u0442\u0441\u044f \/\/ \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438) \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. #define PrintExpression(Expression)\\      std::cout &lt;&lt; \"{\" #Expression \"}: \" &lt;&lt; (Expression) &lt;&lt;\\      \t\tstd::endl;  \/\/ \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u0430:  \/\/ 1. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 int value = 1; PrintExpression(value) \/\/\u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: {value}: 1  \/\/ 2. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f int arrayValue[]{ 1, 2, 3, 4 }; PrintExpression(arrayValue[1] + arrayValue[2]) \/\/ \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: {arrayValue[1] + arrayValue[2]}: 5<\/code><\/pre>\n<\/div>\n<\/details>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438 &#8212; \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u0443 \u043e\u0442 \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437\u0432\u043b\u0451\u043a \u0434\u0430\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u0421 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0431\u044b\u0432\u0430\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u0430\u043b\u0451\u043a \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430: \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0438\u043f &#171;int&#187; \u0432\u043c\u0435\u0441\u0442\u043e &#171;size_t&#187;, \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0434, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0438 \u0442.\u0434. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e\u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u043c\u0435\u0436\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u0430 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u044b, \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0451\u043c\u043e\u0432 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043a\u043e\u0434\u0435, \u0438\u043d\u043e\u0433\u0434\u0430 \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u0442\u0435\u043c\u044b \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c. \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0442\u0435\u043c\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u043e\u0439 &#8212; \u0432\u043e\u0442 \u0442\u0430\u043a: <strong>(*)<\/strong>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u0435\u043c\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0425\u0430\u0431\u0440 &#8212; \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c. \u041a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043d\u044f\u0442\u0438\u044f &#171;template instantiation&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e &#171;\u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439&#187; \u043f\u0435\u0440\u0435\u0432\u043e\u0434 &#171;\u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430&#187;. \u041d\u0435\u0443\u043a\u043b\u044e\u0436\u0435 &#8212; \u043e\u0434\u043d\u0430\u043a\u043e, \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u0432\u044b\u0448\u043b\u043e. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043a\u0438, \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <abbr title=\"\u0414\u0430, \u0432\u043e\u0442 \u0442\u0430\u043a\">\u043d\u0430\u0432\u0435\u0434\u044f \u043c\u044b\u0448\u043a\u0443<\/abbr>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u0447\u043d\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#8212; \u043f\u0438\u0448\u0438\u0442\u0435, \u043e\u0431\u0441\u0443\u0434\u0438\u043c. \u042f \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043c\u0435\u043d\u044f\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0443\u0434\u0443 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a, \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438, \u0432 \u043a\u043e\u043d\u0446\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u0438\u0442\u0440\u044b \u0441 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c &#171;\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445&#187; \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0435 \u0437\u0430\u0433\u0440\u043e\u043c\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c \u043b\u0438\u0448\u043d\u0438\u043c \u0441\u043f\u0430\u043c\u043e\u043c, \u043f\u043e \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043b\u0438\u0447\u043a\u0443.<\/p>\n<\/li>\n<\/ol>\n<h2>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#_1_FunctionTempates\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_2_TypeDeduction\" rel=\"noopener noreferrer nofollow\">\u0412\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_3_ClassTemplates\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_4_Specializations\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_5_ArgumentsValidation\" rel=\"noopener noreferrer nofollow\">\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_6_MoreArguments\" rel=\"noopener noreferrer nofollow\">\u0411\u043e\u043b\u044c\u0448\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_7_NonTypeArguments\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_8_TemplateContext\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_9_PartialSpecializations\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/a><\/p>\n<\/li>\n<\/ol>\n<p><a href=\"#_Conclusion\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<p><a href=\"#_FAQ\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b<\/a><\/p>\n<p><a class=\"anchor\" name=\"_1_FunctionTempates\" id=\"_1_FunctionTempates\"><\/a><\/p>\n<h2>1. \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/h2>\n<p>\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0437 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\" rel=\"noopener noreferrer nofollow\">Don&#8217;t repeat yourself<\/a>. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u044b C++ \u0432\u0432\u0435\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0432 \u044f\u0437\u044b\u043a.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0434\u0430 \u0432\u044b\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041a\u043e\u0434, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u2026<\/p>\n<pre><code class=\"cpp\">int main() { \tconst int a = 3, b = 2, c = 1; \t \tconst int abMax = (a >= b) ? a : b; \tconst int max = (abMax >= c) ? abMax : c;  \treturn 0; } <\/code><\/pre>\n<p>\u2026\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442, \u0443\u0431\u0438\u0440\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cpp\">int max(int a, int b) { \treturn (a >= b ? a : b); }  \/\/...  int main() { \tconst int a = 3, b = 2, c = 1;  \tconst int abMax = max(a, b); \tconst int max = max(abMax, c);  \treturn 0; } <\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u0430\u0451\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432:<\/p>\n<ol>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443 &#8212; \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043f\u0438\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0415\u0441\u043b\u0438 \u0431\u044b \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u0430\u0445, \u0441 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0435\u0439 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432: &#171;(a >= b) ? b : a&#187; \u0438 &#171;(max_ab >= c) ? c : max_ab&#187; &#8212; \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u0441\u043a\u0430\u0442\u044c \u0438 \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438 &#8212; \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u043c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0434\u0435 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0435\u0435. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u0438\u0434\u0430 &#171;(&#8230; >= &#8230;) ? &#8230; : &#8230;&#187; , \u043d\u0430\u0434\u043e \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u044b\u0431\u043e\u0440\u0430 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0434\u0432\u0443\u0445 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u043e\u0432\u043e. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0436\u0435 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 <em>\u0438\u043c\u0435\u043d\u0443\u0435\u0442<\/em> \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0447\u0438\u0449\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432: \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 (1, 2, 4, 8 \u0431\u0430\u0439\u0442), \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0445 (signed \/ unsigned), \u0434\u043b\u044f \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (&#171;float&#187;, &#171;double&#187;)?<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">char max(char a, char b) { \treturn (a >= b ? a : b); }  unsigned char max(unsigned char a, unsigned char b) { \treturn (a >= b ? a : b); }  short int max(short int a, short int b) { \treturn (a >= b ? a : b); }  unsigned short int max(unsigned short int a, unsigned short int b) { \treturn (a >= b ? a : b); }  int max(int a, int b) { \treturn (a >= b ? a : b); }  unsigned int max(unsigned int a, unsigned int b) { \treturn (a >= b ? a : b); }  \/\/ ... \u0438 \u0442.\u0434. \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \"float\" \u0438 \"double\"...  int main() { \tconst int a = 3, b = 2, c = 1; \tconst int abMax = max(a, b); \tconst int max = max(abMax, c);      \/\/ ...\u0437\u0430\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \"char\"   const char aChar = 'c', bChar = 'b', cChar = 'a'; \tconst char abMaxChar = max(aChar, bChar); \tconst char maxChar = max(abMaxChar, cChar);  \treturn 0; }<\/code><\/pre>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u0427\u0442\u043e \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u0435\u0435, \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041b\u043e\u0433\u0438\u043a\u0430, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0442\u0438\u043f\u0430, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>\u041f\u0440\u0438\u0434\u044f \u043a \u0442\u0435\u043c \u0436\u0435 \u043d\u0435\u0443\u0442\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u0430\u043c, \u0432 1985 \u0433\u043e\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 <strong>\u0448\u0430\u0431\u043b\u043e\u043d\u044b<\/strong>:<\/p>\n<pre><code class=\"cpp\">\/\/ \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 max, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u043e\u0434\u0438\u043d \u0448\u0430\u0431\u043e\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \/\/ \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \"Type\". \u0418\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c, \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435 \u0436\u0435 \u0447\u0442\u043e \/\/ \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0442\u0438\u043f\u043e\u0432. \/\/ \u0412\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \"typename\" \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u0442\u0438\u043f\u0430 \/\/ \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \"class\". \u041d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \/\/ (\u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438) \u044d\u0442\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0438\u0447\u043d\u044b. template&lt;typename Type> Type max(Type a, Type b) { \treturn (a >= b ? a : b); }  int main() {   \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \"max&lt;Type>(Type, Type)\" \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \"int\" \tconst int a = 3, b = 2, c = 1; \tconst int abMax = max&lt;int>(a, b); \tconst int max = max&lt;int>(abMax, c);    \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 max&lt;Type>(Type, Type) \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \"char\"   \tconst char aChar = 3, bChar = 2, cChar = 1; \tconst char abMaxChar = max&lt;char>(aChar, bChar); \tconst char maxChar = max&lt;char>(abMaxChar, cChar);      \treturn 0; } <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 &#171;\u0444\u0443\u043d\u043a\u0446\u0438\u044e&#187; \u0441 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 &#8212; <strong>template&lt;typename Type><\/strong>. \u0421\u043b\u043e\u0432\u043e &#171;\u0444\u0443\u043d\u043a\u0446\u0438\u044f&#187; \u0432\u0437\u044f\u0442\u043e \u0442\u0443\u0442 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e. \u042d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u0414\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: &#171;\u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 template&lt;typename Type> \u043e\u043f\u0438\u0441\u0430\u043d <em>\u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/em>, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 <em>\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439<\/em> \u0442\u0438\u043f\u0430 \u0432\u043c\u0435\u0441\u0442\u043e <em>\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430<\/em> Type <em>\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f <\/em>\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438&#187;.<\/p>\n<p>\u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u0443\u0442\u0430\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; \u044d\u0442\u043e &#171;Type a&#187; \u0438 &#171;Type b&#187;) \u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u0430 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; \u044d\u0442\u043e &#171;typename Type&#187;). \u041f\u0435\u0440\u0432\u044b\u0435 \u0437\u0430\u0434\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435. \u0412\u0442\u043e\u0440\u044b\u0435 \u0436\u0435 \u0437\u0430\u0434\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: &#171;max&lt;int>(a, b)<em>&#171;<\/em>. \u0412 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f <em>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/em>. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187; \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8212; \u0442\u0438\u043f &#171;int&#187;. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 &#171;\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c&#187; \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0422\u043e, \u0447\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0437\u0430\u043f\u0438\u0441\u0438 &#171;max&lt;int>()&#187;, \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">int max&lt;int>(int a, int b) { \treturn (a >= b ? a : b); }<\/code><\/pre>\n<p>\u0412\u0441\u0442\u0440\u0435\u0447\u0430\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 &#171;Type&#187; \u0442\u0438\u043f\u0430 &#171;int&#187;, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0436\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u0412\u0441\u0442\u0440\u0435\u0442\u0438\u0432 \u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c &#8212; &#171;max&lt;char>(aChar, bChar)&#187; &#8212; \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0440\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e &#8212; \u043d\u043e \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0443:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f max&lt;char>() \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a char max&lt;char>(char a, char b) { \treturn (a >= b ? a : b); }<\/code><\/pre>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;max&lt;int>()&#187; \u0438 &#171;max&lt;char>()&#187; &#8212; \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u0441\u0432\u043e\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<p>\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 C++ \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Function template\">\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/abbr><\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0431\u0435\u0437 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434. \u0414\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u044d\u0442\u043e \u0440\u0435\u0446\u0435\u043f\u0442, \u043f\u0440\u0430\u0432\u0438\u043b\u043e &#171;\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438&#187; \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 <abbr title=\"\u0430\u043d\u0433\u043b.: Substitution\">\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/abbr> \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <abbr title=\"\u0430\u043d\u0433\u043b.: Instantiated\">\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f<\/abbr> \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Template function\">\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439<\/abbr><\/strong>. \u0422\u0435\u0440\u043c\u0438\u043d\u044b \u0437\u0432\u0443\u0447\u0430\u0442 \u043f\u043e\u0445\u043e\u0436\u0435 \u0438 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u044e\u043c\u0438\u0440\u0443\u0435\u043c: \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0430\u043a\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Metaprogramming\">\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c<\/abbr><\/strong> \u0438\u043b\u0438 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Generic programming\">\u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c<\/abbr><\/strong>.<\/p>\n<p><a class=\"anchor\" name=\"_2_TypeDeduction\" id=\"_2_TypeDeduction\"><\/a><\/p>\n<h3>2. \u0412\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;template&lt;Type> max(Type, Type)&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u044f\u0432\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0442\u0438\u043f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<p>\u0412\u044b\u0437\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430&#8230;<\/p>\n<pre><code class=\"cpp\">\/\/ const int a = 3, b = 2; const int abMax = max&lt;int>(a, b);<\/code><\/pre>\n<p>&#8230;\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u043e\u043f\u0443\u0441\u0442\u0438\u0432 &lt;int>:<\/p>\n<pre><code class=\"cpp\">\/\/ const int a = 3, b = 2; const int abMax = max(a, b);<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0438\u043f\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 &#171;a&#187; \u0438 &#171;b&#187; \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Type deduction\">\u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430<\/abbr><\/strong> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187;.<\/p>\n<p>\u0422\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#171;a&#187; &#8212; &#171;int&#187;, \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#171;b&#187; \u2013 \u0442\u043e\u0436\u0435 &#171;int&#187;. \u041e\u043d\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;template&lt;Type> Type max(Type, Type)&#187;, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0442\u0438\u043f &#171;Type&#187;. \u0422\u0430\u043a \u043a\u0430\u043a \u0442\u0438\u043f\u044b &#171;a&#187; \u0438 &#171;b&#187; \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u0438 \u043d\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#171;Type&#187;, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c\u044e &#171;max(a, b)&#187; \u043e\u0436\u0438\u0434\u0430\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;max&lt;int>(a, b)&#187;.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434&#8230;<\/p>\n<pre><code class=\"cpp\">const int a = 1; const char bChar = 'b'; const int abMax = max(a, bChar);<\/code><\/pre>\n<p>&#8230;\u043d\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0432\u0440\u043e\u0434\u0435: &#171;deduced conflicting types for parameter \u2018Type\u2019&#187;.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0442\u0438\u043f\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 &#171;a&#187; \u0438 &#171;b&#187; \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187;. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f &#171;int&#187; \u0438\u043b\u0438 \u0442\u0438\u043f &#171;char&#187;. \u041d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0430\u043a\u0430\u044f \u0438\u0437 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044f\u0432\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0442\u0438\u043f\u0430 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d:<\/p>\n<pre><code class=\"cpp\">const int a = 1; const char bChar = 'b'; const int abMax = max&lt;int>(a, bChar);<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e. \u0428\u0430\u0431\u043b\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e: &#171;int max&lt;int>(int, int)&#187;. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#171;bChar&#187; \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442\u0441\u044f  \u043a \u0442\u0438\u043f\u0443 &#171;int&#187; &#8212; \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0431\u044b \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043d\u0435\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;int max(int, int)&#187; \u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p><a class=\"anchor\" name=\"_3_ClassTemplates\" id=\"_3_ClassTemplates\"><\/a><\/p>\n<h3>3. \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432<\/h3>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440.<\/p>\n<p>\u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Interval. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u0434 \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u043d\u0443\u0436\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \"template&lt;Type> max(Type, Type)\" \u0438\u0437 \/\/ \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430. \u041d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \/\/ \"max&lt;>()\" \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \"template&lt;Type> min(Type, Type)\", \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \/\/ \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043d\u0430 \u0434\u043e\u043c.  template&lt;typename Type> class Interval { public: \tInterval(Type inStart, Type inEnd) \t\t: start(inStart), end(inEnd)   {   }  \tType getStart() const   {     return start;   }  \tType getEnd() const   {     return end;   }  \tType getSize() const   {     return (end - start);   }    \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \tInterval&lt;Type> intersection(const Interval&lt;Type>&amp; inOther) const   {     return Interval&lt;Type>{         max(start, inOther.start),         min(end, inOther.end)     };   }  private:   Type start;   Type end; };<\/code><\/pre>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041e\u043d\u0438 \u043d\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b, \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 &#171;template&lt;Type> class Interval&#187;:<\/p>\n<pre><code class=\"cpp\">int main() {   \/\/ \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0438\u043f\u0430 \"int\" \tconst Interval&lt;int> intervalA{ 1, 3 }; \tconst Interval&lt;int> intervalB{ 2, 4 };  \tconst Interval&lt;int> intersection{ intervalA.intersection(intervalB) }; \tconst int intersectionStart = intersection.getStart(); \tconst int intersectionEnd = intersection.getEnd();   const int intersectionSize = intersection.getSize();      \/\/ \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0438\u043f\u0430 \"char\" \tconst Interval&lt;char> intervalAChar{ 'a', 'c' }; \tconst Interval&lt;char> intervalBChar{ 'b', 'd' };  \tconst Interval&lt;char> intersectionChar{ intervalAChar.intersection(intervalBChar) }; \tconst char intersectionStartChar = intersectionChar.getStart(); \tconst char intersectionEndChar = intersectionChar.getEnd();   const char intersectionSizeChar = intersectionChar.getSize();      \treturn 0; }  \/\/ (*) \/\/ \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u043c\u0430\u0440\u043a\u0430 \u21161 \/\/ \u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \"\u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\" \/\/ (\u0430\u043d\u0433\u043b.: \"uniform initialization\"). \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e \u043d\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0415\u0441\u043b\u0438 \/\/ \u043a\u043e\u0440\u043e\u0442\u043a\u043e - \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u0444\u043e\u0440\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \/\/ \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432\/\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0430\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0412 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043f\u0438\u0448\u0443\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \/\/ \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\/\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0430\u0442\u043e\u0440. \u042d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \/\/ \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432: \/\/  \/\/ int unifiedInitializedInt{ 0 }; \/\/  \/\/ \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 (\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0443 \u0432 2D \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435): \/\/ \/\/ Point2D unifiedInitializedPoint2D{ 1.f, 2.f };  \/\/ (*) \/\/ \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u043c\u0430\u0440\u043a\u0430 \u21162 \/\/ \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0442\u043c\u0435\u0442\u0438\u043c: \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \"intersection\" \/\/ \u0438 \"intersectionChar\" \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \/\/ \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u041e\u043d \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u0430, \u043e\u0434\u043d\u0430\u043a\u043e, \u0432 C++ \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \/\/ \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \/\/ \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. <\/code><\/pre>\n<p>\u0412\u0441\u0442\u0440\u0435\u0442\u0438\u0432 \u0437\u0430\u043f\u0438\u0441\u044c &#171;Interval&lt;int>&#187; \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437, \u043f\u043e <em>\u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u043a\u043b\u0430\u0441\u0441\u0430<\/em> \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d \u043d\u043e\u0432\u044b\u0439 <em>\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441<\/em>. \u041f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"Type\" \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \/\/ \u0442\u0438\u043f\u0430 \"int\". \/\/ \/\/ \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u043d\u0430\u0434 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043a\u0430\u043a \u043e\u043d\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0434\u043e \/\/ \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \/\/ class Interval&lt;int> { public: \t\/\/Interval(Type inStart, Type inEnd) \tInterval(int inStart, int inEnd) \t\t: start(inStart), end(inEnd)   {   }  \t\/\/Type getStart() const \tint getStart() const   {     return start;   }  \t\/\/Type getEnd() const \tint getEnd() const   {     return end;   }  \t\/\/Type getSize() const \tint getSize() const   {     return (end - start);   }  \t\/\/Interval&lt;Type> intersection(const Interval&lt;Type>&amp; inOther) const \tInterval&lt;int> intersection(const Interval&lt;int>&amp; inOther) const   {   \t\/\/return Interval&lt;Type>{     \/\/    max(start, inOther.start),     \/\/    min(end, inOther.end)     \/\/};     return Interval&lt;int>{         max(start, inOther.start),         min(end, inOther.end)     };   }  private: \t\/\/Type start;   int start;      \/\/Type end;   int end; };<\/code><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 &#171;int&#187; \u0432\u043c\u0435\u0441\u0442\u043e &#171;Type&#187;. \u041f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u0448\u0430\u0431\u043b\u043e\u043d &#171;template&lt;Type> class Interval&lt;Type>&#187; \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 &#171;int&#187;.<\/p>\n<p>\u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Class template\">\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0430<\/abbr><\/strong>. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0442\u0438\u043f\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 <em><abbr title=\"\u0430\u043d\u0433\u043b.: Instantiated\">\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f<\/abbr><\/em> \u043d\u043e\u0432\u044b\u0439 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Template class\">\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441<\/abbr><\/strong>. \u0412\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0438\u043f\u0430, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0442\u0438\u043f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p><a class=\"anchor\" name=\"_4_Specializations\" id=\"_4_Specializations\"><\/a><\/p>\n<h2>4. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   <\/h2>\n<p>\u042d\u0442\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u0438\u043d\u043d\u0435\u0435 \u0434\u0440\u0443\u0433\u0438\u0445.<\/p>\n<p>\u041b\u0443\u0447\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 &#171;\u043c\u0430\u0441\u0441\u0438\u0432&#187;. \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u043c\u0430\u0441\u0441\u0438\u0432 \u2013 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u043d\u0430\u0431\u043e\u0440 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u043e \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412 <abbr title=\"\u0430\u043d\u0433\u043b.: Standard Template Library (STL)\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/abbr> \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 &#171;std::vector&lt;>&#187;.<\/p>\n<p>\u0412\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> class SimpleArray { public:    \t\/\/ (*) \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438   \/\/ \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430, \u043e\u043d\u043e   \/\/ \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 - \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u0430 \u043a\u0443\u0447\u0435, \u0432\u044b\u0437\u043e\u0432\u043e\u043c   \/\/ \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \"new[]\" \tSimpleArray(int inElementsNum) \t\t: elements(new Type[inElementsNum]), num(inElementsNum) \t{ \t}  \tint getNum() const \t{ \t\treturn num; \t}  \tType getElement(int inIndex) const \t{ \t\treturn elements[inIndex]; \t}  \tvoid setElement(int inIndex, Type inValue) \t{ \t\telements[inIndex] = inValue; \t}  \t~SimpleArray() \t{ \t\tdelete[] elements;   }  private: \tType* elements = nullptr; \tint num = 0; };<\/code><\/pre>\n<p>\u041f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">int main() { \tSimpleArray&lt;int> simpleArray{ 4 };  \tsimpleArray.setElement(0, 1); \tsimpleArray.setElement(1, 2); \tsimpleArray.setElement(2, 3); \tsimpleArray.setElement(3, 4);  \tint sum = 0; \tfor (int index = 0; index &lt; simpleArray.getNum(); ++index) \t\tsum += simpleArray.getElement(index);  \treturn 0; }<\/code><\/pre>\n<p>&#171;SimpleArray&lt;int>&#187; &#8212; \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u0448\u0430\u0431\u043b\u043e\u043d &#171;template&lt;Type> class SimpleArray&#187; \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187; \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0442\u0438\u043f &#171;int&#187;. \u041c\u0430\u0441\u0441\u0438\u0432 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0443 &#171;setElement()&#187;, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0442\u0438\u043f\u0430 bool:<\/p>\n<pre><code class=\"cpp\">int main() { \tSimpleArray&lt;bool> simpleBoolArray{ 4 };  \tsimpleArray.setElement(0, true); \tsimpleArray.setElement(1, false); \tsimpleArray.setElement(2, false); \tsimpleArray.setElement(3, true);  \treturn 0; }<\/code><\/pre>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u043c\u0435\u044e\u0442 \u0431\u0443\u043b\u0435\u0432\u044b\u0439 \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0443\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439: &#171;false&#187; \u0438\u043b\u0438 &#171;true&#187; (\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 &#171;0&#187; \u0438\u043b\u0438 &#171;1&#187;). \u0412\u043e\u0442 \u043a\u0430\u043a &#171;SimpleArray&lt;bool>&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0442\u0443\u0442 \u0438\u0441\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0438\u043f &#171;bool&#187; \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442):<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"56\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e04\/798\/00a\/e0479800a3af1e8f5d3db99f152e53fa.png\" data-width=\"624\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u043f\u043e\u0431\u0438\u0442\u043d\u043e, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u0432\u043e\u0441\u0435\u043c\u044c \u0440\u0430\u0437 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0435\u0435.<\/p>\n<p>C++ \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Template specialization\">\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d<\/abbr>\u043e\u0432<\/strong>. \u041e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0434\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0442\u0438\u043f &#171;bool&#187;.<\/p>\n<p>\u0412\u043e\u0442 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0423 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0435 \u043d\u0430\u043c, \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \/\/ \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442. template&lt;typename Type> class SimpleArray { \t\/\/... };  \/\/ \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f _\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430_. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432 SimpleArray \u0432 \/\/ \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \"Type\" \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \"bool\" (\"SimpleArray&lt;bool>\"), \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \/\/ \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. template&lt;> \/\/ [1] class SimpleArray&lt;bool> \/\/ [2] { \t\/\/... };  \/\/ [1] \u2013 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \/\/  \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u042d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \/\/  \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439: \u0434\u043b\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 _\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439_ (partial \/\/  specialization). \u041c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0441\u043d\u0451\u043c\u0441\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435. \/\/ \/\/ [2] \u2013 \u0442\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \/\/  \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435: \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \/\/  \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"Type\" \u0432 \"template&lt;Type> class SimpleArray\" \/\/  \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0442\u0438\u043f \"bool\". \/\/ \/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0442\u0438\u043f\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0431\u044b \/\/ \u044d\u0442\u043e \u0438\u043c\u0435\u043b\u043e \u0441\u043c\u044b\u0441\u043b, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e: \/\/ \/\/ template&lt;> \/\/ class SimpleArray&lt;int> \/\/ { \/\/ \t\/\/... \/\/ }; \/\/ \/\/ \u041e\u043d\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0430\u0441\u044c \u0431\u044b, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \"Type\" \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u0441\u044f \u0442\u0438\u043f \"int\".<\/code><\/pre>\n<p>\u041d\u0438\u0436\u0435 &#8212; \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 &#171;template&lt;Type> class SimpleArray&#187;.<\/p>\n<pre><code class=\"cpp\">\/\/ (*) \u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \"BitArrayAccessData\" \u0445\u0440\u0430\u043d\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \/\/ \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0438\u0442\u0430\u043c \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \"SimpleArray&lt;bool>\". \u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \/\/ \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0438\u0436\u0435, \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u043c\u0435\u0442\u043e\u0434\u0443 \"SimpleArray&lt;bool>::getAccessData()\". struct BitArrayAccessData {     int byteIndex = 0;   int bitIndexInByte = 0; };  \/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u0430, \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \/\/ \"Type\" \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0442\u0438\u043f \"bool\". template&lt;> class SimpleArray&lt;bool> { public:  \t\/\/ (*) \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \"unsigned char\", \u0442\u0430\u043a \u043a\u0430\u043a   \/\/ \u044d\u0442\u043e\u0442 \u0442\u0438\u043f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u0445. \tSimpleArray(int inElementsNum) \t\t: elementsMemory(nullptr), num(inElementsNum) \t{   \t\/\/ (*) \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0447\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c, \u0447\u0442\u043e \u0438 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f     \/\/ \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0435 \u0432     \/\/ \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043d\u0443\u0436\u043d\u044b\u0445 \u0434\u043b\u044f     \/\/ \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.          \/\/ (*) \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u043a\u043e\u043c \u0431\u0430\u0439\u0442\u0435 \u0438 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u0431\u0438\u0442\u0443 \u0432 \u044d\u0442\u043e\u043c \u0431\u0430\u0439\u0442\u0435     \/\/ \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u044d\u0442\u0430     \/\/ \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \"SimpleArray&lt;bool>::getAccessData()\".   \tconst int lastIndex = (inElementsNum - 1);   \tconst BitArrayAccessData lastElementAccessData = getAccessData(lastIndex);  \t\t\/\/ (*) \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441     \/\/ \u0431\u0430\u0439\u0442 \u043f\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u044b\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c. \u0422\u0430\u043a \u043a\u0430\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441     \/\/ \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e, \u043d\u0430\u0434\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043a \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0430\u0439\u0442\u0443 \u043f\u043e \u044d\u0442\u043e\u043c\u0443     \/\/ \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u044b\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c. \t\tconst int neededBytesNum = lastElementAccessData.byteIndex + 1; \t\telementsMemory = new unsigned char[neededBytesNum];          \/\/ (*) \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u043d\u0435 \u043a\u0440\u0430\u0442\u043d\u044b\u0445 \u0432\u043e\u0441\u044c\u043c\u0438, \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c     \/\/ \u0431\u0430\u0439\u0442\u0435 \u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0430\u0441\u0442\u044c \u0431\u0438\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439.     \/\/ \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439. \u0412 \u043d\u0451\u043c \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e     \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0431\u0438\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430 (\u043f\u0440\u0438\u0447\u0451\u043c, \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0435\u043c\u0438 \u0431\u0438\u0442). \t}  \tint getNum() const \t{ \t\treturn num; \t}  \tbool getElement(int inIndex) const \t{     \/\/ (*) \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043c\u0430\u0441\u043a\u0435. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0430\u0439\u0442\u0430,     \/\/ \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u0442\u043e\u043c \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0431\u0438\u0442\u0430, \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0431\u0438\u0442     \/\/ \u0432 \u044d\u0442\u043e\u043c \u0431\u0430\u0439\u0442\u0435 (\u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e - \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043d\u0438\u0436\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430). \t\tconst BitArrayAccessData accessData = getAccessData(inIndex);     const unsigned char elementMask = (1 &lt;&lt; accessData.bitIndexInByte); \t\treturn elementsMemory[accessData.byteIndex] &amp; elementMask; \t} \t \tvoid setElement(int inIndex, bool inValue) const \t{ \t\tconst BitArrayAccessData accessData = getAccessData(inIndex);  \t\tconst unsigned char elementMask = (1 &lt;&lt; accessData.bitIndexInByte); \t\telementsMemory[accessData.byteIndex] = \t\t     (elementsMemory[accessData.byteIndex] &amp; ~elementMask) | \t\t     (inValue ? elementMask : 0); \t}      ~SimpleArray()   { \t\tdelete[] elementsMemory;   }    private:   \/\/ (*)   \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0438\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430.   \/\/ \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0430\u0439\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0449\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430:   \/\/   \/\/   inIndex \/ sizeof(unsigned char) \t\/\/   \/\/ \u041f\u043e\u0442\u043e\u043c, \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0438\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u043d\u044b\u0445 \u0431\u0438\u0442 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0434\u043e   \/\/ \u0431\u0430\u0439\u0442\u0430 \u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u043c \u043d\u0430\u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0438\u0442\u0430 \u0432 \u044d\u0442\u043e\u043c \u0431\u0430\u0439\u0442\u0435:   \/\/   \/\/   inIndex - byteIndex* sizeof(unsigned char)   \/\/   \/\/ \u0417\u0432\u0443\u0447\u0438\u0442 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e. \u041b\u0443\u0447\u0448\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439   \/\/ \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438. \u0412 \u043f\u043e\u043b\u044f BitArrayElementAccessData \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f   \/\/ \"\u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0430\u0439\u0442\u0430\" \u0438 \"\u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0438\u0442\u0430 \u0432 \u0431\u0430\u0439\u0442\u0435\":   \/\/   \/\/ \u0418\u043d\u0434\u0435\u043a\u0441\u044b...   \/\/ ...\u0441\u043a\u0432\u043e\u0437\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 |0 1 2 3 4 5 6 7|8 9 10 11 12 13 14 15|   \/\/ ...\u0431\u0430\u0439\u0442\u043e\u0432:        |        0      |          1          | --> byteIndex   \/\/ ...\u0431\u0438\u0442\u043e\u0432 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 |0 1 2 3 4 5 6 7|0 1 2  3  4  5  6  7 | --> bitIndexInByte   \/\/   static BitArrayAccessData getAccessData(int inElementIndex)   {     \tBitArrayAccessData result;     result.byteIndex = inElementIndex \/ 8; \t\tresult.bitIndexInByte = inElementIndex - result.byteIndex * 8;  \t     return result;   }    unsigned char* elementsMemory = nullptr;   int num = 0; }; <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>(*) \u041b\u0438\u043a\u0431\u0435\u0437 \u043f\u043e \u043f\u043e\u0431\u0438\u0442\u043d\u044b\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0438\u0442\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<ol>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043b\u0435\u0432\u043e (&lt;&lt;)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e &#171;\u0418&#187; (&amp;)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e &#171;\u0418\u041b\u0418&#187; (|)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u044f (~)<\/p>\n<\/li>\n<\/ol>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0438\u0442\u0430\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041f\u0443\u0441\u0442\u044c \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u043e\u0439 \u0432 \u0431\u0430\u0439\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0431\u0438\u0442\u044b:<\/p>\n<pre><code>\u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432:  0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:  1 0 0 1 1 0 0 1<\/code><\/pre>\n<p>\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u0441 \u0437\u0430\u0434\u0430\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c? \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0438\u0431\u043e &#171;0&#187;, \u043b\u0438\u0431\u043e &#171;1&#187;, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0435\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0438\u043f &#171;bool&#187;. &#171;bool&#187; \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b &#171;\u043b\u043e\u0436\u044c&#187; \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0435\u0433\u043e \u0431\u0438\u0442\u044b \u0440\u0430\u0432\u043d\u044b &#171;0&#187; \u0438 \u0441\u043c\u044b\u0441\u043b &#171;\u0438\u0441\u0442\u0438\u043d\u0430&#187; \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0435\u0433\u043e \u0431\u0438\u0442 \u043d\u0435 \u0440\u0430\u0432\u0435\u043d &#171;0&#187;. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0441 \u0431\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187; \u0438\u043b\u0438 &#171;1&#187;, \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0431\u0438\u0442\u044b \u043a\u0440\u043e\u043c\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u0430\u0441 \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187;. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0441\u043a\u0438 &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 &#171;\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u044e\u0442\u0441\u044f&#187; \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441 \u0431\u0438\u0442\u044b.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c &#171;4&#187;. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b &#171;\u043e\u0431\u043d\u0443\u043b\u0438\u0442\u044c&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0431\u0438\u0442\u043e\u0432 \u043a\u0440\u043e\u043c\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0442\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 &#171;4&#187; \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;1&#187;, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187;. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 &#171;\u0418&#187; \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 \u0431\u0438\u0442\u0430\u043c\u0438 \u043c\u0430\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0431\u0438\u0442\u044b \u043a\u0440\u043e\u043c\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0432\u043d\u044b &#171;0&#187;:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 4<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                       v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432: 0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 1 0 0 1 1 0 0 1                &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \u0411\u0438\u0442\u044b \u043c\u0430\u0441\u043a\u0438:    0 0 0 0 1 0 0 0                --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:     0 0 0 0 1 0 0 0 = true                        ^<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0415\u0449\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 0<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>               v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432: 0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 1 0 0 1 1 0 0 1                &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \u0411\u0438\u0442\u044b \u043c\u0430\u0441\u043a\u0438:    1 0 0 0 0 0 0 0                --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:     1 0 0 0 0 0 0 0 = true                ^<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 5<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                         v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432: 0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 1 0 0 1 1 0 0 1                &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \u0411\u0438\u0442\u044b \u043c\u0430\u0441\u043a\u0438:    0 0 0 0 0 1 0 0                --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:     0 0 0 0 0 0 0 0 = false                          ^<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 1<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                 v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432: 0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 1 0 0 1 1 0 0 1                &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \u0411\u0438\u0442\u044b \u043c\u0430\u0441\u043a\u0438:    0 1 0 0 0 0 0 0                --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:     0 0 0 0 0 0 0 0 = false                  ^<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 &#171;bitIndex&#187;, \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e &#171;\u0418&#187; \u043c\u0435\u0436\u0434\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u043c\u0430\u0441\u043a\u043e\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 &#171;bitIndex&#187; \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;1&#187;, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187;. \u0412 \u043a\u043e\u0434\u0435 \u044d\u0442\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0412 \"value\" \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0431\u0438\u0442\u044b. \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \/\/ \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 C++14 const unsigned char value = 0b1001'1001;  \/\/ \u0418\u043d\u0434\u0435\u043a\u0441 \u0431\u0438\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c const int bitIndex = 4;  \/\/ \u0412 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u043d\u0438\u0436\u0435 - \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u043a\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \/\/ \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043b\u0435\u0432\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u041f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0439 \/\/ \u0441\u0434\u0432\u0438\u0433 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0440\u0430\u0432\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u0441 \/\/ \u043a\u0430\u0436\u0434\u044b\u043c \u0431\u0438\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0451\u043d\u043d\u044b\u043c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \/\/ \u0431\u0438\u0442\u043e\u0432 \u0440\u0430\u0432\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430. \u041c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0438\u0442\u044b \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \/\/ \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0443\u043b\u044f\u043c\u0438. \/\/ \/\/ \u041f\u0440\u0438\u043c\u0435\u0440\u044b: \/\/ \"00000001 &lt;&lt; 0\" \u0440\u0430\u0432\u043d\u043e \"00000001\" \/\/ \"00000001 &lt;&lt; 1\" \u0440\u0430\u0432\u043d\u043e \"00000010\" \/\/ \"00000001 &lt;&lt; 3\" \u0440\u0430\u0432\u043d\u043e \"00001000\" \/\/ \"00000001 &lt;&lt; 7\" \u0440\u0430\u0432\u043d\u043e \"10000000\" \/\/ \/\/ \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0432\u0438\u0433\u043e\u043c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043a\u0430\u043a \u0431\u044b \u0431\u0435\u0440\u0451\u043c \u0432\u0441\u0435 \u0431\u0438\u0442\u044b \/\/ \u0447\u0438\u0441\u043b\u0430 \u0438 \"\u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c\" \u0431\u0438\u0442\u044b \u043f\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043b\u0435\u0432\u043e, \u0437\u0430\u043c\u0435\u0449\u044f\u044f \/\/ \u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0438\u0442\u044b \u043d\u0443\u043b\u044f\u043c\u0438. const unsigned char mask = (1 &lt;&lt; bitIndex);  \/\/ \"result\" \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"true\" \u0435\u0441\u043b\u0438 \u0432 \u0431\u0438\u0442\u0435 \u0431\u044b\u043b\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"1\" \/\/ \u0438 \"false\" \u0435\u0441\u043b\u0438 \u0431\u0438\u0442 \u0431\u044b\u043b \u0440\u0430\u0432\u0435\u043d \"0\" const bool result = value &amp; mask;<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0438\u0442\u044b \u0442\u0435\u0440\u0435\u0440\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u0430\u043a \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0438\u0442 \u0432 \u0431\u0430\u0439\u0442\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043d\u0443\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c? \u042d\u0442\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430:<\/p>\n<ol>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0432 \u0431\u0430\u0439\u0442\u0435 &#171;\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f&#187; \u0432 &#171;0&#187;. \u042d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 &#171;\u0418&#187; \u043c\u0435\u0436\u0434\u0443 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c \u0431\u0430\u0439\u0442\u043e\u043c \u0438 \u043c\u0430\u0441\u043a\u043e\u0439 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u043f\u043e \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187;, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;1&#187;.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0435 \u0432 &#171;0&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 &#171;\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f&#187; \u043d\u0443\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e &#171;\u0418\u041b\u0418&#187; \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0438 \u043c\u0430\u0441\u043a\u043e\u0439 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;1&#187;, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;0&#187;.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0432\u0443\u0447\u0438\u0442 \u0441\u043b\u043e\u0436\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 (\u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043a\u0430\u043a\u043e\u0433\u043e \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435):<\/p>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 2 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1 (0 -> 1)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                          v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432:        0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:        1 0 0 1 1 0 0 1                       &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \"\u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 1 1 0 1 1 1 1 1                       - - - - - - - - \u0411\u0438\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430:    1 0 0 1 1 0 0 1                       | | | | | | | | \"\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 0 0 1 0 0 0 0 0  &lt;-- \u043f\u0438\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"1\" \"1\"                       --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:            1 0 1 1 1 0 0 1                           ^<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 7 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0 (1 -> 0)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                                    v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432:        0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:        1 0 0 1 1 0 0 1                       &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \"\u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 1 1 1 1 1 1 1 0                       - - - - - - - - \u0411\u0438\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430:    1 0 0 1 1 0 0 0                       | | | | | | | | \"\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 0 0 0 0 0 0 0 0   &lt;-- \u043f\u0438\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"0\"                       --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:            1 0 0 1 1 0 0 0                                     ^<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 6 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0 (0 -> 0)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>                                  v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432:        0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:        1 0 0 1 1 0 0 1                       &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \"\u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 1 1 1 1 1 1 0 1                       - - - - - - - - \u0411\u0438\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430:    1 0 0 1 1 0 0 1                       | | | | | | | | \"\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 0 0 0 0 0 0 0 0  &lt;-- \u043f\u0438\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"0\"                       --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:            1 0 0 1 1 0 0 1                                   ^<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 3 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1 (1 -> 1)<\/summary>\n<div class=\"spoiler__content\"><\/div>\n<\/details>\n<p><\/p>\n<pre><code>                            v \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0438\u0442\u043e\u0432:        0 1 2 3 4 5 6 7 \u0411\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:        1 0 0 1 1 0 0 1                       &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \"\u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 1 1 1 0 1 1 1 1                       - - - - - - - - \u0411\u0438\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430:    1 0 0 0 1 0 0 1                       | | | | | | | | \"\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f\" \u043c\u0430\u0441\u043a\u0430: 0 0 0 1 0 0 0 0  &lt;-- \u043f\u0438\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"1\"                       --------------- \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:            1 0 0 1 1 0 0 1                             ^<\/code><\/pre>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u044d\u0442\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439):<\/p>\n<pre><code class=\"cpp\">unsigned char value = 0b1001'1001;  \/\/ \u0418\u043d\u0434\u0435\u043a\u0441 \u0431\u0438\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c const int bitIndex = 2;  \/\/\u0412 \u0431\u0438\u0442\u0430\u0445 \"bitValueToSet\" \u0431\u0443\u0434\u0435\u0442 \u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"00000001\". \/\/ \u0415\u0441\u043b\u0438 \u0431\u044b \u0442\u0443\u0442 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"false\" \u0442\u0430\u043c \u0431\u044b\u043b\u043e \u0431\u044b \u0431\u0438\u0442\u043e\u0432\u043e\u0435 \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"00000000\". const bool bitValueToSet = true;  \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u043a\u0438  \/\/ \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u043c\u0443 \u0441\u0434\u0432\u0438\u0433\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \/\/ \u0434\u043b\u044f \"\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0439\" \u043c\u0430\u0441\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u043d\u0430\u0440\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \/\/ \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u044f (~). \/\/ \u041e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u043c\u0430\u0441\u043a\u0443. \u0421\u0443\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \/\/ \u043f\u0440\u043e\u0441\u0442\u0430\u044f - \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \/\/ \u0431\u0438\u0442\u044b \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (0->1, 1->0). \/\/ \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435: \/\/ \/\/ \"1 &lt;&lt; bitIndex\" \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:    00000100 \/\/ \"~(1 &lt;&lt; bitIndex)\" \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: 11111011 \/\/ \/\/ \u041f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e \u043d\u0430\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u0431\u0438\u0442\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e \u0438\u043d\u0432\u0435\u0440\u0441\u0438\u044e \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \/\/ const unsigned char resetMask = ~(1 &lt;&lt; bitIndex);  \/\/ \u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \"\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0439\" \u043c\u0430\u0441\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0434\u0432\u0438\u0433 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \/\/ \"bitValueToSet\" \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (\u0440\u0430\u0432\u043d\u043e\u0433\u043e \"00000001\"). \"bitIndex\" \u0438\u043c\u0435\u0435\u0442 \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"2\", \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \"setMask\" \u0431\u0443\u0434\u0435\u0442 \"00000001 &lt;&lt; 2\", \/\/ \u0447\u0442\u043e \u0440\u0430\u0432\u043d\u043e \"00000100\". const unsigned char setMask = (bitValueToSet &lt;&lt; bitIndex);  \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439): \/\/ \"(10011001 &amp; 11111011) | 00000100\", \u0447\u0442\u043e \u0440\u0430\u0432\u043d\u043e \"10011101\" value = (value &amp; resetMask) | setMask;<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f &#171;template&lt;Type> class SimpleArray&#187; \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e \u0442\u0438\u043f\u0443 &#171;bool&#187;:<\/p>\n<p><a class=\"anchor\" name=\"_4_Specializations__Example\" id=\"_4_Specializations__Example\"><\/a><\/p>\n<pre><code class=\"cpp\">int main() {   SimpleArray&lt;char> simpleArray{ 4 };  \tsimpleArray.setElement(0, 'A'); \tsimpleArray.setElement(1, 'B'); \tsimpleArray.setElement(2, 'C'); \tsimpleArray.setElement(3, 'D');   \/\/   \/\/ \u041d\u0430\u0434 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   \/\/ \"template&lt;Type> class SimpleArray\" \u043f\u043e \u0442\u0438\u043f\u0443 \"char\".   \/\/   \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440   \/\/ \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \"template&lt;> class SimpleArray&lt;bool>\" - \u0442\u0430\u043a \u043a\u0430\u043a   \/\/ \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0442\u0438\u043f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \"bool\". \u0414\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043d\u0435\u0442,   \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0441\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043d\u0430 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430:   \/\/ \"template&lt;Type> class SimpleArray\". \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f   \/\/ \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \"SimpleArray&lt;char>\"  \tSimpleArray&lt;bool> simpleBoolArray{ 8 };  \tsimpleArray.setElement(0, true);\/\/  1 \tsimpleArray.setElement(1, false);\/\/ 0 \tsimpleArray.setElement(2, false);\/\/ 0 \tsimpleArray.setElement(3, true);\/\/  1 \tsimpleArray.setElement(4, true);\/\/  1 \tsimpleArray.setElement(5, false);\/\/ 0 \tsimpleArray.setElement(6, false);\/\/ 0 \tsimpleArray.setElement(7, true);\/\/  1   \/\/   \/\/ \u041d\u0430\u0434 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   \/\/ \"template&lt;Type> class SimpleArray\" \u043f\u043e \u0442\u0438\u043f\u0443 \"bool\".   \/\/   \/\/ \u0422\u0443\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0432\u0435\u0434\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0442\u0438\u043f   \/\/ \u044d\u0442\u043e \"bool\". \u041e\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   \/\/ \"template&lt;> class SimpleArray&lt;bool>\"       \/\/ \u041e\u0442\u043c\u0435\u0442\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432:   \/\/   \/\/ 1. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430 \"char\" \u0438 \"bool\" \u043e\u0431\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 \u043f\u0430\u043c\u044f\u0442\u0438.   \/\/  \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u043e, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e \u0442\u0438\u043f\u0443 bool,   \/\/  \"SimpleArray&lt;bool>\" \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u044c\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u043e\u0433\u043e   \/\/  \u0431\u0430\u0439\u0442\u0430 (\u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0438\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430,   \/\/  \u0442\u043e \u0435\u0441\u0442\u044c, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u0431\u0438\u0442\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"10011001\").   \/\/  \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0436\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \"SimpleArray&lt;char>\", \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u044b\u0445   \/\/  \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 - \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0442\u0438\u043f\u0430 \"char\".   \/\/  \u0417\u0430 \u0441\u0447\u0451\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0443\u043b\u0435\u0432\u044b\u0445   \/\/  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0432\u043e\u0441\u0435\u043c\u044c \u0440\u0430\u0437 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0435\u0435.   \/\/   \/\/ 2. \u0412 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 \u043e\u0442\u043c\u0435\u0442\u0438\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b   \/\/  \"SimpleArray&lt;char>\" \u0438 \"SimpleArray&lt;bool>\" - \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b.   \/\/  \u041e\u043d\u0438 \u043e\u0431\u0430 \u043f\u043e\u0440\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \"template&lt;Type> class SimpleArray\" \u0438, \u043a\u0430\u043a   \/\/  \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e \u0434\u0430\u043b\u044c\u0448\u0435, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u044d\u0442\u043e\u043c \u0438\u0445   \/\/  \"\u0440\u043e\u0434\u0441\u0442\u0432\u0435\". \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u044b\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0441\u0442\u043e\u0438\u0442   \/\/  \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b).    \treturn 0; }<\/code><\/pre>\n<p>\u0417\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0440\u0430\u0437\u0434\u0435\u043b, \u0447\u0443\u0442\u044c \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0437\u0436\u0435 \u043e\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0440\u043e\u043b\u0435\u0439 \u0432 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 C++. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u0447\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438<\/a> \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"_5_ArgumentsValidation\" id=\"_5_ArgumentsValidation\"><\/a><\/p>\n<h3>5. \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u043d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u0438 \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0435\u0439 \u043c\u0435\u0441\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0434\u0435\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0435\u0441\u0441\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u043d\u043e. \u042f \u0440\u0435\u0448\u0438\u043b \u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0441 \u043b\u0443\u0447\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<p>\u0427\u0442\u043e \u0436&#8230; \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0451\u0433\u0442\u044f.<\/p>\n<p>\u0423\u0436\u0435 \u043f\u0440\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;template&lt;Type> max(Type, Type)&#187; \u043d\u0435\u043c\u0438\u043d\u0443\u0435\u043c\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441: \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043f\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d? \u0412\u0435\u0434\u044c \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0442\u0438\u043f \u043a\u0430\u043a-\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;template&lt;Type> max(Type, Type)&#187; \u0442\u0438\u043f, \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#171;>=&#187; ?<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> Type max(Type a, Type b) { \treturn (a >= b ? a : b); }  \/\/ \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0442\u043e\u0447\u043a\u0438 \u0432 \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0414\u043b\u044f \u0442\u043e\u0447\u043a\u0438 \/\/ \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c \"\u0431\u043e\u043b\u044c\u0448\u0435\" \u043b\u0438 \u043e\u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (\"x\" \u0438\u043b\u0438 \"y\") \u0442\u043e\u0447\u0435\u043a, \u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u0430\u043c\u0438 \u0442\u043e\u0447\u043a\u0438. \u0414\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \/\/ Point2D _\u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430_ \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \">=\". struct Point2D { \tfloat x = 0.f; \tfloat y = 0.f; };  \/\/ ...  int main() {   Point2D a;   Point2D b;    Point2D abMax = max&lt;Point2D>(a, b);   \/\/   \/\/ \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0438\u043f\u0430 \"Point2D\" \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \"Type\" \u0448\u0430\u0431\u043b\u043e\u043d\u0430   \/\/ \"template&lt;Type> max(Type, Type)\" \u043f\u043e\u0440\u043e\u0434\u0438\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043b\u044f   \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:   \/\/   \/\/ Point2D max&lt;Point2D>(Point2D a, Point2D b)   \/\/ {   \/\/    return (a >= b ? a : b);   \/\/ }   \/\/    \/\/ \u0412 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\"a\" \u0438 \"b\") \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0442\u0438\u043f   \/\/ \"Point2D\". \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u0432\u044b\u0448\u0435, \u0434\u043b\u044f \u0438\u0445 \u0442\u0438\u043f\u0430 \"Point2D\" \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f   \/\/ \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f _\u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430_ . \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443   \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u0440\u043e\u0434\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 (\u0442\u0430\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC):   \/\/   \/\/ \"no match for 'operator&lt;=' (operand types are 'Point2D' and 'Point2D')\"    \treturn 0; }<\/code><\/pre>\n<p>\u0423\u0432\u044b, C++ \u0432\u044b\u044f\u0432\u043b\u044f\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0437\u0434\u043d\u043e: \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0449\u0430\u044f\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0443\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0430.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c C++ \u043d\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0438, \u0432 \u0446\u0435\u043b\u043e\u043c, \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u044f\u0437\u044b\u043a\u0430 C++. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0436\u0430\u0441\u043d\u043e \u043e\u043d\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u043b\u0430 \u0441\u0435\u0431\u044f \u0432 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0438\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0422\u0430\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445 \u043b\u043e\u0433\u0438\u043a\u0438 \u0447\u0443\u0436\u0438\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u043b\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u0418\u043c\u0435\u0432\u0448\u0438\u0435 \u0434\u0435\u043b\u043e \u0441\u043e <abbr title=\"\u0430\u043d\u0433\u043b.: Standard Template Library (STL)\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/abbr>, \u0441 \u0435\u0451 \u0441\u0430\u043c\u044b\u043c\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 &#171;std::vector&lt;>&#187; \u0438 &#171;std::map&lt;>&#187;, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0435 \u0440\u0430\u0437 \u0441\u0442\u0440\u0430\u0434\u0430\u043b\u0438 \u043e\u0442 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439 \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/coderoad.ru\/3407633\/%D0%9E%D0%B1%D1%8A%D1%8F%D1%81%D0%BD%D0%B8%D1%82%D0%B5-C-SFINAE-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D1%83-%D0%BD%D0%B5-%D1%8F%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B5%D0%BC%D1%83%D1%81%D1%8F-C\" rel=\"noopener noreferrer nofollow\">\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a<\/a>, \u0432\u0432\u043e\u0434\u0438\u043b\u0438 \u0432 \u044f\u0437\u044b\u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e &#171;<a href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/static_assert\" rel=\"noopener noreferrer nofollow\">static_assert()<\/a>&#171;, \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0438 <a href=\"https:\/\/stackoverflow.com\/questions\/13359217\/how-to-document-c-templates-and-template-metafunctions-with-doxygen\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0431\u044b \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.<\/p>\n<p>\u041b\u0438\u0448\u044c \u0441\u043f\u0443\u0441\u0442\u044f \u0433\u043e\u0434\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432, \u043a \u0432\u0435\u0440\u0441\u0438\u0438 C++20 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u043b \u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u0443\u043a\u0430\u043c \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0435\u0448\u0438\u043b \u0432\u043e\u043f\u0440\u043e\u0441, \u0432\u0432\u0435\u0434\u044f \u0432 \u044f\u0437\u044b\u043a <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Concepts\">\u041a\u041e\u041d\u0426\u0415\u041f\u0422\u042b<\/abbr><\/strong>.<\/p>\n<p>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0442\u0438\u043f\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;template&lt;Type> Type max(Type, Type)&#187; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f &#171;Type&#187; \u0442\u0438\u043f, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0438\u043f\u0430 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d.<\/p>\n<p>\u041d\u0430\u043f\u0438\u0448\u0443 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u043f\u0430\u0444\u043e\u0441\u0430 &#8212; \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u044f\u0437\u044b\u043a\u0430. \u041e\u043d\u0438 \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0436\u0430\u044e\u0442 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u0437\u0434\u043d\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0436\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0434\u0430\u0451\u0442 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<p>\u041c\u043e\u0433\u0443 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437: \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u0435\u0441\u044f\u0442\u0438 \u043b\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u044b \u0432\u044b\u0439\u0434\u0443\u0442 \u0438\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c C++, \u0438\u0437\u0443\u0447\u0430\u0439\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u044b \u0443\u0436\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u041d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043a\u0435\u043f\u0442\u0438\u043a\u043e\u0432, \u043e\u043d\u0438 \u0442\u043e\u0436\u0435 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0437\u0430\u0441\u044f\u0434\u0443\u0442 \u0437\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435, \u0431\u0443\u0434\u044c\u0442\u0435 \u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u043c\u0438!<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0443 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0443. \u0426\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438 &#8212; \u0434\u0430\u0442\u044c \u0432\u0432\u043e\u0434\u043d\u0443\u044e \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u043c\u0441\u044f \u0432 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441. \u041a\u043e\u0434 \u044d\u0442\u043e\u0442, \u0443\u0432\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432. \u041e\u0441\u0432\u043e\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0445.<\/p>\n<p><a class=\"anchor\" name=\"_6_MoreArguments\" id=\"_6_MoreArguments\"><\/a><\/p>\n<h3>6. \u0411\u043e\u043b\u044c\u0448\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p>\u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0447\u044c \u0448\u043b\u0430 \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0445 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u041d\u043e C++ \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0435 \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c <strong>\u0448\u0430\u0431\u043b\u043e\u043d, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0439 \u043e\u0442 \u0434\u0432\u0443\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/strong>.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043e\u043f\u0438\u0448\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 <abbr title=\"\u0430\u043d\u0433\u043b.: Dictionary\">\u0441\u043b\u043e\u0432\u0430\u0440\u044c<\/abbr> (\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a <abbr title=\"\u0430\u043d\u0433\u043b.: Associative array\">\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/abbr> \u0438\u043b\u0438 <abbr title=\"\u0430\u043d\u0433\u043b.: Map\">\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/abbr>). \u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 (\u0447\u0438\u0441\u043b\u0443 \u0432\u044b\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u043c\u0443 \u043d\u043e\u043c\u0435\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430), \u0430 \u043f\u043e \u043a\u043b\u044e\u0447\u0443 (\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c\u0443, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e). \u0412 <abbr title=\"\u0430\u043d\u0433\u043b.: Standard Template Library (STL)\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/abbr> \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 &#171;std::map&lt;>&#187;.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u0430\u043a \u043a\u043b\u044e\u0447, \u0442\u0430\u043a \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440 \"\u043a\u043b\u044e\u0447 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\" \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \/\/ \u0442\u0438\u043f\u043e\u0432. \u041e\u043d \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f. \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \/\/ \u0434\u0432\u0443\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u043c \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0442\u0438\u043f \u043a\u043b\u044e\u0447\u0435\u0439, \u0432\u0442\u043e\u0440\u044b\u043c - \u0442\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u043b\u044e\u0447\u0430\u043c. \u0412\u043d\u0443\u0442\u0440\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \/\/ \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u0442\u0438\u043f\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \/\/ \u0442\u0435\u043b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. template&lt;typename KeyType, typename ValueType> struct KeyAndValue {     KeyType key;     ValueType value; };  \/\/ \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 \"\u0441\u043b\u043e\u0432\u0430\u0440\u044c\". template&lt;typename KeyType, typename ValueType> class Dictionary { public:        \/\/ (*) \u041a\u0430\u043a \u0438 \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e   \t\/\/ \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c   \t\/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435   \t\/\/ \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b-\u043f\u0430\u0440\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043a\u043b\u044e\u0447\u0438, \u0447\u0442\u043e   \t\/\/ \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f (\u043a\u043b\u044e\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438).   \t\/\/ \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043c\u044b \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u0434\u0432\u0430 \u043f\u043e\u043b\u044f: \u043e\u0434\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c   \t\/\/ \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044f (capacity), \u0432\u0442\u043e\u0440\u043e\u0435 -   \t\/\/ \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445, \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (num).     Dictionary(int inCapacity)         : keysAndValues(new KeyAndValue&lt;KeyType, ValueType>[inCapacity]),   \t\t\tcapacity(inCapacity), num(0)     {     }      const ValueType* getValue(KeyType inKey) const     {         KeyAndValue&lt;KeyType, ValueType>* foundKeyAndValue = findPair(inKey);         return foundKeyAndValue ? &amp;foundKeyAndValue->value : nullptr;     }          void setElement(KeyType inKey, ValueType inValueType)     {         KeyAndValue&lt;KeyType, ValueType>* keyAndValueToSet = findPair(inKey);                  \/\/ (*) \u0415\u0441\u043b\u0438 \u043f\u043e \u043a\u043b\u044e\u0447\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043d\u0435\u0442 \u043f\u0430\u0440\u044b \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e         if (!keyAndValueToSet)         {             \/\/ (*) \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430: \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u043b\u0438 \u043c\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e          \t\t\/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435. \u0412 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0442\u0443\u0442 \u0431\u044b           \t\/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (exceptions).             if (num == capacity)                 return;                          keyAndValueToSet = &amp;keysAndValues[num];             keyAndValueToSet->key = inKey;             ++num;         }                  keyAndValueToSet->value = inValueType;     }          ~Dictionary() \t\t{ \t\t\tdelete[] keysAndValues;   \t}    private:   \tKeyAndValue&lt;KeyType, ValueType>* findPair(KeyType inKey)     {         for (int index = 0; index &lt; num; ++index)             if (keysAndValues[index].key == inKey)                 return &amp;keysAndValues[index];       \t       \treturn nullptr;     }        KeyAndValue&lt;KeyType, ValueType>* keysAndValues = nullptr;     int capacity = 0;     int num = 0; };<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430:<\/p>\n<pre><code class=\"cpp\">int main() {   \t\/\/ \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u043b\u0435\u0432\u044b\u043c \u0444\u043b\u0430\u0433\u0430\u043c \u043f\u043e   \t\/\/ \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c - \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \"Dictionary&lt;int, bool>\"     Dictionary&lt;int, bool> dictionary{ 2 };     dictionary.setElement(1, false);     dictionary.setElement(3, true);      \t\/\/\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:   \t\/\/ value1 - \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u043b\u0435\u0432\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c false   \t\/\/ value2 - \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043f\u043e \u043a\u043b\u044e\u0447\u0443 2 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435   \t\/\/ value3 - \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u043b\u0435\u0432\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c true \t\tconst bool* value1 = dictionary.getElement(1); \t\tconst bool* value2 = dictionary.getElement(2); \t\tconst bool* value3 = dictionary.getElement(3);      \t\/\/ \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \"Dictionary&lt;char, int>\",   \t\/\/ \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 [1].     Dictionary&lt;int, char> dictionaryChar{ 3 };       dictionaryChar.setElement(1, '1');     dictionaryChar.setElement(2, '2');     dictionaryChar.setElement(3, '3');        \/\/\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:   \t\/\/ value1Char - \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \"char\" \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c '1'   \t\/\/ value2Char - \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \"char\" \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c '2'   \t\/\/ value3Char - \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \"char\" \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c '3'   \tconst char* value1Char = dictionaryChar.getElement(1); \t\tconst char* value2Char = dictionaryChar.getElement(2); \t\tconst char* value3Char = dictionaryChar.getElement(3);        return 0; }  \/\/ [1] - (*) \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \/\/   \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \/\/   \u0447\u0438\u0441\u043b\u0430 \u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f ASCII \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435  \/\/   (\u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"numberValue\" \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 [0, 9]): \/\/ \/\/\t\tint numberValue = 5; \/\/\t\tchar numberChar = '0' + numberValue;<\/code><\/pre>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043e\u0442 \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 C++11 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c <abbr title=\"\u0430\u043d\u0433\u043b.: Variadic template\">\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/abbr>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 <abbr title=\"\u0430\u043d\u0433\u043b.: Types pack\">\u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/abbr>. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 move-\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u043e\u0439 \u0438 range-based for, \u0441\u0434\u0435\u043b\u0430\u0432\u0448\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 C++11 \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435.<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0442\u0435\u043c\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0435\u0451 \u043a\u0430\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c. \u0415\u0441\u043b\u0438 \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u043f\u0438\u0448\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e \u0442\u0435\u043c\u0435 &#8212; \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0437\u0434\u0435\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<p><a class=\"anchor\" name=\"_7_NonTypeArguments\" id=\"_7_NonTypeArguments\"><\/a><\/p>\n<h3>7. \u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b <\/h3>\n<p>\u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0435 \u043b\u0438\u0448\u044c \u0442\u0438\u043f\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0422\u0430\u043a\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f non-type template arguments, \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e &#171;\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0442\u0438\u043f\u0430\u043c\u0438&#187;. \u0414\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e-\u0440\u0443\u0441\u0441\u043a\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d &#171;<strong><abbr title=\"\u0430\u043d\u0433\u043b.: Non-type template arguments\">\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/abbr><\/strong>&#171;.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043b\u0435\u0433\u043a\u0430 \u0431\u0435\u0437\u0443\u043c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u043c \/\/ \u043d\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u0442\u0438\u043f\u043e\u0432. \u0412\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \"typename\" \/\/ \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0447\u0438\u0441\u043b\u043e \u043e\u0442 \/\/ \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u0442\u0438\u043f\u043e\u043c \"int\", \u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \"Value\". \/\/ \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0442\u0435\u043b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u043a \/\/ \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443. template&lt;int Value> int getFactorial() {   \t\/\/ \u041c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c _\u0434\u0440\u0443\u0433\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438_,   \t\/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0439 _\u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438_ \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435   \t\/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \"Value - 1\". \u0422\u043e \u0435\u0441\u0442\u044c \u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u0430   \t\/\/ \"getFactorial&lt;4>()\" \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \"getFactorial&lt;3>()\", \u0438\u0437 \u043d\u0435\u0433\u043e -   \t\/\/ \"getFactorial&lt;2>()\" \u0438 \u0442.\u0434.   \t\/\/ \u041d\u0438\u0436\u0435, \u0432 \"main()\" \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d   \t\/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u0438.     return Value * getFactorial&lt;Value - 1>(); }  \/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \/\/ \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438-\u0442\u0438\u043f\u0430\u043c\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \/\/ \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \"template&lt;int Value> int getFactorial()\" \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \/\/ \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"Value\", \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 - \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0447\u0438\u0441\u043b\u0443 \"1\". \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \/\/ \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \/\/ \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043f\u043e \u0442\u0438\u043f\u0430\u043c, \u0441 \u0442\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439, \u0447\u0442\u043e \u0434\u043b\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u043c\u044b \u043f\u0438\u0448\u0435\u043c, \/\/ \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. template&lt;> int getFactorial&lt;1>() {     return 1; }  int main() {   \t\/\/ \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a   \t\/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432.   \t\/\/   \t\/\/ 1. \u0412\u0441\u0442\u0440\u0435\u0442\u0438\u0432 \u0437\u0430\u043f\u0438\u0441\u044c getFactorial&lt;4>() \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043a \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e   \t\/\/  \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"template&lt;int Value> int getFactorial()\". \u0423 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0435\u0441\u0442\u044c   \t\/\/  \u043e\u0434\u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f - \u043f\u043e \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 Value \u0435\u0434\u0438\u043d\u0438\u0446\u0435:   \t\/\/  \"template&lt;> int getFactorial&lt;1>()\". \u0412 \u0432\u044b\u0437\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 4, \u0437\u043d\u0430\u0447\u0438\u0442   \t\/\/  \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430.   \t\/\/  \u0412 \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"getFactorial&lt;4>()\" \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f   \t\/\/ \"getFactorial&lt;Value - 1>()\", \u0442\u043e \u0435\u0441\u0442\u044c \"getFactorial&lt;3>()\"     \/\/   \t\/\/ 2. \u0421 \"getFactorial&lt;3>()\" \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0443\u043d\u043a\u0442\u0443 1. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e   \t\/\/  \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 Value \u0435\u0434\u0438\u043d\u0438\u0446\u0435 \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442, \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f   \t\/\/  \"getFactorial&lt;3>()\" \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \"getFactorial&lt;2>()\".   \t\/\/   \t\/\/ 3. \u0414\u043b\u044f \"getFactorial&lt;2>()\" \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 \"Value\" \u0435\u0434\u0438\u043d\u0438\u0446\u0435   \t\/\/  \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u041f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \"getFactorial&lt;2>()\" \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432   \t\/\/  \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0437\u043e\u0432 \"getFactorial&lt;1>()\"... \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0431\u0443\u0434\u0435\u0442   \t\/\/  \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \"template&lt;> int getFactorial&lt;1>()\", \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u043d\u0451\u0442   \t\/\/  \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \"1\". \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 \"\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e\" \u0432\u044b\u0437\u043e\u0432\u0430.   \t\/\/   \t\/\/ \u0421\u043b\u043e\u0432\u043e \"\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439\" \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0443\u0442 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441   \t\/\/ \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0439 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0435\u0439. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \"getFactorial&lt;4>()\" \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e   \t\/\/ \"getFactorial&lt;3>()\", \u0442\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \"getFactorial&lt;2>()\" \u0438 \u0442\u0430, \u043d\u0430\u043a\u043e\u043d\u0435\u0446,     \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \"getFactorial&lt;3>()\"... \u0438 \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u044b\u0435 \u0438\u0437   \t\/\/ \"template&lt;int Value> int getFactorial()\" - \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041a\u0430\u043a \u0432   \t\/\/ \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0442\u0438\u043f\u0430\u043c, \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441   \t\/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438   \t\/\/ \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442.   \tconst int factorial4Result = getFactorial&lt;4>();        return 0; }<\/code><\/pre>\n<p>\u0417\u0430 \u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u044d\u0442\u0430\u043f\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 4*3*2*1 (\u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u0440\u0430\u0437\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 24), \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;getFactorial&lt;4>()&#187; \u0438 \u0432\u0441\u0435\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439\u0441\u044f \u0432 \u043d\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0438.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0451 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b:<\/p>\n<pre><code class=\"cpp\">int main() {      const int constVariable = 4;     const int factorial1 = getFactorial&lt;constVariable>();     \/\/     \/\/ \u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u0422\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 constVariable \u043f\u043e\u043c\u0435\u0447\u0435\u043d     \/\/ \u043a\u0430\u043a const \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f - \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e     \/\/ \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b      int mutableVariable = 4;     \/\/const int factorial2 = getFactorial&lt;mutableVariable>();     \/\/     \/\/ \u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439: \"the value of \u2018mutableVariable\u2019     \/\/ is not usable in a constant expression\". \u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432     \/\/ getFactorial&lt;>() \u043d\u0435\u043b\u044c\u0437\u044f, \u0442\u0430\u043a \u043a\u0430\u043a mutableVariable \u043d\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a const \u0438     \/\/ \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.          int a = 1;     int b = 3;     const int constVariableFromMutableVariables = a + b;     \/\/const int factorial3 = getFactorial&lt;constVariableFromMutableVariables>();     \/\/     \/\/ \u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0442\u043e\u0439 \u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e     \/\/ constVariableFromMutableVariables \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a const, \u0435\u0451 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442     \/\/ \u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 a \u0438 b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0447\u0442\u043e     \/\/ \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0451 \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438     \/\/ \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0414\u0430, \u043e\u043d\u0430 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u0430\u044f, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043b\u044f     \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435     \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \"a+b\" \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e     \/\/ \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.      const int constA = 1;     const int constB = 3;     const int constVariableFromConstVariables = constA + constB;     const int factorial4 = getFactorial&lt;constVariableFromConstVariables>();     \/\/     \/\/ \u0410 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e. constVariableFromConstVariables     \/\/ \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.           return 0; }<\/code><\/pre>\n<p>C\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c: \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0440\u0435\u0434\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430. \u0414\u0430, <abbr title=\"\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 constexpr\">\u043f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/abbr> \u044d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u041d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u0435\u0435 \u043a\u0430\u043a \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442.<\/p>\n<p>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 &#171;\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432&#187; \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u041e\u043d \u0431\u043b\u0438\u0436\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438.<\/p>\n<p><a class=\"anchor\" name=\"_8_TemplateContext\" id=\"_8_TemplateContext\"><\/a><\/p>\n<h3>8. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435<\/h3>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0443 \u0447\u0438\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u043e\u0433 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u043a\u043e\u0434 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 &#171;template&lt;Type> SimpleArray&#187;.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u043e\u0434\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"template&lt;Type> Type max(Type, Type)\" \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \/\/ \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 \"template&lt;Type> class SimpleArray\" \u0438\u0437 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e.  \/\/ \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \"SimpleArray&lt;int>\" int* getMaxElement(const SimpleArray&lt;int>&amp; inArray) {   \/\/ (*) \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c - \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443,   \/\/ \u0435\u0441\u043b\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u043f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 (\u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442   \/\/ \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0442).   if (inArray.num() == 0)     return nullptr;    \/\/ \u041e\u0442\u043c\u0435\u0442\u0438\u043c - \u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \"maxElement\" \u0442\u0438\u043f \"int\", \u0432\u0435\u0434\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432   \/\/ \"SimpleArray&lt;int>\" \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0438\u043f\u044b \"int\"   int maxElement = inArray.getElement(0);   for (int index = 1; index &lt; inArray.num(); ++index)     maxElement = max(maxElement, inArray.getElement(index));      return maxElement; }  \/\/ \u041a\u043e\u043f\u0438\u044f \u0442\u043e\u0439 \u0436\u0435 \u043b\u043e\u0433\u0438\u043a\u0438, \u043d\u043e \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \"SimpleArray&lt;char>\". \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \/\/ \u0441\u043b\u0443\u0447\u0430\u0439, \u043e\u0442\u043c\u0435\u0447\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 - \u0437\u0434\u0435\u0441\u044c _\u043d\u0435 \u0431\u0443\u0434\u0435\u0442_ \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \/\/ \u0442\u0438\u043f\u044b \"SimpleArray&lt;int>\" \u0438 \"SimpleArray&lt;char>\" \u044d\u0442\u043e \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u0430, \u043f\u0443\u0441\u0442\u044c \u0438 \/\/ \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u044b \u043e\u043d\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430. char* getMaxElement(const SimpleArray&lt;char>&amp; inArray) {   if (inArray.num() == 0)     return nullptr;    \/\/ \u0422\u0438\u043f \"char\", \u0432\u0435\u0434\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \"SimpleArray&lt;char>\" \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430.   char maxElement = inArray.getElement(0);   for (int index = 1; index &lt; inArray.num(); ++index)     maxElement = max(maxElement, inArray.getElement(index));      return maxElement; }  \/\/ ... \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043a\u043e\u0434\u0430 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0442\u0438\u043f\u0430 \/\/ \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 SimpleArray.<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u0432\u0435\u043b\u0430 \u043d\u0430 \u043d\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u0441\u043d\u043e\u0432\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043b\u043e\u0433\u043a\u0430. \u0414\u0443\u043c\u0430\u044e, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442: \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u0441 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0442\u0438\u043f\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u043d\u0435\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 &#171;max()&#187;, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>\u0427\u0442\u043e \u0436, C++ \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0442\u0438\u043f\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u043d\u044c\u0448\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0438\u0445 \u043d\u0435 \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c. \u0412\u043e\u0442, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043c\u0435\u0442\u043e\u0434 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 &#171;template&lt;Type> class Interval&#187;:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> class Interval {   \/\/...      \/\/ \u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \"Interval&lt;Type>\". \u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \"Type\"   \/\/ \u0432 \u0442\u0435\u043b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \"template&lt;Type> class Interval\" \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u043c   \/\/ \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 - \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e   \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u0435\u0442\u043e\u0434\u0430. \tInterval&lt;Type> intersection(const Interval&lt;Type>&amp; inOther) const   {     return Interval&lt;Type>{         max(start, inOther.start),         min(end, inOther.end)     };   }      \/\/... };<\/code><\/pre>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a &#171;getMaxElement()&#187;, \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 &#171;template&lt;Type> class SimpleArray&#187;:<\/p>\n<pre><code class=\"cpp\">\/\/ \u041e\u0434\u0438\u043d \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"getMaxElement()\" \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \/\/ \u043b\u043e\u0433\u0438\u043a\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \"Type\" \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \"template&lt;Type> SimpleArray\" template&lt;typename Type> Type* getMaxElement(const SimpleArray&lt;Type>&amp; inArray) {   if (inArray.num() == 0)     return nullptr;    Type maxElement = inArray.getElement(0);   for (int index = 1; index &lt; inArray.num(); ++index)     maxElement = max(maxElement, inArray.getElement(index));      return maxElement; }  \/\/ \u0421\u0440\u0430\u0437\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438:  int main() {   \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c SimpleArray&lt;int> ---   SimpleArray&lt;int> intArray{ 2 };   intArray.setElement(0, 2);   intArray.setElement(1, 1);  \t\/\/ \u0422\u0443\u0442 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u044f\u0432\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438.   int* intMax = getMaxElement&lt;int>(intArray);    \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c SimpleArray&lt;char> ---   SimpleArray&lt;char> charArray{ 3 };   charArray.setElement(0, 'c');   charArray.setElement(1, 'b');   charArray.setElement(2, 'a');      char* charMax = getMaxElement(charArray);   \/\/   \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u043e   \/\/ \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0438\u043f\u043e\u0432   \/\/ \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043c\u0451\u043d, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0441\u0430\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0442\u0438\u043f \"Type\"   \/\/ \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"getMaxElement&lt;Type>()\" \u0438\u0437 \u0442\u0438\u043f\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e   \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442   \/\/ \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437:   \/\/   \/\/ 1. \u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u0430\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \"charArray\" \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f    \/\/ \"SimpleArray&lt;char>\".   \/\/   \/\/ 2. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 (\u043d\u0435\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e) \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \"getMaxElement&lt;>()\"   \/\/  \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \"const SimpleArray&lt;Type>&amp;\".   \/\/   \/\/ 3. \u0415\u0441\u043b\u0438 \"\u043d\u0430\u043b\u043e\u0436\u0438\u0442\u044c\" \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0442\u0438\u043f \"SimpleArray&lt;char>\" \u043d\u0430   \/\/  \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \"const SimpleArray&lt;Type>&amp;\", \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e   \/\/  \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0442\u0438\u043f\u0430 \"char\" \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \"Type\" \u0432\u044b\u0437\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438   \/\/ \"getMaxElement&lt;char>(charArray)\" \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d.   \/\/   \/\/ 4. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \"char\" \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f   \/\/  \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"Type\". } <\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0438\u043f\u043e\u0432 \u043d\u0430 \u0434\u0435\u043b\u0435 \u043c\u043e\u0433\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0442\u043e\u043b\u043f\u043e\u0432 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430 \u043f\u0430\u0440\u0443 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438, \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u044b (\u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0435\u0442) \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u043c\u0435\u0441\u0442\u0435 \u044d\u0442\u0438 \u0434\u0432\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"_9_PartialSpecializations\" id=\"_9_PartialSpecializations\"><\/a><\/p>\n<h3>9. \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/h3>\n<p>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f \u0442\u0435\u043c\u044b <em>\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/em>. \u0422\u0435\u043c\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u0432\u0432\u043e\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0437 <a href=\"#_4_Specializations\" rel=\"noopener noreferrer nofollow\">\u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<\/a>. \u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0447\u0443\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442 \u0432 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043e\u0434\u043d\u0430\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e.<\/p>\n<p>\u0412 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 &#171;template&lt;Type> SimpleArray&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> class SimpleArray {   \/\/...      \/\/ (*) \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c \"new[]\" \tSimpleArray(int inElementsNum) \t\t: elements(new Type[inElementsNum]), num(inElementsNum) \t{ \t}  \t\/\/...    \/\/ (*) \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \"delete[]\" \t~SimpleArray() \t{ \t\tdelete[] elements;   }    \/\/... };<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0440\u0430\u0437\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code class=\"cpp\">int main() {     int firstElementsNum = 1, secondElementsNum = 2;        \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.     ++firstElementsNum;     ++secondElementsNum;      \/\/ \u0414\u0432\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \"SimpleArray&lt;int>\":   \t\/\/ \"first\" \u0434\u043b\u0438\u043d\u043e\u0439 \u0432 \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \"second\" - \u0434\u043b\u0438\u043d\u043e\u0439 \u0432 \u043f\u044f\u0442\u044c (2+3). \u0414\u043b\u0438\u043d\u0430   \t\/\/ \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.     SimpleArray&lt;int> first{ firstElementsNum };     SimpleArray&lt;int> second{ firstElementsNum + secondElementsNum };      return 0; }<\/code><\/pre>\n<p>\u041f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043e\u0431\u044a\u0451\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u043b\u044c\u0437\u044f. \u0422\u0430\u043a \u043b\u0438 \u0432\u0430\u0436\u043d\u0430 \u044d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c?<\/p>\n<p>\u041e\u0446\u0435\u043d\u0438\u043c \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0438\u0434\u0430\u0445 \u043f\u0430\u043c\u044f\u0442\u0438:<\/p>\n<pre><code class=\"cpp\">int main() { \tint arrayStack[3]{ 1, 2, 3 };   \/\/   \/\/ \u0412\u044b\u0448\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0431\u0443\u0444\u0435\u0440 \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0433\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0441\u0442\u0435\u043a\u0435. \u0415\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440   \/\/ \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (\u0440\u0430\u0437\u043c\u0435\u0440 \"int\" \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, 3).   \/\/ \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \"arrayStack\" \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435.   \/\/ \u0414\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435   \/\/ \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0441\u0442\u0435\u043a\u0430, \u0434\u043b\u044f \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f - \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430.      int* arrayHeap = new int[3]{ 1, 2, 3 }; \tdelete[] arrayHeap;   \/\/   \/\/ \u0412\u044b\u0448\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0420\u0430\u0437\u043c\u0435\u0440 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435   \/\/ \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e \"arrayStack\". \u041e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438   \/\/ \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435:   \/\/ 1. \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \"new int[3]\" \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (default allocator)   \/\/  \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043f\u043e\u0438\u0441\u043a \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u043b\u043e\u043a\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430   \/\/  (\u0440\u0430\u0437\u043c\u0435\u0440 \"int\" \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, 3). \u041f\u043e\u0438\u0441\u043a \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c   \/\/  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.   \/\/ 2. \u041d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0437\u0430\u043d\u044f\u0442\u044b\u0439 \u0438 \u0430\u0434\u0440\u0435\u0441 \u0431\u043b\u043e\u043a\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0441\u044f   \/\/  \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e-\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \"arrayHeap\". \u0422\u0430\u043a \u043a\u0430\u043a \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0431\u043b\u043e\u043a \u0438\u043c\u0435\u0435\u0442   \/\/  \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438 [*].   \/\/ 3. \u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435 \"\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435\". \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435   \/\/  \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \"delete[]\", \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u0431\u043b\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0439   \/\/  \u0431\u0443\u0444\u0435\u0440\u043e\u043c \u043a\u0430\u043a \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439.    \treturn 0; }  \/\/ __________________ \/\/ [*] - \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 - \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \/\/      \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430.<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0435\u043a\u0430 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0443\u0447\u0438 \u0438 \u0441\u0442\u0435\u043a\u0430. \u0426\u0432\u0435\u0442\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e \u0437\u043d\u0430\u043a\u0430\u043c\u0438 &#171;+&#187; \u0438 &#171;-&#187; \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u044d\u0442\u0438\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>\u0411\u043b\u043e\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0441\u0442\u0435\u043a\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u0434\u0432\u0438\u0433\u043e\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0441\u0442\u0435\u043a\u0430.<\/p>\n<p>\u0411\u043b\u043e\u043a\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430 \u043f\u043e\u0438\u0441\u043a \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 &#8212; \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u043b\u043e\u043a\u0430\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0435\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"812\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/110\/dfc\/eda\/110dfcedab2e9458ae8a41405f938261.png\" data-width=\"2071\"\/><figcaption><\/figcaption><\/figure>\n<\/div>\n<\/details>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"1510\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b51\/6c0\/95f\/b516c095fe4a758755396ee2baaebde0.png\" data-width=\"3441\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423\u0436\u0435 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e &#171;call&#187; \u0432\u044b\u0437\u043e\u0432\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 &#8212; \u044d\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0442\u044f\u0436\u0451\u043b\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c.<\/p>\n<p>\u0411\u044b\u043b\u043e \u0431\u044b \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0443\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d &#171;std::array&lt;>&#187;.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 &#171;template&lt;Type> SimpleArray&#187;, \u043d\u0430\u0434\u043e \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0438\u043f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430:<\/p>\n<pre><code class=\"cpp\">\/\/ \u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \/\/ \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0433\u043e, \/\/ \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443: \"template&lt;Type> SimpleStaticArray\". template&lt;typename Type> class SimpleStaticArray {   \/\/...   \t private:   \/\/ ! \u0412 \u043a\u043e\u0434\u0435 \u043d\u0438\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"Size\" \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 !      Type elements[Size]; \/\/ &lt;&lt;- \u0421\u0442\u0435\u043a\u043e\u0432\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \tint num = Size; };<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#171;Size&#187;) \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0422\u0430\u043a\u043e\u0439 \u043c\u0435\u0445\u043d\u0438\u0437\u043c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d: \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \"Size\" \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \/\/ \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. template&lt;typename Type, int Size> class SimpleStaticArray {   \/\/...   \t private:   Type elements[Size];      \/\/ \u041e\u0442 \u043f\u043e\u043b\u044f \"num\" \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f. \u0414\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 - \u044d\u0442\u043e   \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \"Size\", \u043e\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u043a\u043b\u0430\u0441\u0441\u0435. };<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u043f\u043e\u043b\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430. \u041e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type, int Size> class SimpleStaticArray { public:   \tSimpleStaticArray() \t\t: elements() \t{ \t}  \tint getNum() const \t{     \/\/ \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u043c     \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435. \t\treturn Size; \t}  \tType getElement(int inIndex) const \t{ \t\treturn elements[inIndex]; \t}  \tvoid setElement(int inIndex, Type inValue) \t{ \t\telements[inIndex] = inValue; \t}  private: \tType elements[Size]; };<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e: \u0447\u0442\u043e \u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u0442\u0438\u043f\u0443 &#171;bool&#187;? \u041e\u043d\u0430, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 &#171;\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187;, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 &#8212; \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Size&#187; (\u043c\u0430\u0441\u0441\u0438\u0432 \u0444\u043b\u0430\u0433\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0434\u043b\u0438\u043d\u044b).<\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 <strong><abbr title=\"\u0430\u043d\u0433\u043b.: Partial template specialization\">\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/abbr><\/strong>:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type, int Size> class SimpleStaticArray {   \/\/... };  \/\/ \u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \"BitArrayAccessData\" \u0438\u0437 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430.  \/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \"Size\" \u0438 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0441\u0442\u0440\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \"bool\" \u0432 \/\/ \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 [1] \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f _\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438_, \/\/ \u043a\u043e\u0442\u043e\u0440\u044b\u0439 _\u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438_ \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0435 \/\/ \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0440\u0438 \/\/ \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 [2]. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u043e\u043a\u0435 \/\/ \"\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f\" \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \"bool\" \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \/\/ template&lt;int Size> \/\/[1] class SimpleStaticArray&lt;bool, Size> \/\/[2] { public: \tSimpleStaticArray() \t\t: elementsMemory() \t{ \t}  \tint getNum() const \t{     \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u0447\u0442\u043e \u0438 \u0434\u043b\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439     \/\/ \u0432\u0435\u0440\u0441\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 - \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \t\treturn Size; \t}    \/\/ \u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0438\u0436\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c\u0438 \u0436\u0435, \u043a\u0430\u043a\u0438\u043c\u0438 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0432 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435,   \/\/ \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043b\u043e\u0433\u0438\u043a\u0438 \u044d\u0442\u043e \u043d\u0435 \u043a\u043e\u0441\u043d\u0443\u043b\u043e\u0441\u044c.    \tbool getElement(int inIndex) const \t{ \t\tconst BitArrayAccessData accessData = getAccessData(inIndex); \t\tconst unsigned char elementMask = (1 &lt;&lt; accessData.bitIndexInByte); \t\treturn elementsMemory[accessData.byteIndex] &amp; elementMask; \t} \t \tvoid setElement(int inIndex, bool inValue) const \t{ \t\tconst BitArrayAccessData accessData = getAccessData(inIndex);  \t\tconst unsigned char elementMask = (1 &lt;&lt; accessData.bitIndexInByte); \t\telementsMemory[accessData.byteIndex] = \t\t     (elementsMemory[accessData.byteIndex] &amp; ~elementMask) | \t\t     (inValue ? elementMask : 0); \t}    private:   static BitArrayAccessData getAccessData(int inElementIndex)   {   \tBitArrayAccessData result;     result.byteIndex = inElementIndex \/ 8; \t\tresult.bitIndexInByte = inElementIndex - result.byteIndex * 8;  \t     return result;   }  \t\/\/ (*) \u041f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0442\u0438\u043f\u0430 \u043f\u043e\u043b\u044f \"elementsMemory\" \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e   \/\/ \u0431\u0430\u0439\u0442 \u043d\u0443\u0436\u043d\u044b\u0445 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435   \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e   \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"Size\". \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0447\u0451\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432   \/\/ \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u043b\u043e\u0433\u0438\u043a\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430   \/\/ \"template&lt;Type> class SimpleStaticArray\" \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430. \tunsigned char elementsMemory[Size \/ sizeof(unsigned char) + 1]; };<\/code><\/pre>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 <a href=\"#_4_Specializations__Example\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u0437 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<\/a>, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0432 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cpp\">int main() {   SimpleStaticArray&lt;char, 4> simpleArray{ };  \tsimpleArray.setElement(0, 'A'); \tsimpleArray.setElement(1, 'B'); \tsimpleArray.setElement(2, 'C'); \tsimpleArray.setElement(3, 'D');   \/\/   \/\/ \u041d\u0430\u0434 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   \/\/ \"template&lt;Type, int Size> class SimpleStaticArray\" \u043f\u043e \u0442\u0438\u043f\u0443 \"char\"   \/\/ \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \"Size\" \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.   \/\/   \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440   \/\/ \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \"template&lt;Size> class SimpleStaticArray&lt;bool, Size>\".   \/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0442\u0438\u043f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \"bool\". \u0417\u0430 \u043d\u0435\u0438\u043c\u0435\u043d\u0438\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439,   \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0441\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043d\u0430 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430:   \/\/ \"template&lt;Type, int Size> class SimpleStaticArray\". \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442   \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430   \/\/ \"SimpleStaticArray&lt;char, 4>\".  \tSimpleStaticArray&lt;bool, 8> simpleBoolArray{ };  \tsimpleArray.setElement(0, true);\/\/  1 \tsimpleArray.setElement(1, false);\/\/ 0 \tsimpleArray.setElement(2, false);\/\/ 0 \tsimpleArray.setElement(3, true);\/\/  1 \tsimpleArray.setElement(4, true);\/\/  1 \tsimpleArray.setElement(5, false);\/\/ 0 \tsimpleArray.setElement(6, false);\/\/ 0 \tsimpleArray.setElement(7, true);\/\/  1   \/\/   \/\/ \u041d\u0430\u0434 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c - \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   \/\/ \"template&lt;Type> class SimpleStaticArray\" \u043f\u043e \u0442\u0438\u043f\u0443 \"bool\". \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f   \/\/ \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \"bool\" (\u0447\u0442\u043e   \/\/ \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438), \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432   \/\/ \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.     \/\/ \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435   \/\/ \u043f\u0440\u0438 \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u0432\u0441\u0451 \u0442\u0443 \u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e \u0442\u0438\u043f\u0443 \"bool\", \u0432\u0441\u0435 \u043e\u043d\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442   \/\/ \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430:   SimpleStaticArray&lt;bool, 6> simpleBoolArraySixElements{ };   SimpleStaticArray&lt;bool, 4> simpleBoolArrayFourElements{ };   SimpleStaticArray&lt;bool, 20> simpleBoolArrayTwentyElements{ };       \/\/ \u0422\u0430\u043a\u0436\u0435 \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445   \/\/ \u043a\u043b\u0430\u0441\u0441\u043e\u0432:   \/\/   \/\/ SimpleStaticArray&lt;char, 4>   \/\/ SimpleStaticArray&lt;bool, 8>   \/\/ SimpleStaticArray&lt;bool, 6>   \/\/ SimpleStaticArray&lt;bool, 4>   \/\/ SimpleStaticArray&lt;bool, 20>   \/\/   \/\/ \u042d\u0442\u043e \u0432\u0441\u0451 _\u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b_. \u041f\u0440\u0438 \u043d\u0435\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442   \/\/ \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0451\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u042d\u0442\u0430 \u0442\u0435\u043c\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435   \/\/ \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u0430 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.    \treturn 0; }<\/code><\/pre>\n<p>\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 &#8212; \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0423\u0432\u044b, \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"cpp\"> template&lt;typename ResultType, int Value> ResultType getFactorial() {     ResultType result = 1;     for (int currentValue = 2; currentValue &lt; Value; ++currentValue)     {         result *= currentValue;     }          return result; }  \/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0438\u0436\u0435 \u043d\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e C++ \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \/\/ \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: \/\/ \/\/template&lt;typename ResultType> \/\/&lt;&lt;&lt; \u0414\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044d\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u0430 \/\/ResultType getSum&lt;ResultType, 0>() \/\/{ \/\/    return 1; \/\/}  \/\/template&lt;typename ResultType> \/\/&lt;&lt;&lt; \u0414\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044d\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u0430 \/\/ResultType getSum&lt;ResultType, 1>() \/\/{ \/\/    return 1; \/\/}  \/\/ ---------------------  int main() {     short int result0 = getFactorial&lt;short int, 0>();     short int result1 = getFactorial&lt;short int, 1>();     int result8 = getFactorial&lt;int, 8>();      return 0; }<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438, \u043e\u0434\u043d\u0430\u043a\u043e, \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445.<\/p>\n<p><a class=\"anchor\" name=\"_Conclusion\" id=\"_Conclusion\"><\/a><\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c \u043a\u0442\u043e \u043e\u0441\u0438\u043b\u0438\u043b \u044d\u0442\u043e\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442. \u0412\u044b \u043a\u0440\u0443\u0442\u044b\u0435! \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u043c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0443\u0447\u0451\u0431\u0435. \u041f\u0438\u0448\u0438\u0442\u0435 \u043e\u0442\u0437\u044b\u0432\u044b \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0438\u043b\u0438 \u0432 \u043b\u0438\u0447\u043a\u0443, \u043e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0435\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u0435\u0437\u043d\u0430\u0434\u0451\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u044c\u043d\u044b\u043c, \u044f \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0449\u0451 \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c. \u041e\u0434\u043d\u0430 \u043a\u043e\u0441\u043d\u0451\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0442\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0438 \u0442\u0440\u044e\u043a\u0438, \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0430\u043c\u0438 \u0432 &#171;\u0431\u043e\u043b\u044c\u0448\u043e\u043c&#187; \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"_FAQ\" id=\"_FAQ\"><\/a><\/p>\n<h2>\u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b<\/h2>\n<p><strong>1. \u0412\u043e\u043f\u0440\u043e\u0441: \u0427\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432?<\/strong><\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442:<\/strong> \u041c\u0430\u043a\u0440\u043e\u0441\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c. \u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u044b &#8212; \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442<\/summary>\n<div class=\"spoiler__content\">\n<p>\u042d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u0438\u0437\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u044b. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u043c\u0430\u043a\u0440\u043e\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u041e\u0431\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 &#171;\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c&#187; \u043a\u043e\u0434 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0442\u0440\u0430\u0444\u0430\u0440\u0435\u0442\u0443 \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u044b &#8212; \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0438 \u0442.\u0434. \u0421 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 &#8212; \u043d\u0430\u0431\u043e\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0431\u0443\u043a\u0432, \u0446\u0438\u0444\u0440, \u0437\u043d\u0430\u043a\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432, \u0438 \u0442.\u0434.), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0432 IDE \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Ctrl+C, Ctrl+V:<\/p>\n<ul>\n<li>\n<p><em>#include<\/em> &#8212; \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 &#171;\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435&#187;<\/p>\n<\/li>\n<li>\n<p><em>#define<\/em> &#8212; \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 &#171;\u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u043c\u0430\u043a\u0440\u043e\u0441, \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u043c \u0441 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u043c&#187;.<\/p>\n<\/li>\n<li>\n<p>\u0438 \u0442.\u0434.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0438\u043f\u043e\u0432, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u0442.\u0434.<\/p>\n<p>\u041b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043a\u043d\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u0447\u0438\u0441\u043b\u0430:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441  \/\/ \u043f\u0435\u0440\u0432\u043e\u0433\u043e. void reopen(const char* fileName);  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e \u0437\u0430  \/\/ \u0434\u0440\u0443\u0433\u0438\u043c \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0447\u0438\u0441\u043b\u043e \u0438,  \/\/ \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e, _\u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043a\u0430\u0440\u0435\u0442\u043a\u0443_ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435  \/\/ \u043c\u0435\u0441\u0442\u043e. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: \"1, 2, 3\" - \u0442\u043e \u043f\u0440\u0438  \/\/ \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \"loadNextValueFromFile()\" \u0432\u0435\u0440\u043d\u0451\u0442 1, \u043f\u0440\u0438 \u0432\u0442\u043e\u0440\u043e\u043c 2, \u043f\u0440\u0438 \/\/ \u0442\u0440\u0435\u0442\u044c\u0435\u043c 3. int loadNextValueFromFile(const char* fileName);  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \"true\", \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438 \"false\", \/\/ \u0435\u0441\u043b\u0438 \u043d\u0435\u0442. bool isEndOfFile(const char* fileName);<\/code><\/pre>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f &#8212; \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f <strong>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u043a\u0440\u043e\u0441\u0430<\/strong>:<\/p>\n<pre><code class=\"cpp\">#define MAX(A, B) (A >= B) ? A : B  \/\/...  int main() {     reopen(\"file\");    \tif (!endOfFile(\"file\"))     {       int currentMax = loadNextValueFromFile(\"file\");     \twhile (!endOfFile(\"file\"))         currentMax = MAX(currentMax, loadNextValueFromFile(\"file\"));         }          return 0; }<\/code><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0441 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0412\u043e\u0442 \u043a\u043e\u0434 \u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: \/\/ \/\/ currentMax = MAX(currentMax, loadNextValueFromFile(\"file\")); \/\/ \/\/ \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u0430, \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \/\/ \u0432\u0441\u0442\u0430\u0432\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442: \"(A >= B) ? A : B\", \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \/\/ \u0442\u0435\u043a\u0441\u0442 \"currentMax\" \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \"A\" \u0438, \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e, \/\/ \u0442\u0435\u043a\u0441\u0442 \"loadNextValueFromFile(\"file\")\" \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \"B\" \/\/ \/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: currentMax = (currentMax >= loadNextValueFromFile(\"file\")) ?   currentMax : loadNextValueFromFile(\"file\");<\/code><\/pre>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0441 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#171;main()&#187; \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e. \u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#171;loadNextValueFromFile()&#187; \u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u043e \u0447\u0442\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0431\u0430\u0433.<\/p>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0435\u0441\u043b\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430 &#171;1, 3, 0&#187;:<\/p>\n<ol>\n<li>\n<p>\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 currentMax \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 (\u0447\u0438\u0441\u043b\u043e &#171;1&#187;).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f &#171;<abbr title=\"\u0442\u0430\u043c \u0447\u0438\u0441\u043b\u043e 1 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430\">currentMax<\/abbr> >= <abbr title=\"\u0432\u044b\u0437\u043e\u0432 \u0432\u0435\u0440\u043d\u0451\u0442 \u0447\u0438\u0441\u043b\u043e 3, \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u043e \u0441\u0447\u0451\u0442\u0443 \u0432 \u0444\u0430\u0439\u043b\u0435\">loadNextValueFromFile(&#171;file&#187;)<\/abbr>&#187; &#8212; \u043f\u0440\u0438\u0447\u0451\u043c \u0438\u0437-\u0437\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043a\u0430\u0440\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <abbr title=\"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 - \u0447\u0438\u0441\u043b\u043e 0\">\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e<\/abbr>.<br \/>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 &#8212; \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 currentMax (\u0447\u0438\u0441\u043b\u043e &#171;1&#187;) \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0432\u0437\u044f\u0442\u043e\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 (\u0447\u0438\u0441\u043b\u043e &#171;3&#187;), \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e &#171;false&#187;.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e &#171;false&#187; \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#171;loadNextValueFromFile(&#171;file&#187;)&#187;. \u042d\u0442\u043e\u0442 \u0432\u044b\u0437\u043e\u0432 \u0432\u0435\u0440\u043d\u0451\u0442 \u0447\u0438\u0441\u043b\u043e &#171;0&#187;, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u0430\u0440\u0435\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u0412 currentMax \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e &#171;0&#187;, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0432 \u0444\u0430\u0439\u043b\u0435.<\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e (\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0434\u0430\u0436\u0435 \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b) \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0447\u0430\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0446\u0435\u0439\u0442\u043d\u043e\u0442\u0435. \u0423\u0441\u0442\u0430\u0432\u0448\u0438\u0439, \u0442\u043e\u0440\u043e\u043f\u043b\u0438\u0432\u044b\u0439, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0432\u0440\u043e\u0434\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>\u0418\u0437-\u0437\u0430 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u0432 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u0442\u0440\u0443\u0434\u043d\u043e \u0443\u043b\u043e\u0432\u0438\u043c\u044b\u043c \u043e\u0448\u0438\u0431\u043a\u0430\u043c.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 <strong>\u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u044b<\/strong>:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> Type max(Type a, Type b) { \treturn (a >= b ? a : b); }  \/\/...  int main() { \t\treopen(\"file\");      int currentMax = 0;     while (!endOfFile(\"file\"))     {         \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \"template&lt;Type> max(Type, Type)\" \u0441         \/\/ \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0442\u0438\u043f\u0430 \"int\". \u0417\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439         \/\/ \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u0430: \u043e\u0431\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u044e\u0442         \/\/ \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0442\u0438\u043f \"int\" - \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0451\u043c \u044f\u0432\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439,         \/\/ \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d.         currentMax = max&lt;int>(currentMax, loadNextValueFromFile(\"file\"));     }                 return 0; }<\/code><\/pre>\n<p>&#171;max&lt;int>()&#187; &#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b \u043f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0431\u0435\u0437 &#171;\u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e&#187; \u0441\u043e\u0431\u0438\u0440\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u043a\u0443\u0441\u043a\u043e\u0432.<\/p>\n<\/div>\n<\/details>\n<p><strong>2. \u0412\u043e\u043f\u0440\u043e\u0441: \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043e\u0431\u044a\u0451\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430?<\/strong><\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442:<\/strong> \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0431\u0435\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u043d\u0435\u0442.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0423\u0436\u0435 \u043e\u0442\u043c\u0435\u0447\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0442\u0440\u0451\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 &#8212; \u043e\u0431\u044a\u0451\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0442\u0440\u0438 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439.<\/p>\n<p>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0437\u043d\u0430\u0447\u0435\u0442 <em>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043a\u043e\u0434\u0435<\/em> \u043b\u043e\u0433\u0438\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0435\u0451 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c &#8212; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0440\u043e\u0432\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;max()&#187;<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u043e\u0434 \u0431\u0435\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432:<\/p>\n<pre><code class=\"cpp\">int max(int a, int b) {     return (a >= b ? a : b); }  char max(char a, char b) {     return (a >= b ? a : b); }  \/\/ ------------------------------  int main() {     \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \"int\" ---      int a = 1;     int b = 2;     int abMax = max(a, b);      \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \"char\" ---      char aChar = 1;     char bChar = 2;     char abMaxChar = max(aChar, bChar);     return 0;  }<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438:<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> Type maxTemplate(Type a, Type b) {     return (a >= b ? a : b); }  \/\/ ------------------------------  int main() {     \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \"int\" ---      int a = 1;     int b = 2;     int abMax = maxTemplate(a, b);      \/\/ --- \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \"char\" ---      char aChar = 1;     char bChar = 2;     char abMaxChar = maxTemplate(aChar, bChar);      return 0; }<\/code><\/pre>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"1548\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/132\/dc8\/8f6\/132dc88f636ae4574a75c256c5befe02.png\" data-width=\"3088\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u0434 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d.<\/p>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0430\u0441\u044c \u0431\u044b \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 &#171;Interval::intersection()&#187;<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">class IntervalInt { public:   IntervalInt(int inStart, int inEnd) \t: start(inStart), end(inEnd)   {   }    int getStart() const   {     return start;   }    int getEnd() const   {     return end;   }    int getSize() const   {     return (end - start);   }    IntervalInt intersection(const IntervalInt&amp; inOther) const   {     return IntervalInt{         start >= inOther.start ? start : inOther.start,         end &lt;= inOther.end ? end : inOther.end     };   }  private:   int start;   int end; };  \/\/ ----------------------------------------------  class IntervalChar { public:   IntervalChar(char inStart, char inEnd) \t: start(inStart), end(inEnd)   {   }    char getStart() const   {     return start;   }    char getEnd() const   {     return end;   }    char getSize() const   {     return (end - start);   }    IntervalChar intersection(const IntervalChar&amp; inOther) const   {     return IntervalChar{         start >= inOther.start ? start : inOther.start,         end &lt;= inOther.end ? end : inOther.end     };   }  private:   char start;   char end; };<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438<\/p>\n<pre><code class=\"cpp\">template&lt;typename Type> class IntervalTemplate { public:   IntervalTemplate(Type inStart, Type inEnd) \t: start(inStart), end(inEnd)   {   }    Type getStart() const   {     return start;   }    Type getEnd() const   {     return end;   }    Type getSize() const   {     return (end - start);   }    IntervalTemplate&lt;Type> intersection(const IntervalTemplate&lt;Type>&amp; inOther) const   {     return IntervalTemplate&lt;Type>{         start >= inOther.start ? start : inOther.start,         end &lt;= inOther.end ? end : inOther.end     };   }  private:   Type start;   Type end; };<\/code><\/pre>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"1750\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14c\/945\/2ac\/14c9452aca6bb6378e00b9062e5c286b.png\" data-width=\"3196\"\/><figcaption><\/figcaption><\/figure>\n<\/div>\n<\/details>\n<\/div>\n<\/details>\n<p><strong>3. \u0412\u043e\u043f\u0440\u043e\u0441: \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0440\u0430\u0441\u0445\u043e\u0434 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u043a\u043e\u0434\u0430?<\/strong><\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442:<\/strong> \u0414\u0430, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 C++20 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043d\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0438\u043f\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u043e \u043f\u043e\u0440\u043e\u0436\u0434\u0451\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b.<\/p>\n<p>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u044b \u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 C++20 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e &#8212; \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043f\u0440\u0438\u043e\u0440\u0438 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<\/div>\n<\/details>\n<p><strong>4. \u0412\u043e\u043f\u0440\u043e\u0441: \u0417\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u044e\u0442 \u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043a\u043e\u0434\u0430?<\/strong><\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442:<\/strong> \u041f\u043e\u0438\u0441\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 &#8212; \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u044e\u0442 (\u043e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u0440\u0438\u0445\u043e\u0434\u043e\u043c \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u043e\u0432 \u0438\u0437 C++20 \u0441\u0442\u0430\u043d\u0435\u0442 \u043b\u0443\u0447\u0448\u0435). \u041e\u0442\u043b\u0430\u0434\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043b\u043e\u0433\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b &#8212; \u043d\u0435\u0442.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043f\u044f\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u043e\u0434 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440\u043e\u043c &#8212; \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 <abbr title=\"\u0430\u043d\u0433\u043b. Breakpoint\">\u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430<\/abbr> \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 Visual Studio \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043d\u0443\u0436\u043d\u0443\u044e.<\/p>\n<\/div>\n<\/details>\n<h2>\u0422\u0438\u0442\u0440\u044b<\/h2>\n<details class=\"spoiler\">\n<summary>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u0443\u0437\u044c\u043c\u0435\u043d\u043a\u043e \u041b\u0438\u043b\u0438\u044f<\/p>\n<p>\u0421\u0435\u043c\u0435\u043d\u044f\u043a\u0438\u043d \u041d\u0438\u043a\u043e\u043b\u0430\u0439<\/p>\n<p>\u041a\u0443\u0437\u044c\u043c\u0435\u043d\u043a\u043e \u0418\u0433\u043e\u0440\u044c<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0411\u0435\u0442\u0430-\u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0411\u0430\u0437\u0430\u043d\u043e\u0432 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440<\/p>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<p> <!----> <!----><br \/> \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\/post\/599801\/\"> https:\/\/habr.com\/ru\/post\/599801\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0430 \u0436\u0438\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 C++.<\/p>\n<p>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432? \u041f\u043e\u0447\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0431\u043e\u044f\u0442\u044c\u0441\u044f? \u041a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434 \u0447\u0438\u0449\u0435? \u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0443\u0436\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a \u043d\u0438\u043c \u0441\u043a\u0435\u043f\u0441\u0438\u0441?<\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<hr\/>\n<h2>\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043c\u0430\u0440\u043a\u0438<\/h2>\n<ol>\n<li>\n<p>\u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u043f\u0440\u0438\u0446\u0435\u043b\u043e\u043c \u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; \u043e\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430. \u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 C++, \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0435\u0433\u043e <abbr title=\"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 if, \u0446\u0438\u043a\u043b\u044b for \u0438 while, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 ?:\">\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 ?:&#187;>\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438<\/abbr>, \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u043b\u0430\u0441\u0441\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u0420\u0430\u0437\u0434\u0435\u043b\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u0434 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c: \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043a\u043e\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c: \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u043a\u043e\u0434. \u041a\u0430\u043a \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u0435\u043c\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0437\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439. \u0415\u0441\u043b\u0438 \u043b\u0435\u043d\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 <abbr title=\"\u0430\u043d\u0433\u043b.: Integrated development environment (IDE)\">E)&#187;>\u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/abbr>, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c <a href=\"https:\/\/www.softwaretestinghelp.com\/best-cpp-compiler-ide\/#C_Online_Compilers\" rel=\"noopener noreferrer nofollow\">\u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/a>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 <a href=\"https:\/\/godbolt.org\/\" rel=\"noopener noreferrer nofollow\">godbolt.org<\/a> (\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u043f\u0446\u0438\u0435\u0439 &#171;-O0&#187;).<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u043f\u0440\u0435\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 (\u0431\u0435\u0437 &#171;printf&#187; \/ &#171;std::cout&#187;). \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u0448\u0443\u043c\u0430 \u0432 \u043a\u043e\u0434\u0435. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432 IDE, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 &#8212; \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u043a\u0440\u043e\u0441:<\/p>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043a\u0440\u043e\u0441 PrintExpression<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">\/\/ \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0435 \u0433\u0434\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0440\u043e\u0441 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \/\/ \u0438\u043d\u043a\u043b\u0443\u0434: \"#include &lt;iostream>\"  \/\/ \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u043c\u0430\u043a\u0440\u043e\u0441. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432 \"std::cout\" \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \/\/ \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (\u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u0435\u0442\u0441\u044f \/\/ \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438) \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. #define PrintExpression(Expression)\\      std::cout &lt;&lt; \"{\" #Expression \"}: \" &lt;&lt; (Expression) &lt;&lt;\\      \t\tstd::endl;  \/\/ \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u0430:  \/\/ 1. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 int value = 1; PrintExpression(value) \/\/\u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: {value}: 1  \/\/ 2. \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f int arrayValue[]{ 1, 2, 3, 4 }; PrintExpression(arrayValue[1] + arrayValue[2]) \/\/ \u0420\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: {arrayValue[1] + arrayValue[2]}: 5<\/code><\/pre>\n<\/div>\n<\/details>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438 &#8212; \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u0443 \u043e\u0442 \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437\u0432\u043b\u0451\u043a \u0434\u0430\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u0421 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0431\u044b\u0432\u0430\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u0430\u043b\u0451\u043a \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430: \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0438\u043f &#171;int&#187; \u0432\u043c\u0435\u0441\u0442\u043e &#171;size_t&#187;, \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0434, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0438 \u0442.\u0434. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e\u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u043c\u0435\u0436\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u0430 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u044b, \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0451\u043c\u043e\u0432 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043a\u043e\u0434\u0435, \u0438\u043d\u043e\u0433\u0434\u0430 \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u0442\u0435\u043c\u044b \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c. \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0442\u0435\u043c\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u043e\u0439 &#8212; \u0432\u043e\u0442 \u0442\u0430\u043a: <strong>(*)<\/strong>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u0435\u043c\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0425\u0430\u0431\u0440 &#8212; \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c. \u041a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043d\u044f\u0442\u0438\u044f &#171;template instantiation&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e &#171;\u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439&#187; \u043f\u0435\u0440\u0435\u0432\u043e\u0434 &#171;\u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430&#187;. \u041d\u0435\u0443\u043a\u043b\u044e\u0436\u0435 &#8212; \u043e\u0434\u043d\u0430\u043a\u043e, \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u0432\u044b\u0448\u043b\u043e. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043a\u0438, \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <abbr title=\"\u0414\u0430, \u0432\u043e\u0442 \u0442\u0430\u043a\">\u0442\u0430\u043a&#187;>\u043d\u0430\u0432\u0435\u0434\u044f \u043c\u044b\u0448\u043a\u0443<\/abbr>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u0447\u043d\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#8212; \u043f\u0438\u0448\u0438\u0442\u0435, \u043e\u0431\u0441\u0443\u0434\u0438\u043c. \u042f \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043c\u0435\u043d\u044f\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0443\u0434\u0443 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a, \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438, \u0432 \u043a\u043e\u043d\u0446\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u0438\u0442\u0440\u044b \u0441 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c &#171;\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445&#187; \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0435 \u0437\u0430\u0433\u0440\u043e\u043c\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c \u043b\u0438\u0448\u043d\u0438\u043c \u0441\u043f\u0430\u043c\u043e\u043c, \u043f\u043e \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043b\u0438\u0447\u043a\u0443.<\/p>\n<\/li>\n<\/ol>\n<h2>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#_1_FunctionTempates\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_2_TypeDeduction\" rel=\"noopener noreferrer nofollow\">\u0412\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_3_ClassTemplates\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_4_Specializations\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_5_ArgumentsValidation\" rel=\"noopener noreferrer nofollow\">\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_6_MoreArguments\" rel=\"noopener noreferrer nofollow\">\u0411\u043e\u043b\u044c\u0448\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_7_NonTypeArguments\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_8_TemplateContext\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#_9_PartialSpecializations\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432<\/a><\/p>\n<\/li>\n<\/ol>\n<p><a href=\"#_Conclusion\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<p><a href=\"#_FAQ\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b<\/a><\/p>\n<p><a class=\"anchor\" name=\"_1_FunctionTempates\" id=\"_1_FunctionTempates\"><\/a><\/p>\n<h2>1. \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/h2>\n<p>\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0437 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\" rel=\"noopener noreferrer nofollow\">Don&#8217;t repeat yourself<\/a>. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u044b C++ \u0432\u0432\u0435\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0432 \u044f\u0437\u044b\u043a.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0434\u0430 \u0432\u044b\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041a\u043e\u0434, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u2026<\/p>\n<pre><code class=\"cpp\">int main() { \tconst int a = 3, b = 2, c = 1; \t \tconst int abMax = (a >= b) ? a : b; \tconst int max = (abMax >= c) ? abMax : c;  \treturn 0; } <\/code><\/pre>\n<p>\u2026\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442, \u0443\u0431\u0438\u0440\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cpp\">int max(int a, int b) { \treturn (a >= b ? a : b); }  \/\/...  int main() { \tconst int a = 3, b = 2, c = 1;  \tconst int abMax = max(a, b); \tconst int max = max(abMax, c);  \treturn 0; } <\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u0430\u0451\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432:<\/p>\n<ol>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443 &#8212; \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043f\u0438\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0415\u0441\u043b\u0438 \u0431\u044b \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u0430\u0445, \u0441 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0435\u0439 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432: &#171;(a >= b) ? b : a&#187; \u0438 &#171;(max_ab >= c) ? c : max_ab&#187; &#8212; \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u0441\u043a\u0430\u0442\u044c \u0438 \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438 &#8212; \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u043c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0434\u0435 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0435\u0435. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u0438\u0434\u0430 &#171;(&#8230; >= &#8230;) ? &#8230; : &#8230;&#187; , \u043d\u0430\u0434\u043e \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u044b\u0431\u043e\u0440\u0430 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0434\u0432\u0443\u0445 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u043e\u0432\u043e. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0436\u0435 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 <em>\u0438\u043c\u0435\u043d\u0443\u0435\u0442<\/em> \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0443, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0447\u0438\u0449\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432: \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 (1, 2, 4, 8 \u0431\u0430\u0439\u0442), \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0445 (signed \/ unsigned), \u0434\u043b\u044f \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (&#171;float&#187;, &#171;double&#187;)?<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">char max(char a, char b) { \treturn (a >= b ? a : b); }  unsigned char max(unsigned char a, unsigned char b) { \treturn (a >= b ? a : b); }  short int max(short int a, short int b) { \treturn (a >= b ? a : b); }  unsigned short int max(unsigned short int a, unsigned short int b) { \treturn (a >= b ? a : b); }  int max(int a, int b) { \treturn (a >= b ? a : b); }  unsigned int max(unsigned int a, unsigned int b) { \treturn (a >= b ? a : b); }  \/\/ ... \u0438 \u0442.\u0434. \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \"float\" \u0438 \"double\"...  int main() { \tconst int a = 3, b = 2, c = 1; \tconst int abMax = max(a, b); \tconst int max = max(abMax, c);      \/\/ ...\u0437\u0430\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \"char\"   const char aChar = 'c', bChar = 'b', cChar = 'a'; \tconst char abMaxChar = max(aChar, bChar); \tconst char maxChar = max(abMaxChar, cChar);  \treturn 0; }<\/code><\/pre>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u0427\u0442\u043e \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u0435\u0435, \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041b\u043e\u0433\u0438\u043a\u0430, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0442\u0438\u043f\u0430, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>\u041f\u0440\u0438\u0434\u044f \u043a \u0442\u0435\u043c \u0436\u0435 \u043d\u0435\u0443\u0442\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u0430\u043c, \u0432 1985 \u0433\u043e\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 <strong>\u0448\u0430\u0431\u043b\u043e\u043d\u044b<\/strong>:<\/p>\n<pre><code class=\"cpp\">\/\/ \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 max, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u043e\u0434\u0438\u043d \u0448\u0430\u0431\u043e\u043b\u043e\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \/\/ \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \"Type\". \u0418\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c, \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435 \u0436\u0435 \u0447\u0442\u043e \/\/ \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0442\u0438\u043f\u043e\u0432. \/\/ \u0412\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \"typename\" \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430-\u0442\u0438\u043f\u0430 \/\/ \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \"class\". \u041d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \/\/ (\u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438) \u044d\u0442\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0438\u0447\u043d\u044b. template&lt;typename Type> Type max(Type a, Type b) { \treturn (a >= b ? a : b); }  int main() {   \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \"max&lt;Type>(Type, Type)\" \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \"int\" \tconst int a = 3, b = 2, c = 1; \tconst int abMax = max&lt;int>(a, b); \tconst int max = max&lt;int>(abMax, c);    \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 max&lt;Type>(Type, Type) \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \"char\"   \tconst char aChar = 3, bChar = 2, cChar = 1; \tconst char abMaxChar = max&lt;char>(aChar, bChar); \tconst char maxChar = max&lt;char>(abMaxChar, cChar);      \treturn 0; } <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 &#171;\u0444\u0443\u043d\u043a\u0446\u0438\u044e&#187; \u0441 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 &#8212; <strong>template&lt;typename Type><\/strong>. \u0421\u043b\u043e\u0432\u043e &#171;\u0444\u0443\u043d\u043a\u0446\u0438\u044f&#187; \u0432\u0437\u044f\u0442\u043e \u0442\u0443\u0442 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e. \u042d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u0414\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: &#171;\u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 template&lt;typename Type> \u043e\u043f\u0438\u0441\u0430\u043d <em>\u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/em>, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 <em>\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439<\/em> \u0442\u0438\u043f\u0430 \u0432\u043c\u0435\u0441\u0442\u043e <em>\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430<\/em> Type <em>\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f <\/em>\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438&#187;.<\/p>\n<p>\u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u0443\u0442\u0430\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; \u044d\u0442\u043e &#171;Type a&#187; \u0438 &#171;Type b&#187;) \u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u0430 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; \u044d\u0442\u043e &#171;typename Type&#187;). \u041f\u0435\u0440\u0432\u044b\u0435 \u0437\u0430\u0434\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435. \u0412\u0442\u043e\u0440\u044b\u0435 \u0436\u0435 \u0437\u0430\u0434\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: &#171;max&lt;int>(a, b)<em>&#171;<\/em>. \u0412 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f <em>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/em>. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 &#171;Type&#187; \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8212; \u0442\u0438\u043f &#171;int&#187;. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 &#171;\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c&#187; \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0422\u043e, \u0447\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0437\u0430\u043f\u0438\u0441\u0438 &#171;max&lt;int>()&#187;, \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">int max&lt;int>(int a, int b) { \treturn (a >= b ? a : b); }<\/code><\/pre>\n<p>\u0412\u0441\u0442\u0440\u0435\u0447\u0430\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 &#171;Type&#187; \u0442\u0438\u043f\u0430 &#171;int&#187;, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0436\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u0412\u0441\u0442\u0440\u0435\u0442\u0438\u0432 \u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c &#8212; &#171;max&lt;char>(aChar, bChar)&#187; &#8212; \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0440\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e &#8212; \u043d\u043e \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0443:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f max&lt;char>() \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a char max&lt;char>(char a, char b) { \treturn (a >= b ? a : b); }<\/code><\/pre>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#171;max&lt;int>()&#187; \u0438 &#171;max&lt;char>()&#187; &#8212;<\/p>\n<\/div>\n<\/div>\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-326797","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326797","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=326797"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326797\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=326797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=326797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=326797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}