{"id":498741,"date":"2026-10-15T12:20:26","date_gmt":"2026-10-15T09:20:26","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=498741"},"modified":"2026-10-15T12:20:26","modified_gmt":"2026-10-15T09:20:26","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=498741","title":{"rendered":"\u041a\u0430\u043a, \u043d\u0430\u00a0\u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u0430\u043c\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u00a0C++"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0435\u00a0\u0441\u0435\u043a\u0440\u0435\u0442 (\u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043c\u0435\u043d\u044f \u0447\u0438\u0442\u0430\u0435\u0442), \u0447\u0442\u043e\u00a0\u043c\u043e\u0438 \u0432\u043a\u0443\u0441\u044b \u0432\u00a0\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a\u00a0\u0434\u043b\u044f\u00a0\u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f\u00a0\u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0430. \u0412 <a href=\"https:\/\/mcyoung.xyz\/2025\/07\/07\/nosplit\/\" rel=\"noopener nofollow\">\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445<\/a> <a href=\"https:\/\/mcyoung.xyz\/2025\/04\/21\/go-arenas\/\" rel=\"noopener nofollow\">\u043c\u043e\u0438\u0445<\/a> <a href=\"https:\/\/mcyoung.xyz\/2024\/12\/16\/rangefuncs\/\" rel=\"noopener nofollow\">\u043f\u043e\u0441\u0442\u0430\u0445<\/a>, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u044b\u0445 Go, \u044f \u043f\u0438\u0448\u0443, \u0447\u0442\u043e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435\u00a0\u2014 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0442\u043e\u00a0\u0437\u0430\u0432\u0442\u0440\u0430\u043a\u0430\u0442\u044c \u043e\u0432\u0441\u044f\u043d\u043a\u043e\u0439 \u043d\u0430\u00a0\u0432\u043e\u0434\u0435. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0430\u0440\u043a\u0443, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0438 \u0435\u0449\u0451 \u043e\u0431\u00a0\u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u00a0\u2014 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0442\u043e\u00a0\u0440\u0430\u0437\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0444\u0435 \u0441\u0430\u043c\u043e\u0433\u043e\u043d\u043e\u043c. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e\u00a0C++.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u00a0\u0442\u0435\u0445 \u043c\u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0432\u0435\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0C++ \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0442\u043e \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u043b\u043e\u0445\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++. \u0421\u00a0\u0447\u0435\u0433\u043e\u00a0\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c?<\/p>\n<p>\u0425\u043e\u0442\u044f\u00a0\u0431\u044b \u0441\u00a0\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432\u00a0\u2014 \u043e\u043d\u0438 \u0443\u0436\u0430\u0441\u043d\u044b. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u0431\u00a0API \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0438 \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e \u0434\u0443\u0431\u043e\u043b\u043e\u043c\u044b, <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/container\/unordered_map.html\" rel=\"noopener nofollow\">std::unordered_map<\/a> \u041e\u0411\u042f\u0417\u0410\u0422\u0415\u041b\u042c\u041d\u041e \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u0443\u044e \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u00a0\u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0430\u00a0\u043d\u0435\u00a0\u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/www.cppreference.com\/w\/cpp\/container\/map.html\" rel=\"noopener nofollow\">std::map<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u0447\u0430\u0441\u0442\u043e \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, <em>\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/em> \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0\u043a\u0440\u0430\u0441\u043d\u043e\u2011\u0447\u0451\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u041e\u043d\u0430 \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c b\u2011\u0434\u0435\u0440\u0435\u0432\u043e\u043c, \u0445\u043e\u0442\u044f, \u0438\u043c\u0435\u043d\u043d\u043e b\u2011\u0434\u0435\u0440\u0435\u0432\u043e \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u0443 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u00a0\u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u0434\u043b\u044f\u00a0\u043b\u044e\u0434\u0435\u0439.<\/p>\n<p><a href=\"https:\/\/en.cppreference.com\/w\/cpp\/utility\/optional.html\" rel=\"noopener nofollow\">std::optional<\/a> \u0432\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u2014 \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u0435\u043c\u043e\u0440\u0440\u043e\u0439, \u0442\u0430\u043c \u043a\u0443\u0434\u0430 \u043d\u0438 \u0441\u0442\u0443\u043f\u0438\u00a0\u2014 \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u0448\u044c \u0441\u0435\u0431\u0435 \u0432\u00a0\u043d\u043e\u0433\u0443. \u0427\u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 <code>operator*<\/code>. <code>std::variant<\/code>, \u043a\u0441\u0442\u0430\u0442\u0438, \u0442\u043e\u0436\u0435 \u0438\u0437\u0440\u044f\u0434\u043d\u043e \u043c\u0435\u043d\u044f \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439. \u0412 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/filesystem.html\" rel=\"noopener nofollow\">std::filesystem<\/a> \u043f\u043e\u0432\u0441\u044e\u0434\u0443 \u043e\u0441\u0442\u0440\u044b\u0435 \u0443\u0433\u043b\u044b. \u041a\u0441\u0442\u0430\u0442\u0438, \u0430\u00a0\u0433\u0434\u0435 API \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432?<\/p>\n<p>\u0412\u0441\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435. <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/thread\/hardware_destructive_interference_size.html\" rel=\"noopener nofollow\">std::hardware_destructive_interference_size<\/a> \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0433\u00a0\u0431\u044b \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f <code>std::cache_line<\/code>. <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/container\/span\/subspan\" rel=\"noopener nofollow\">std::span::subspan<\/a> \u043c\u043e\u0433\u00a0\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>operator[]<\/code>. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u0435, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0432\u00a0\u043d\u0438\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441\u00a0\u043f\u0430\u0440\u0430\u043c\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u0413\u043e\u0441\u043f\u043e\u0434\u0438, \u043f\u0430\u0440\u043d\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b! \u0412\u00a0\u044f\u0437\u044b\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/ranges.html\" rel=\"noopener nofollow\">std::ranges<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u0440\u044f\u0434\u043e\u043c \u043d\u0435\u00a0\u0441\u0442\u043e\u044f\u043b\u0438 \u0441 <a href=\"https:\/\/doc.rust-lang.org\/std\/iter\/trait.Iterator.html\" rel=\"noopener nofollow\">Iterator<\/a> \u0438\u0437\u00a0Rust! <\/p>\n<p>\u041c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u0441\u0451 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u0438\u0442. \u0422\u0435, \u043a\u0442\u043e \u0440\u0443\u043b\u044f\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c C++, \u0432\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u043d\u0435\u043d\u0430\u0432\u0438\u0434\u044f\u0442 \u0441\u0432\u043e\u044e \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044e. \u041e\u043d\u0438 \u0445\u043e\u0442\u044f\u0442, \u0447\u0442\u043e\u0431\u044b \u0441\u00a0\u044f\u0437\u044b\u043a\u043e\u043c C++ \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412\u00a0\u043c\u043e\u0451\u043c \u043a\u0440\u0443\u0433\u0443 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u043a\u00a0\u0434\u0440\u0443\u0437\u044c\u044f\u043c\u0438, \u0442\u0430\u043a \u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438, \u043a\u0442\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a\u00a0\u2014 \u0432\u00a0\u0438\u0445 \u0447\u0438\u0441\u043b\u0435 \u0422\u0438\u0442\u0443\u0441 \u0423\u0438\u043d\u0442\u0435\u0440\u0441, \u0414\u0436\u0438\u043d\u0445\u0435\u0439\u0434 \u041c\u0435\u043d\u0435\u0439\u0434, \u041c\u044d\u0442\u0442 \u0424\u0430\u0443\u043b\u0437\u2011\u041a\u0443\u043b\u0443\u043a\u0443\u043d\u0434\u0438\u0441 \u0438 \u042d\u043d\u0434\u0438 \u0421\u043e\u0444\u0444\u0435\u0440. \u0423\u00a0\u043d\u0438\u0445 \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b, \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0439 \u0444\u043e\u0440\u043c\u0435 \u044f\u0437\u044b\u043a C++ \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c. \u041d\u043e\u00a0\u0434\u0435\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0443\u0437\u043a\u043e\u043b\u043e\u0431\u043e\u0441\u0442\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043b\u0438\u043a\u0438, \u0436\u0438\u0432\u0443\u0449\u0435\u0439 \u0432\u00a0\u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0420\u0435\u0434\u043c\u043e\u043d\u0434\u0430. \u0427\u0442\u043e, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u00a0\u044f\u0437\u044b\u043a\u043e\u043c \u0447\u0442\u043e\u00a0\u0445\u043e\u0442\u0438\u043c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u00a0C++ \u0437\u0430\u043b\u043e\u0436\u0435\u043d \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u043b\u044f\u00a0\u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438, \u043e\u0432\u043b\u0430\u0434\u0435\u0432 \u0438\u043c, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e\u00a0\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a. <\/p>\n<p>\u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u0431\u0430\u0432\u043b\u044f\u044e\u0441\u044c \u0441\u00a0\u0431\u0435\u0437\u0443\u043c\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u043a\u0430\u043a\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u00a0\u0431\u044b \u044f\u0437\u044b\u043a C++, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b\u0438 \u0435\u0433\u043e \u0441\u00a0\u043d\u0443\u043b\u044f? \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u0437\u0430\u00a0\u043e\u0441\u043d\u043e\u0432\u0443 \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b C++20\u00a0\u0438 \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435. \u0427\u0442\u043e\u00a0\u0443\u00a0\u043d\u0430\u0441 \u043c\u043e\u0433\u043b\u043e\u00a0\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043b\u044e\u0441\u043e\u0432? <\/p>\n<h2>\u041d\u0430\u0447\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u043d\u0430\u0447\u0430\u043b\u0430<\/h2>\n<p>\u0422\u0438\u0442\u0443\u0441 \u043d\u0430\u0447\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 Abseil, \u0435\u0449\u0451 \u0431\u0443\u0434\u0443\u0447\u0438 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u043c Google. \u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f absl, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u00aba better standard library\u00bb (\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430). \u041d\u0430\u00a0\u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, Abseil \u0432\u0430\u0436\u043d\u0430 \u0441\u0430\u043c\u0430 \u043f\u043e\u00a0\u0441\u0435\u0431\u0435 \u043a\u0430\u043a\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0\u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0435\u0451, \u0432\u00a0\u0442\u043e\u00a0\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043d\u0430\u00a0\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u0430\u043a\u0438\u043c \u043d\u0435\u00a0\u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u043a\u0443\u0441\u0442\u0430\u0440\u043d\u0430\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0434\u043e\u0441\u0442\u0438\u0433 \u0422\u0438\u0442\u0443\u0441 \u0432\u00a0\u0441\u0432\u043e\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435\u00a0\u2014 \u0432\u0435\u0434\u044c \u043f\u043e\u00a0\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u00a0\u043d\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"https:\/\/www.boost.org\/\" rel=\"noopener nofollow\">Boost<\/a> \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0441\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u0430 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>\u042f \u0445\u043e\u0447\u0443 \u043d\u0435\u00a0\u0441\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, \u0430\u00a0\u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0432\u0437\u043e\u0439\u0442\u0438 \u0435\u0451. \u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0444\u043e\u0440\u043c\u0430\u043d\u0441\u0430 \u0445\u043e\u0447\u0443 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430\u00a0\u0431\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u0435\u0451 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 <em>\u0445\u043e\u0442\u044f\u00a0\u0431\u044b<\/em> \u0432 2025\u00a0\u0433\u043e\u0434\u0443.<\/p>\n<p>\u0412\u00a0\u0442\u0430\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u044f \u0445\u043e\u0447\u0443 \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 <em>\u043b\u0443\u0447\u0448\u0435<\/em> \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439. \u041d\u0435\u0442, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++ \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0439 \u0438\u043f\u043e\u0441\u0442\u0430\u0441\u0438. \u0421\u0430\u043c\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u00a0C++. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u043b\u044f\u00a0\u043d\u0435\u0451 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d best.<\/p>\n<p>\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u044f \u043d\u0435\u00a0\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u0440\u044f\u043c\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0438 \u0438\u0437\u00a0C++, \u043d\u0438 \u0438\u0437\u00a0Abseil, \u043d\u0438 \u0438\u0437\u00a0Rust, \u043d\u0438 \u0438\u0437\u00a0Go. \u041d\u043e\u00a0\u0432\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u00a0\u044d\u0442\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432 \u0435\u0441\u0442\u044c \u043f\u043e\u2011\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u0438 \u043b\u0443\u0447\u0448\u0430\u044f \u0438\u0437\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0433\u0434\u0435\u2011\u0442\u043e \u043d\u0430\u00a0\u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438.<\/p>\n<p>\u0412\u00a0\u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0430 \u044f \u043e\u043f\u0438\u0448\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0441\u0440\u0435\u0437 \u0442\u043e\u0433\u043e, \u0447\u0435\u0433\u043e \u043c\u043d\u0435 \u0443\u0436\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 <code>best<\/code>, \u0438 \u0434\u043e\u00a0\u0447\u0435\u0433\u043e \u044f \u0445\u043e\u0447\u0443 \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442. \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/github.com\/mcy\/best\" rel=\"noopener nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b<\/h2>\n<p>\u0418\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442\u00a0\u0432\u0441\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443, \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u043e\u0442 <code>&lt;type_traits&gt;<\/code>. \u042d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e: \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u0432 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 C++14, \u0430\u00a0\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u00a0\u2014 \u0432\u00a0C++17. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u00a0\u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438\u00a0\u0431\u044b \u0431\u044b\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a <code>best::is_same_v<\/code>. \u0414\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u043d\u0438\u0445 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u00a0\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 <code>&lt;concepts&gt;<\/code>.<\/p>\n<p>\u042f\u00a0\u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u0430\u0436\u0438 \u0442\u0438\u043f\u043e\u0432, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0432 \u0438\u0445 \u043f\u043e\u00a0\u0440\u0430\u0437\u043d\u044b\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043a\u0430\u0442\u044c. \u0412\u0441\u0435 \u043e\u043d\u0438 \u0443\u00a0\u043c\u0435\u043d\u044f \u0436\u0438\u0432\u0443\u0442 \u043f\u043e\u0434 <code>\/\/best\/meta\/traits<\/code> \u0438 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043b\u0438\u0441\u0442\u044c\u044f \u0433\u0440\u0430\u0444\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u00a0arrays.h \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432\u0441\u0435 \u0442\u0438\u043f\u0430\u0436\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::is_array<\/code>, <code>best::un_array<\/code> (\u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430) \u0438 <code>best::as_array<\/code>, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u00a0\u0442\u0438\u043f\u0443 <code>T<\/code>, \u0442\u0430\u043a, \u0447\u0442\u043e <code>best::as_array&lt;T, 0&gt;<\/code> \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<p>\u0412 <code>types.h<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p><code>best::id<\/code> \u0438 <code>best::val<\/code>, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f\u00a0\u0442\u0438\u043f\u043e\u2011 \u0438 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u2011\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0436\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p><code>best::same&lt;...&gt;<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439, \u0440\u0430\u0432\u043d\u044b\u00a0\u043b\u0438 \u0432\u0441\u0435 \u0442\u0438\u043f\u044b, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u00a0\u0446\u0435\u043b\u0443\u044e <em>\u0433\u0440\u0443\u043f\u043f\u0443<\/em> (pack). <\/p>\n<\/li>\n<li>\n<p><code>best::lie<\/code>, \u043d\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0438\u044f <code>std::declval<\/code>. <\/p>\n<\/li>\n<li>\n<p><code>best::select<\/code>, \u043d\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0438\u044f <code>std::conditional_t<\/code>. <\/p>\n<\/li>\n<li>\n<p><code>best::abridge<\/code>, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u00ab\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f\u00bb, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c\u0438. <\/p>\n<\/li>\n<\/ul>\n<p><code>funcs.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>best::tame<\/code>, \u0441\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0441 <a href=\"https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/p0172r0.html\" rel=\"noopener nofollow\">\u043e\u043c\u0435\u0440\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/a>. <code>quals.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>best::qualifies_to<\/code>\u00a0\u2014 \u043e\u043d\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0\u043b\u0438 \u043d\u0435\u043a\u0438\u0439 \u0442\u0438\u043f \u00ab\u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u043c\u00bb, \u0447\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439. <code>empty.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u0438\u043f, \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441 <code>void<\/code>.<\/p>\n<p>\u041f\u043e\u0432\u0435\u0440\u0445 \u0442\u0438\u043f\u0430\u0436\u0435\u0439 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f\u00a0\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <code>\/\/best\/meta<\/code>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0432\u00a0\u0444\u0430\u0439\u043b\u0435 <code>init.h<\/code> \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430\u0436\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>T&amp;<\/code> \u0438\u0437 <code>T&amp;&amp;<\/code>,). tlist.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0430\u043c\u0443\u044e \u043e\u0431\u0449\u0443\u044e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044e \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0438\u043f\u043e\u0432; \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u0430\u043a\u00a0\u0442\u0438\u043f.<\/p>\n<p>\u0414\u0440\u0443\u0433\u0438\u043c \u00ab\u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0441\u0442\u043e\u043b\u043f\u043e\u043c\u00bb \u0441\u043b\u0443\u0436\u0438\u0442 <code>\/\/best\/base<\/code>, \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u0438\u043d\u0442\u0440\u0438\u043d\u0441\u0438\u043a\u0430\u043c, \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c \u0438 \u00ab\u0442\u0435\u0433\u2011\u0442\u0438\u043f\u0430\u043c\u00bb, \u0442\u0430\u043a\u0438\u043c, \u043a\u0430\u043a\u00a0\u043d\u0430\u0448\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 <code>std::in_place<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>macro.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>BEST_STRINGIFY()<\/code>, <code>port.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>BEST_HAS_INCLUDE()<\/code>, \u0430 <code>hint.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>best::unreachable()<\/code>.<\/p>\n<p><code>guard.h<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0448\u0443 \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <code>?<\/code>, \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432\u00a0Rust \u0438 \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0Clang \u043d\u0435\u00a0\u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438\u2011\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 (statement expressions).<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u043d\u0443\u0442\u0440\u0438 \/\/best\/container \u043d\u0430\u0445\u043e\u0434\u0438\u043c <code>best::object<\/code>, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f C++ \u0432\u00a0\u043e\u0431\u044a\u0435\u043a\u0442 (\u0442.e., \u0432\u00a0\u0442\u0438\u043f, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443). \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0431\u0449\u0435\u043c \u0432\u0438\u0434\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0442\u0438\u043f\u043e\u043c, \u043d\u0435\u00a0\u0441\u043f\u043e\u0442\u044b\u043a\u0430\u044f\u0441\u044c \u043e\u00a0\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u0443\u044e \u0434\u043b\u044f\u00a0\u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::object&lt;T&amp;&gt; <\/code>\u0432\u00a0\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c. <\/p>\n<h2>ADT\u2011\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b<\/h2>\n<p>\u0411\u0430\u0437\u0438\u0440\u0443\u044f\u0441\u044c \u043d\u0430\u00a0\u0432\u0441\u0451\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b <code>best: best::row<\/code> \u0438 <code>best::choice<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0442 <code>std::tuple<\/code> \u0438 <code>std::variant<\/code>.<\/p>\n<p><code>best::row&lt;A, B, C&gt;<\/code>\u00a0\u2014 \u044d\u0442\u043e \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0432\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 <code>best::object<\/code>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, <code>best::row&lt;int&amp;&gt;<\/code> \u043f\u0440\u0438\u0441\u0443\u0449\u0430 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f, \u0430\u00a0\u043d\u0435\u00a0\u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041a\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>at(): my_<\/code><a href=\"http:\/\/row.at\" rel=\"noopener nofollow\"><code>row.at<\/code><\/a><code>&lt;0&gt;()<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f, \u0447\u0442\u043e\u00a0\u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>my_row.first()<\/code>. \u041f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>my_row.object&lt;0&gt;()<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <code>best::object<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"cpp\">int x = 0, y = 0;best::row&lt;int&amp;&gt; a{x};a.at&lt;0&gt;() = 42;     \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 x.a.object&lt;0&gt;() = y;  \/\/ \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 .0 \u043a y.a.at&lt;0&gt;() = 2*x;    \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 y.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>\u0415\u0449\u0451 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b <code>second()<\/code> \u0438 <code>last()<\/code>, \u0434\u043b\u044f\u00a0\u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u00a0\u0435\u0449\u0451 \u0434\u0432\u0443\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c, \u043a\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u043a\u00a0\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p><code>best::row<\/code> \u043d\u0430\u0437\u0432\u0430\u043d \u0442\u0430\u043a \u0441\u00a0\u043e\u0433\u043b\u044f\u0434\u043a\u043e\u0439 \u043d\u0430\u00a0\u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445; \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043b\u044f\u00a0\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437\u00a0\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u2014 \u0430 <code>std::tuple<\/code> \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043d\u043e\u00a0\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u043c \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438<code> best::bounds: <\/code><a href=\"http:\/\/a.at\" rel=\"noopener nofollow\"><code>a.at<\/code><\/a><code>&lt;best::bounds{.start = 1, .end = 10}&gt;()<\/code>! \u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0\u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u0443\u0442\u0430\u0446\u0438\u0438):<\/p>\n<ul>\n<li>\n<p><code>a + b<\/code> \u0441\u0446\u0435\u043f\u043b\u044f\u0435\u0442 \u043a\u043e\u0440\u0442\u0435\u0436\u0438, \u043a\u043e\u043f\u0438\u0440\u0443\u044f \u0438\u043b\u0438\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b\u00a0\u2014 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f (\u0442\u0430\u043a, <code>a + BEST_MOVE(b)<\/code> \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0441\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>b<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>a.push(x)<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043f\u0438\u044e a \u0441\u00a0\u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u043c \u043a\u00a0\u043d\u0435\u0439 <code>x<\/code>, \u0430 <code>a.insert&lt;n&gt;(x)<\/code>\u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443.<\/p>\n<\/li>\n<li>\n<p><code>a.update&lt;n&gt;(x)<\/code><em>\u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442<\/em> <code>n<\/code>\u2011\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>x<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0442\u0438\u043f\u0443, \u043d\u0435\u0436\u0435\u043b\u0438 <code>x<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>a.remove&lt;n&gt;() <\/code>\u0443\u0434\u0430\u043b\u044f\u0435\u0442 <code>n<\/code>\u2011\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a <code>a.erase&lt;...&gt;()<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d.<\/p>\n<\/li>\n<li>\n<p><code>a.splice&lt;best::bounds{...}&gt;(...)<\/code> \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u00a0\u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0447\u0442\u043e\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0437\u0430\u043c\u0435\u043d\u044b\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p> <code>gather()<\/code> \u0438 <code>scatter()<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043d\u0435\u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. <\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, <code>std::apply<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043c\u0435\u0442\u043e\u0434: <code>a.apply(f)<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>f<\/code>, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b a \u043a\u0430\u043a\u00a0\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b. <code>a.each(f)<\/code> \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u043e, \u0432\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0443\u043d\u0430\u0440\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b <code>f<\/code> \u0434\u043e <code>n<\/code>, \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. <\/p>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, <em>\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e<\/em>, <code>best::row<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438.<\/p>\n<p>\u0412\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, <code>best::choice&lt;A, B, C&gt;<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u043e\u0432\u043d\u043e \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u0437\u00a0\u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0438\u043f <code>best::pun&lt;A, B, C&gt;<\/code>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043d\u0435\u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0431\u0430\u0433\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432\u00a0C++ \u043f\u0440\u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u00a0\u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a\u00a0\u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0442\u0438\u043f\u0430\u043c. <\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u043d\u0430\u00a0\u0432\u044b\u0431\u043e\u0440\u00a0\u2014 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u00a0\u043d\u0435\u043c\u0443 <code>match<\/code>:<\/p>\n<pre><code class=\"cpp\">best::choice&lt;int, *int, void&gt; z = 42;int result = z.match(  [](int x) { return x; },  [](int* x) { return *x; },  [] { return 0; });<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u0432\u044b\u0437\u0432\u0430\u043d, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a <code>[](auto&amp;&amp;) { ... }<\/code>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u044b\u0431\u0440\u0430\u043d \u0432\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>z.which()<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u00a0\u043a\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/z.at\" rel=\"noopener nofollow\"><code>z.at<\/code><\/a><code>()<\/code>, \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441<code> best::row<\/code>, \u0437\u0430\u00a0\u0442\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e\u00a0\u0432\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f <code>best::option&lt;T&amp;&gt;<\/code>.<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u00a0\u043e\u0441\u043d\u043e\u0432\u0435 <code>best::choice<\/code> \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u2011\u0441\u0443\u043c\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::option<\/code> \u0438 <code>best::result<\/code>. \u0421\u044e\u0434\u0430\u00a0\u0436\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0443\u043c\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0427\u0442\u043e\u00a0\u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f <code>best::option&lt;T&gt;<\/code>, \u044d\u0442\u043e \u043d\u0430\u0448 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f. \u041f\u043e\u00a0\u0434\u0443\u0445\u0443 \u043e\u043d \u0431\u043b\u0438\u0437\u043e\u043a \u0442\u0438\u043f\u0443 <a href=\"https:\/\/doc.rust-lang.org\/std\/option\/enum.Option.html\" rel=\"noopener nofollow\">Option&lt;T&gt;<\/a> \u0432\u00a0Rust. \u0412 <code>best<\/code> \u0435\u0441\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0439 \u043d\u0438\u0448\u0435\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, <code>best::option&lt;T&amp;&gt;<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e\u00a0\u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u043a\u0430\u043a\u00a0\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043f\u0440\u0438\u0447\u0451\u043c, \u0434\u043b\u044f\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 <code>best::none<\/code> \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <code>nullptr<\/code>.<\/p>\n<p>best::option \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f: <code>map<\/code>, <code>then<\/code>, <code>filter<\/code>. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043f\u0443\u0441\u0442\u00a0\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>is_empty()<\/code> \u0438\u043b\u0438 <code>has_value()<\/code>. \u041c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 <code>has_value()<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u00a0\u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0435\u0441\u0442\u044c: <code>x.has_value([](auto&amp; x) { return x == 42; })<\/code>.<\/p>\n<p>\u041a\u00a0\u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>operator*<\/code> \u0438 <code>operator-&gt;<\/code>, \u043a\u0430\u043a\u00a0\u0441\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c <code>std::optional;<\/code>. \u0422\u0435\u043c \u043d\u0435\u00a0\u043c\u0435\u043d\u0435\u0435, \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a\u00a0\u0432\u044b\u0431\u0440\u043e\u0441\u0443 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u00a0\u043e\u043f\u0446\u0438\u044f \u043f\u0443\u0441\u0442\u0430. <code>value_or()<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u043f\u0446\u0438\u044e, \u0437\u0430\u043c\u0435\u043d\u0438\u0432 \u0435\u0451 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0423\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u00a0\u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u043b\u0438\u00a0\u0434\u0430\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"cpp\">best::option&lt;Foo&gt; x;\/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443.do_something(x.value_or(args, to, foo));\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0442.do_something(x.value_or([] {  return Foo(...);}))<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::option&lt;void&gt;<\/code> \u0442\u0430\u043a\u0436\u0435 \u0431\u0435\u0440\u0451\u0442 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, <code>best::option&lt;T&gt;<\/code> \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0430\u043a <code>best::choice&lt;void, T&gt;<\/code>), \u0447\u0442\u043e\u00a0\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u2011\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438.<\/p>\n<p>\u041d\u0435\u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e <code>best::result&lt;T, E&gt;<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d <a href=\"https:\/\/doc.rust-lang.org\/std\/result\/enum.Result.html\" rel=\"noopener nofollow\">Result&lt;T, E&gt;<\/a> \u0438\u0437\u00a0Rust. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>best::choice<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0430\u043a <code>best::result&lt;void, E&gt;<\/code>, \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0\u0432\u044b \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0435, \u043f\u0440\u0438\u0447\u0451\u043c, \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0435 \u0432\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430.<\/p>\n<p>\u041e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u043e\u0431\u0435\u043d <code>best::option,<\/code> \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <code>operator-&gt;<\/code> \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 \u00abok\u00bb. \u0422\u0430\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u044b\u0435 \u0438\u0434\u0438\u043e\u043c\u044b:<\/p>\n<pre><code class=\"cpp\">if (auto r = fallible()) {  r-&gt;do_something();} else {  best::println(\"{}\", *r.err());}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>r.ok()<\/code> \u0438 <code>r.err()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 best::option, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b <code>ok<\/code> \u0438 <code>error<\/code>, \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437\u00a0\u043d\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f. \u0412\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, <code>best::option<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432 <code>best::result<\/code> \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>ok_or()<\/code> \u0438\u043b\u0438 <code>err_or()<\/code>, \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a\u00a0\u0432\u00a0Rust.<\/p>\n<p>\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b <code>best::result<\/code> \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>best::ok<\/code> \u0438 <code>best::err<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"cpp\">best::result&lt;Foo, Error&gt; r = best::ok(args, to, foo);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <code>best::args<\/code>, \u044d\u0442\u043e \u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u043d\u0430\u0434<code> best::row<\/code>, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u00ab\u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u00bb, \u0438 \u044d\u0442\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438. \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u00a0\u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437\u00a0\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"cpp\">Foo foo = best::args(args, to, foo);  \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 Foo::Foo(args, to, foo).<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u0441\u0435 \u0434\u043e\u00a0\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u0442\u0438\u043f\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c, \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043f\u043e\u00a0\u043d\u0435\u0447\u0438\u0441\u043b\u043e\u0432\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443!<\/p>\n<h2>\u041f\u0430\u043c\u044f\u0442\u044c \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/h2>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u044d\u0442\u0438 ADT \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u00a0\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f <code>\/\/best\/memory. best::ptr&lt;T&gt;<\/code>\u00a0\u2014 \u044d\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u00a0Rust \u0434\u0435\u043b\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u044b\u0440\u044b\u0445 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439\u00a0\u2014 \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. <code>best::ptr&lt;T&gt;<\/code>, \u043a\u0430\u043a\u00a0\u0438 \u0432\u00a0Rust, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0436\u0438\u0440\u043d\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::ptr&lt;int[]&gt;<\/code> \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. <\/p>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f <code>best::ptr<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043f\u043e\u0434\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <code>BestPtrMetadata<\/code>. \u042d\u0442\u043e\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c, \u0430 <code>best<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u043d\u0435\u043c\u0443, \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u0441 <code>best::access<\/code>. \u041e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u044b \u0441\u00a0\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c (\u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u043e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440), \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0442\u0430\u043a\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u043a\u0430\u043a <code>best::ptr<\/code>.<\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043c\u044b \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e\u00a0\u0440\u0430\u0437\u044b\u043c\u0435\u043d\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::ptr&lt;int[]&gt;<\/code> \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u0443\u0435\u0442\u0441\u044f \u0432 <code>best::span&lt;int&gt;<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c, \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u00a0\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 <code>operator-&gt;<\/code>: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>my_array_ptr-&gt;first()<\/code>.<\/p>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u00a0\u043c\u043d\u043e\u0433\u043e\u0435 \u0437\u0434\u0435\u0441\u044c \u043f\u0435\u0440\u0435\u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u0441\u044b\u0440\u044b\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 C++ \u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438. \u041d\u043e <code>best::ptr<\/code>\u00a0\u2014 \u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u0430, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f <code>best::box&lt;T&gt;<\/code>. <code>best::box&lt;T&gt;<\/code> \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/memory\/unique_ptr.html\" rel=\"noopener nofollow\">std::unique_ptr&lt;T&gt;<\/a>, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 <code>const<\/code>\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f <a href=\"https:\/\/doc.rust-lang.org\/std\/boxed\/struct.Box.html\" rel=\"noopener nofollow\">Box<\/a>\u2011\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a\u00a0\u0432\u00a0Rust. <code>best::box&lt;T[]&gt;<\/code> \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442, \u043d\u043e, \u0432\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 <code>std::unique_ptr&lt;T[]&gt;<\/code>, \u043e\u043d \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440, \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a\u00a0\u0438 <code>best::ptr&lt;T[]&gt;<\/code>.<\/p>\n<p>best::box \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0435\u0433\u043e\u00a0\u0436\u0435 \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c <code>best::allocator<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u044f\u0442\u043d\u044b\u0439 API, \u0447\u0435\u043c \u0442\u043e\u0442, \u0447\u0442\u043e\u00a0\u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/memory\/allocator.html\" rel=\"noopener nofollow\">std::allocator<\/a>. <code>best::malloc<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u2011\u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d, \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0443\u00a0\u043d\u0430\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440.<\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438 <code>best::span&lt;T&gt;<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0449\u0430\u044f <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/container\/span.html\" rel=\"noopener nofollow\">std::span<\/a>. <code>best::span&lt;T, n&gt;<\/code>, \u043f\u043e\u0434\u043e\u0431\u043d\u043e <code>std::span<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 <code>n<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041d\u043e, \u0432\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 <code>std::span<\/code>, \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0437\u0434\u0435\u0441\u044c \u0438\u0434\u0451\u0442 <code>best::option&lt;size_t&gt;<\/code>, \u0430\u00a0\u043d\u0435 <code>size_t<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u043e\u0440\u043e\u0436\u0435\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f -1.<\/p>\n<p><code>best::span&lt;T&gt;<\/code> \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0438\u0439\u0441\u044f \u0432\u00a0Rust API <a href=\"https:\/\/doc.rust-lang.org\/std\/primitive.slice.html\" rel=\"noopener nofollow\">\u0441\u0440\u0435\u0437\u043e\u0432<\/a>, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0432\u0441\u0442\u0430\u0432\u043a\u0443, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443, \u043f\u043e\u0438\u0441\u043a \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435. \u041f\u0435\u0440\u0435\u0431\u043e\u0440, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0442\u043e\u0436\u0435, \u043a\u0430\u043a\u00a0\u0438\u0437\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u00a0\u043a\u043e\u043d\u0435\u0446, \u0442\u0430\u043a \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. \u041a\u0430\u043a\u00a0\u0438 \u0432\u00a0Rust, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b (splitting iterator). <\/p>\n<p>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446. \u0414\u043b\u044f\u00a0\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043e\u0439\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f size_t, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>best::bounds<\/code>:<\/p>\n<pre><code class=\"cpp\">best::span&lt;int&gt; xs = ...;auto x = xs[5];auto ys = xs[{.start = 1, .end = 6}];<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::bounds<\/code>\u00a0\u2014 \u044d\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e\u043d \u043f\u043e\u0445\u043e\u0434 \u043d\u0430\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u0432\u00a0Rust <a href=\"https:\/\/doc.rust-lang.org\/std\/ops\/struct.Range.html\" rel=\"noopener nofollow\">\u0442\u0438\u043f\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432<\/a>. \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e), \u043a\u0430\u043a <code>x..y<\/code> \u0432\u00a0Rust. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0435\u0446, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>inclusive_end = 5<\/code>, \u0447\u0442\u043e\u00a0\u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e <code>x..=y<\/code> \u0432\u00a0Rust. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0447\u0451\u0442, \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u00a0\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u00a0C++: <code>{.start = 1, .count = 5}. best::bounds<\/code> \u0441\u0430\u043c \u043f\u043e\u00a0\u0441\u0435\u0431\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0438\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0433\u0440\u0430\u043d\u0438\u0446, \u0430\u00a0\u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u0430\u0437\u0430 \u0432\u044b\u0434\u0430\u0451\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u00a0\u043e\u0448\u0438\u0431\u043a\u0435. \u041a\u0430\u043a\u00a0\u043c\u044b \u0432\u0441\u043a\u043e\u0440\u0435 \u0443\u0432\u0438\u0434\u0438\u043c, <code>best::bounds<\/code> \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c.<\/p>\n<p><code>best::layout<\/code>\u00a0\u2014 \u044d\u0442\u043e \u043a\u043e\u043f\u0438\u044f \u0442\u0438\u043f\u0430 <a href=\"https:\/\/doc.rust-lang.org\/std\/alloc\/struct.Layout.html\" rel=\"noopener nofollow\">Layout<\/a> \u0438\u0437\u00a0Rust, \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u0435\u00a0\u0436\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432\u00a0C++\u2011\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435.<\/p>\n<h2>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b <\/h2>\n<p>\u041f\u0430\u0440\u044b \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0432\u00a0C++ \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435\u00a0\u0433\u043e\u0434\u044f\u0442\u0441\u044f. \u041a\u0430\u043a\u00a0\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b. \u0412\u00a0best \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0430 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430, \u0432\u00a0\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0437\u0434\u0435\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b <a href=\"https:\/\/doc.rust-lang.org\/std\/iter\/trait.Iterator.html\" rel=\"noopener nofollow\">\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a> Rust, \u043f\u0435\u0440\u0435\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0444\u043e\u0440\u043c\u0443 C++. \u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>\/\/best\/iter<\/code>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c <em>\u0442\u0438\u043f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u2011\u0447\u043b\u0435\u043d <code>next()<\/code>, \u0430\u00a0\u043e\u043d\u0430, \u0432\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>best::option<\/code>:<\/p>\n<pre><code class=\"cpp\">class my_iter_impl final {  public:    best::option&lt;int&gt; next();};<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0442\u0438\u043f\u00a0\u2014 \u0434\u0435\u0442\u0430\u043b\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438; \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u00a0\u2014 \u044d\u0442\u043e <code>best::iter&lt;my_iter_impl&gt;<\/code>. <code>best::iter<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a <code>Iterator<\/code>. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f\u00a0\u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043a\u00a0\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0438\u043b\u0438\u00a0\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0445 \u043e\u0442\u00a0\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u00a0\u044d\u0442\u0438\u0445 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432, \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, count() \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043f\u043e\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430\u00a0\u043d\u0435\u00a0\u043b\u0438\u043d\u0435\u0439\u043d\u044b\u043c. \u0422\u0430\u043a\u0436\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0435\u0441\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>BestIterArrow<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 <code>best::span<\/code> \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>-&gt;rest()<\/code>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043a\u0430 \u043d\u0435\u00a0\u0432\u044b\u0434\u0430\u043b next().<\/p>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437\u00a0\u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u00a0\u2014 \u044d\u0442\u043e <code>size_hint()<\/code>, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f <a href=\"https:\/\/doc.rust-lang.org\/std\/iter\/trait.Iterator.html#method.size_hint\" rel=\"noopener nofollow\">Iterator::size_hint()<\/a>, \u0434\u043b\u044f\u00a0\u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0435\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::vec<\/code>.<\/p>\n<p>\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, <code>best::iter<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 begin\/end, \u0442\u0430\u043a, \u0447\u0442\u043e\u00a0\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u00a0\u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0446\u0438\u043a\u043b\u0430 <code>range-for<\/code> C++, \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a\u00a0\u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u00a0\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0432\u00a0C++20. <code>best::int_range&lt;I&gt;<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 <code>best::interval<\/code> \u0438\u043b\u0438\u00a0\u0434\u0430\u0436\u0435 <code>best::range<\/code>\u00a0\u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c!\u00a0\u2014 \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043e\u0434\u043d\u0438\u043c \u0438\u0437\u00a0\u0432\u043e\u043f\u043b\u043e\u0449\u0435\u043d\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>best::bounds<\/code>. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u00a0\u0436\u0435, \u043a\u0430\u043a\u00a0\u043c\u043e\u0433\u043b\u0438\u00a0\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b Rust:<\/p>\n<pre><code class=\"cpp\">for (auto i : best::int_range&lt;int&gt;{.start = 1, .count = 200}) {  \/\/ ...}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::int_range<\/code> \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u00a0\u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>best::int_range&lt;uint8_t&gt;{.end_inclusive = 255}<\/code>.<\/p>\n<h2>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043a\u0443\u0447\u0438<\/h2>\n<p>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u043e\u0434\u0432\u043e\u0434\u044f\u0442 \u043d\u0430\u0441 \u043a\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u00a0\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: <code>best::vec<\/code>. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f\u00a0\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043d\u043e\u00a0\u0438 \u0442\u0438\u043f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0430\u043b\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>\u0412\u00a0libc++ \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a <code>std::string<\/code> \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 23\u00a0\u0431\u0430\u0439\u0442\u0430, \u0438 \u043e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432\u043e <em>\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435<\/em>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u0430\u00a0\u043d\u0435\u00a0\u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u00a0\u043a\u0443\u0447\u0435. \u042d\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>best::vec<\/code>, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0442\u0438\u043f. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, <code>best::vec&lt;int&gt;<\/code> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u043e\u00a0\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043f\u044f\u0442\u044c <code>int<\/code>, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0434\u043b\u044f 64-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. <\/p>\n<p><code>best::vec<\/code> \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 API \u0438\u0437 <code>std::vector<\/code> \u0438 <a href=\"https:\/\/doc.rust-lang.org\/std\/vec\/struct.Vec.html\" rel=\"noopener nofollow\">Vec<\/a> \u0438\u0437\u00a0Rust. \u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0442\u0430\u043a\u00a0\u0436\u0435, \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0best::span, \u0438 \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c \u0441\u00a0best::span \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>-&gt;<\/code>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0432\u0435\u0449\u0438 \u043a\u0430\u043a <code>my_vec-&gt;sort(...)<\/code>.<\/p>\n<p>\u0423\u00a0\u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 (\u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439) \u043f\u0443\u043b\u2011\u0440\u0435\u043a\u0432\u0435\u0441\u0442, \u0432\u00a0\u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>best::table&lt;K, V&gt;<\/code>, \u043e\u0431\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0445\u0435\u0448\u2011\u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043a\u0430\u043a\u00a0\u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0438 \u043a\u0430\u043a\u00a0\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e. \u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u043d\u0430 \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u00a0\u0432\u0438\u0434\u0435 \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. <a href=\"https:\/\/www.youtube.com\/watch?v=ncHmEUmJZf4\" rel=\"noopener nofollow\">\u0417\u0434\u0435\u0441\u044c<\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0451 API \u043d\u0435\u00a0\u043f\u043e\u0445\u043e\u0436 \u043d\u0438 \u043d\u0430 <code>std::unordered_map<\/code>, \u043d\u0438 \u043d\u0430 <code>absl::flat_hash_map<\/code>, \u043d\u0438 \u0434\u0430\u0436\u0435 \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/std\/collections\/struct.HashMap.html\" rel=\"noopener nofollow\">HashMap<\/a> \u0438\u0437\u00a0Rust. \u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432, \u0432\u0441\u0451 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0439 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 API, \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u00a0Rust, \u043d\u043e\u00a0\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0\u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u044f\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e\u0438\u0441\u043a\u0430 \u0445\u0435\u0448\u0435\u0439.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 <code>best::table<\/code> \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0451 <em>\u043a\u0430\u043a\u00a0\u043c\u0438\u043d\u0438\u043c\u0443\u043c<\/em> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b:<\/p>\n<ul>\n<li>\n<p><code>best::tree<\/code>, B\u2011\u0434\u0440\u0435\u0432\u0435\u0441\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c\/\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u00a0\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c API.<\/p>\n<\/li>\n<li>\n<p><code>best::heap<\/code>, \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0443\u0447\u0438.<\/p>\n<\/li>\n<li>\n<p><code>best::lru<\/code>, \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <code>best::table<\/code> \u0441\u00a0\u043f\u0440\u043e\u043d\u0438\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0435\u0451 \u0441\u0432\u044f\u0437\u043d\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u043f\u043e\u00a0\u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435 \u0441\u0430\u043c\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><code>best::ring<\/code>, \u043a\u043e\u043b\u044c\u0446\u0435\u0432\u043e\u0439 \u0431\u0443\u0444\u0435\u0440 \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 <a href=\"https:\/\/doc.rust-lang.org\/std\/collections\/struct.VecDeque.html\" rel=\"noopener nofollow\">VecDeque<\/a>.<\/p>\n<\/li>\n<li>\n<p><code>best::trie<\/code>, \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0440\u0435\u0439\u0442 <a href=\"https:\/\/docs.rs\/twie\/latest\/twie\/\" rel=\"noopener nofollow\">twie<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u0434\u0435\u0439: <a href=\"https:\/\/research.swtch.com\/sparse\" rel=\"noopener nofollow\">\u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0420\u0430\u0441\u0441\u0430<\/a>, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u043d\u0435\u0447\u0442\u043e \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/EnumMap.html\" rel=\"noopener nofollow\">EnumMap<\/a> \u0438\u0437\u00a0Java, \u0442\u0438\u043f\u044b \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 <\/p>\n<h2>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 <code>best<\/code> \u0434\u043e\u043b\u0436\u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u00a0Rust; \u043e\u043d \u0436\u0438\u0432\u0451\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 <code>\/\/best\/text<\/code>. <code>best::rune<\/code> \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c \u042e\u043d\u0438\u043a\u043e\u0434, \u0442\u0430\u043a\u0438\u043c, \u0447\u0442\u043e\u00a0\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <em>\u0432\u0441\u0435\u0433\u0434\u0430<\/em> \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u00a0\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043a\u0430\u043a\u043e\u0433\u043e\u2011\u0442\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u0430 \u042e\u043d\u0438\u043a\u043e\u0434, \u043d\u043e\u00a0\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043d\u0435\u043f\u0430\u0440\u043d\u044b\u0435 \u0441\u0443\u0440\u0440\u043e\u0433\u0430\u0442\u044b. \u0412\u00a0\u044d\u0442\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u044f\u0434 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438.<\/p>\n<p><code>best::str<\/code> \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/string\/basic_string_view.html\" rel=\"noopener nofollow\">best::string_view<\/a> \u0438 \u043f\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/std\/primitive.str.html\" rel=\"noopener nofollow\">str<\/a> \u0438\u0437\u00a0Rust: \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445 \u0431\u0430\u0439\u0442 UTF-8, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0432\u00a0\u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u00a0\u0433\u043b\u0438\u0444\u0430\u043c, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435<\/p>\n<p><code>best::rune<\/code> \u0438 <code>best::str<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0440\u043a\u0435 \u0438\u0437\u00a0\u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u00a0\u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <em>\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435<\/em> \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0435\u00a0\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f! <\/p>\n<pre><code class=\"cpp\">best::str invalid = \"\\xFF\";<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::str<\/code> \u043f\u043e\u0434\u00a0\u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00a0\u2014 \u044d\u0442\u043e <code>best::span<\/code>, \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u00a0\u0436\u0435, \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e <code>&amp;[u8]<\/code> \u0432 <code>&amp;str<\/code>.<\/p>\n<p><code>best::strbuf<\/code> \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/string\/basic_string.html\" rel=\"noopener nofollow\">std::string<\/a>. \u041e\u00a0\u043d\u0451\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0435\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0\u0432\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0435, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/doc.rust-lang.org\/std\/string\/struct.String.html\" rel=\"noopener nofollow\">String<\/a>\u2011\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 API \u0432\u00a0\u0441\u0442\u0438\u043b\u0435 Rust.<\/p>\n<p>\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u2011\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u00a0\u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a \u0432\u0441\u0451 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043e. <code>best::str<\/code>\u00a0\u2014 \u044d\u0442\u043e, \u0432\u00a0\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, <code>best::text&lt;best::utf8&gt;;<\/code>. \u0422\u043e\u0433\u0434\u0430 <code>best::str16<\/code>\u00a0\u2014 \u044d\u0442\u043e <code>best::text&lt;best::utf16&gt;<\/code>. \u041c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0440\u043e\u0442\u043a\u0438\u0435, \u0430\u00a0\u0432\u044b \u0441\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f\u00a0\u043d\u0438\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u043b\u0438\u0444\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <code>best::encoding<\/code> \u043a\u0430\u043a\u00a0\u0441\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438.<\/p>\n<p><code>best::text<\/code> \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d \u0432\u00a0\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u043c \u0432\u0438\u0434\u0435, \u043d\u043e\u00a0\u0438\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0435\u0449\u0451 \u0438 <code>best::pretext<\/code>, \u043f\u0440\u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u00ab\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u00a0\u0432\u0441\u0451 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u00bb. \u041b\u0438\u0431\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043b\u0438\u0431\u043e \u043e\u043d \u0441\u0430\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u00ab\u0441\u0438\u043c\u0432\u043e\u043b\u044b\u2011\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u0438\u00bb \u043d\u0430\u00a0\u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0432\u00a0\u043a\u043e\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e <code>best::pretextbuf<\/code> \u043d\u0435\u0442; \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0447\u0442\u043e \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 <code>best::vec&lt;uint8_t&gt;<\/code>.<\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0432\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u00a0C++ \u0437\u0434\u0435\u0441\u044c <code>best::textbuf<\/code> \u043f\u043e\u0434\u00a0\u043a\u0430\u043f\u043e\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>best::vec<\/code> \u0438 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0434\u0451\u0448\u0435\u0432\u043e \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u0430\u043b\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 best::vec \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. <\/p>\n<p>best \u043f\u0440\u044f\u043c\u043e \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438: <code>best::utf8<\/code>, <code>best::utf16<\/code>, <code>best::utf32<\/code>, <code>best::wtf8<\/code>, <code>best::ascii<\/code> \u0438 <code>best::latin1<\/code>.<\/p>\n<h2>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u0412 <code>\/\/best\/text:format<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u00a0\u0441\u0442\u0438\u043b\u0435 <code>format!()<\/code> \u0434\u043b\u044f\u00a0Rust. \u0412\u043e\u0442 \u043a\u0430\u043a\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430:<\/p>\n<pre><code class=\"cpp\">auto str = best::format(\"my number: 0x{:08x}\", n);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043c\u043e\u0449\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 constexpr \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0440\u044f\u043c\u043e \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438! <\/p>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0441\u0435 \u0442\u0435\u00a0\u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0447\u0442\u043e\u00a0\u0438 \u043f\u0440\u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0Rust, \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f <code>{}<\/code>\u0438 <code>{:?}<\/code>. \u041d\u043e\u00a0\u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0430\u044f. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0431\u0443\u043a\u0432\u044b ASCII, \u0430\u00a0\u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0438\u043f\u043e\u0432 \u043c\u043e\u0436\u043d\u043e (\u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0443\u043a\u0432) \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0445\u0435\u043c\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 <code>x<\/code>, <code>X<\/code>, <code>b<\/code> \u0438 <code>o<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. <code>q<\/code> \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u00a0\u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u0433\u043b\u0438\u0444\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b; <code>p<\/code> \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439. <\/p>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 <code>{:!} <\/code>\u00ab\u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0432\u0435\u0440\u0445\u0443\u00bb; \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u00a0\u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0441\u043e\u0431\u044b\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439, \u043a\u0442\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439. \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f\u00a0\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u00ab\u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u043d\u0438\u0446\u0430\u0435\u043c\u043e\u0441\u0442\u0438\u00bb \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u00a0\u0432\u044b\u0432\u043e\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u043b\u0438\u00a0best::option.<\/p>\n<p>\u041b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0434\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 ADL (FTADLE) \u043f\u043e\u0434\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <code>BestFmt<\/code>. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043a\u0430\u043a\u00a0\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u0430\u0436\u0430<code>fmt::Debug<\/code> \u0432\u00a0Rust. \u041f\u0440\u0430\u0432\u0434\u0430, \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443\u00a0\u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <a href=\"https:\/\/pkg.go.dev\/fmt#Formatter\" rel=\"noopener nofollow\">fmt.Formatter<\/a> \u0432\u00a0Go.<\/p>\n<p>\u0422\u0438\u043f best::formatter, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 <code>BestFmt<\/code>, \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/std\/fmt\/struct.Formatter.html\" rel=\"noopener nofollow\">Formatter<\/a> \u0438\u0437\u00a0Rust. \u041e\u043d \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0443\u0436\u0438\u0442 \u0441\u0442\u043e\u043a\u043e\u043c, \u043d\u043e\u00a0\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (\u0447\u0435\u0440\u0435\u0437 <code>current_spec()<\/code>) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d \u0441\u043f\u0438\u0441\u043a\u0438 \u0441\u00a0\u043e\u0442\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u0438 \u0431\u043b\u043e\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430. <\/p>\n<p><code>BestFmtQuery<\/code>\u00a0\u2014 \u043f\u043e\u0445\u043e\u0436\u0438\u0439 FTADLE, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u043b\u044f\u00a0\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u043d\u0435\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>{:x}<\/code> \u043d\u0435\u00a0\u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <code>best::str<\/code>.<\/p>\n<p><code>best::format<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 (\u0438\u043b\u0438 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044f\u0435\u0442\u0441\u044f \u043a) <code>best::strbuf; best::println<\/code> \u0438 <code>best::eprintln<\/code> \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043b\u044f\u00a0\u0437\u0430\u043f\u0438\u0441\u0438 \u0432 <code>stdout<\/code> \u0438 <code>stderr<\/code>.<\/p>\n<h2>\u0420\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f<\/h2>\n<p>\u0412\u00a0\u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f\u00a0\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <code>\/\/best\/meta:reflect<\/code> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438. \u042d\u0442\u043e \u043d\u0435\u00a0\u0442\u0430\u043a\u0430\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f \u043a\u0430\u043a\u00a0\u0432\u00a0C++26, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e\u00a0\u2014 \u043a\u0430\u043a\u00a0\u043f\u0430\u043b\u0438\u0442\u044c \u0438\u0437\u00a0\u043f\u0443\u0448\u043a\u0438 \u043f\u043e\u00a0\u0432\u043e\u0440\u043e\u0431\u044c\u044f\u043c. \u041d\u0435\u0442, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f\u00a0\u0438\u043d\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0446\u0438\u0438 \u0447\u043b\u0435\u043d\u043e\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043b\u044f\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/aggregate_initialization.html\" rel=\"noopener nofollow\">\u0441\u0431\u043e\u0440\u043d\u044b\u0445<\/a> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041a\u043e\u0434 \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u044c\u044f\u0432\u043e\u043b\u044c\u0441\u043a\u0438 \u043f\u0440\u043e\u0441\u0442:<\/p>\n<pre><code class=\"cpp\">void BestFmt(auto&amp; fmt, const best::is_reflected_struct auto&amp; value) {  \/\/ \u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u0442\u0438\u043f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b  auto refl = best::reflect&lt;decltype(value)&gt;;  \/\/ \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \"\u0437\u0430\u043f\u0438\u0441\u0438\" (\u043f\u0430\u0440 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435).  auto rec = fmt.record(refl.name());  \/\/ \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435...  refl.each([&amp;](auto field) {    \/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u0432 \u0437\u0430\u043f\u0438\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f...    rec.field(      field.name(),   \/\/ ...\u0447\u044c\u0451 \u0438\u043c\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 field...      value-&gt;*field,  \/\/ ...\u0438 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.    );  });}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::reflect<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u043f\u043e\u043b\u044f\u043c (\u0438\u043b\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c \u0438\u0437\u00a0\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0442\u0438\u043f\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0435\u0431\u044f \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u043c \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f FTADLE <code>BestReflect<\/code>. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043b\u044f. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u043e\u0433\u043e FTADLE \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">friend constexpr auto BestReflect(auto&amp; mirror, MyStruct*) {  return mirror.infer();}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>best::mirror<\/code> \u0441\u043b\u0443\u0436\u0438\u0442 \u00ab\u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u043c \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0439\u00bb \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e\u043d\u043a\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u0438\u00a0\u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u042d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044f, \u043b\u0438\u0431\u043e \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044f\u0442\u044c <em>\u043c\u0435\u0442\u043a\u0438<\/em> \u043a\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u044f\u043c. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f\u00a0\u0438\u043d\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0446\u0438\u0438 \u0441\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>best::reflected_field::tags()<\/code>.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <code>best::reflected_type<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u0438 \u043f\u043e\u0438\u0441\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 (\u0438\u043b\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438\u0437\u00a0\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f); \u044d\u0442\u0438 \u043f\u043e\u043b\u044f <code>best::reflected_field<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u00a0\u043f\u043e\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0433\u043e \u0438\u043c\u044f) \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043c\u0443. \u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0442\u00a0\u0436\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441, \u0447\u0442\u043e\u00a0\u0438 \u043f\u0440\u0438\u00a0\u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a\u00a0\u0447\u043b\u0435\u043d\u0443 \u043f\u043e\u00a0\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044e: <code>value-&gt;*field<\/code>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u043e\u00a0\u0432\u0441\u0435\u0439 \u043f\u043e\u043b\u043d\u043e\u0442\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c <code>best::reflect<\/code> (\u0438 \u0444\u043e\u043a\u0443\u0441\u044b \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438), \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c\u00a0\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0435\u043b\u044b\u0439 \u043f\u043e\u0441\u0442, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u0437\u0434\u0435\u0441\u044c \u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u00a0\u0431\u0443\u0434\u0443.<\/p>\n<h2>\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p><code>best<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f\u00a0\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 <code>\/\/best\/test<\/code>\u00a0\u2014 \u043a\u0430\u043a\u00a0\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u0439 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435. \u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0435\u0441\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0443\u044e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e:<\/p>\n<pre><code class=\"cpp\">best::test MyTest = [](best::test&amp; t) {  \/\/ \u041a\u043e\u0434 \u0442\u0435\u0441\u0442\u0430};<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041e\u0447\u0435\u043d\u044c \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u043d\u0430\u00a0Go, \u0433\u0434\u0435 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u0441 <code>Test<\/code> \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>*testing.T<\/code>. \u0412\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 best::test&amp; \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u0441\u0442 \u043d\u0435\u00a0\u043f\u0440\u043e\u0439\u0434\u0435\u043d. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u043d\u043e\u0433\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0432 \u0432\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431\u00a0\u043e\u0442\u043b\u0430\u0434\u043a\u0435 (debuginfo), \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043c \u0438\u0437\u00a0\u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438\u043c\u044f MyTest \u0438 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c \u043a\u0430\u043a\u00a0\u0438\u043c\u0435\u043d\u0435\u043c \u0442\u0435\u0441\u0442\u0430. <\/p>\n<p>\u0412\u044b \u043d\u0435\u00a0\u043e\u0448\u0438\u0431\u043b\u0438\u0441\u044c, \u044d\u0442\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f\u00a0\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u00a0C++, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c <em>\u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0442 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432<\/em>!<\/p>\n<p>\u0422\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u043f\u043e\u0434 \/\/best\/cli \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f\u00a0\u0440\u0430\u0437\u0431\u043e\u0440\u0430 CLI, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u0432\u00a0\u0434\u0443\u0445\u0435 <a href=\"https:\/\/docs.rs\/clap\/latest\/clap\/_derive\/index.html\" rel=\"noopener nofollow\">#[derive(clap::Parser)]<\/a> \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a Rust. \u0412\u043e\u0442 \u043a\u0430\u043a\u00a0\u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u043f\u043e\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0444\u043b\u0430\u0433\u0430\u043c CLI. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>test.h<\/code>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u00a0\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u043b\u0430\u0433\u0438:<\/p>\n<pre><code class=\"cpp\">struct test::flags final {  best::vec&lt;best::strbuf&gt; skip;  best::vec&lt;best::strbuf&gt; filters;  constexpr friend auto BestReflect(auto&amp; m, flags*) {    return m.infer()      .with(best::cli::app{.about = \"a best unit test binary\"})      .with(&amp;flags::skip,            best::cli::flag{              .arg = \"FILTER\",              .help = \"Skip tests whose names contain FILTER\",            })      .with(&amp;flags::filters,            best::cli::positional{              .name = \"FILTERS\",              .help = \"Include only tests whose names contain FILTER\",            });  }};<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>best::mirror::with<\/code> \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0442\u0435\u0433\u0438, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435, \u043a\u0430\u043a\u00a0\u0438\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u00a0\u0432\u0438\u0434\u0435 \u0444\u043b\u0430\u0433\u043e\u0432 CLI. \u0411\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/mcy\/best\/blob\/main\/best\/cli\/toy_flags.h\" rel=\"noopener nofollow\">toy_flags.h<\/a>, \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 CLI. <\/p>\n<p><code>best::parse_flags&lt;MyFlags&gt;(...)<\/code> \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f\u00a0\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0441\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 <code>argv<\/code> \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0412 <code>best::cli<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u0430, \u043d\u043e\u00a0\u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0430\u00a0\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 <code>best::app<\/code>, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>main()<\/code>. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u00a0\u0436\u0435, \u043a\u0430\u043a\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u0441\u0442:<\/p>\n<pre><code class=\"cpp\">best::app MyApp = [](MyFlags&amp; flags) {  \/\/ \u0421\u0435\u0439\u0447\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0443\u0442\u043e, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435!};<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a \u043c\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c, \u0447\u0442\u043e\u00a0\u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0430\u0440\u0441\u0435\u0440 \u0444\u043b\u0430\u0433\u043e\u0432 \u0434\u043b\u044f <code>MyFlags<\/code>, \u0430\u00a0\u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0435\u043b\u043e \u043b\u044f\u043c\u0431\u0434\u0430\u2011\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041b\u044f\u043c\u0431\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043b\u0438\u0431\u043e <code>void<\/code>, \u043b\u0438\u0431\u043e <code>int<\/code> (\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u0434\u0430 \u0432\u044b\u0445\u043e\u0434\u0430) \u0438\u043b\u0438\u00a0\u0434\u0430\u0436\u0435 <code>best::result<\/code>, \u043a\u0430\u043a\u00a0\u0432\u00a0Rust. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 <code>best::app<\/code> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c <code>argv<\/code> \u0438\u0437\u00a0\u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. <\/p>\n<h2>\u0427\u0442\u043e\u00a0\u0434\u0430\u043b\u044c\u0448\u0435<\/h2>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u00a0\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 best \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c\u00a0\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0438 \u0430\u0442\u043e\u043c\u0438\u043a\u043e\u0432, \u043d\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a, \u043d\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u041f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c\u00a0\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 best::rc (\u0441 \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u043e\u043c \u0441\u0441\u044b\u043b\u043e\u043a) \u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u041e\u041a\u041c\u0414. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c\u00a0\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c API \u0434\u043b\u044f\u00a0\u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0438 \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, API \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0442\u0435\u043a\u0430.<\/p>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f\u00a0C++\u00a0\u2014 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u043d\u0435\u00a0\u0432\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u00a0\u0432\u00a0\u044f\u0437\u044b\u043a\u0435 C++ \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0438 \u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u044c \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438. \u041d\u043e\u00a0\u0442\u0430\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u043d\u043e\u0432\u044c \u043f\u0440\u043e\u0431\u0443\u0434\u0438\u043b\u0430 \u0432\u043e\u00a0\u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043a\u00a0C++!<\/p>\n<p>\u041d\u0435\u00a0\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e \u043d\u0430\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u043a\u0442\u043e\u2011\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, \u043d\u043e\u00a0\u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0437\u0434\u0435\u0441\u044c \u043e\u043f\u044b\u0442 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e\u00a0\u044f\u0437\u044b\u043a C++ \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435!<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1094622\/\">https:\/\/habr.com\/ru\/articles\/1094622\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041d\u0435\u00a0\u0441\u0435\u043a\u0440\u0435\u0442 (\u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043c\u0435\u043d\u044f \u0447\u0438\u0442\u0430\u0435\u0442), \u0447\u0442\u043e\u00a0\u043c\u043e\u0438 \u0432\u043a\u0443\u0441\u044b \u0432\u00a0\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a\u00a0\u0434\u043b\u044f\u00a0\u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f\u00a0\u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0430. \u0412 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u044b\u0445 Go, \u044f \u043f\u0438\u0448\u0443, \u0447\u0442\u043e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435\u00a0\u2014 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0442\u043e\u00a0\u0437\u0430\u0432\u0442\u0440\u0430\u043a\u0430\u0442\u044c \u043e\u0432\u0441\u044f\u043d\u043a\u043e\u0439 \u043d\u0430\u00a0\u0432\u043e\u0434\u0435. \u0427\u0442\u043e\u0431\u044b \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0430\u0440\u043a\u0443, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0438 \u0435\u0449\u0451 \u043e\u0431\u00a0\u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u00a0\u2014 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0442\u043e\u00a0\u0440\u0430\u0437\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0444\u0435 \u0441\u0430\u043c\u043e\u0433\u043e\u043d\u043e\u043c. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e\u00a0C++.\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u00a0\u0442\u0435\u0445 \u043c\u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0432\u0435\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0C++ \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0442\u043e \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u043b\u043e\u0445\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++. \u0421\u00a0\u0447\u0435\u0433\u043e\u00a0\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c?\u0425\u043e\u0442\u044f\u00a0\u0431\u044b \u0441\u00a0\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432\u00a0\u2014 \u043e\u043d\u0438 \u0443\u0436\u0430\u0441\u043d\u044b. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u0431\u00a0API \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0438 \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e \u0434\u0443\u0431\u043e\u043b\u043e\u043c\u044b, std::unordered_map \u041e\u0411\u042f\u0417\u0410\u0422\u0415\u041b\u042c\u041d\u041e \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u0443\u044e \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u00a0\u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0430\u00a0\u043d\u0435\u00a0\u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 std::map, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u0447\u0430\u0441\u0442\u043e \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0\u043a\u0440\u0430\u0441\u043d\u043e\u2011\u0447\u0451\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u041e\u043d\u0430 \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c b\u2011\u0434\u0435\u0440\u0435\u0432\u043e\u043c, \u0445\u043e\u0442\u044f, \u0438\u043c\u0435\u043d\u043d\u043e b\u2011\u0434\u0435\u0440\u0435\u0432\u043e \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u0443 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u00a0\u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u0434\u043b\u044f\u00a0\u043b\u044e\u0434\u0435\u0439.std::optional \u0432\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u2014 \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u0435\u043c\u043e\u0440\u0440\u043e\u0439, \u0442\u0430\u043c \u043a\u0443\u0434\u0430 \u043d\u0438 \u0441\u0442\u0443\u043f\u0438\u00a0\u2014 \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u0448\u044c \u0441\u0435\u0431\u0435 \u0432\u00a0\u043d\u043e\u0433\u0443. \u0427\u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 operator*. std::variant, \u043a\u0441\u0442\u0430\u0442\u0438, \u0442\u043e\u0436\u0435 \u0438\u0437\u0440\u044f\u0434\u043d\u043e \u043c\u0435\u043d\u044f \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439. \u0412 std::filesystem \u043f\u043e\u0432\u0441\u044e\u0434\u0443 \u043e\u0441\u0442\u0440\u044b\u0435 \u0443\u0433\u043b\u044b. \u041a\u0441\u0442\u0430\u0442\u0438, \u0430\u00a0\u0433\u0434\u0435 API \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432?\u0412\u0441\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435. std::hardware_destructive_interference_size \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0433\u00a0\u0431\u044b \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f std::cache_line. std::span::subspan \u043c\u043e\u0433\u00a0\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c operator[]. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u0435, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0432\u00a0\u043d\u0438\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441\u00a0\u043f\u0430\u0440\u0430\u043c\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u0413\u043e\u0441\u043f\u043e\u0434\u0438, \u043f\u0430\u0440\u043d\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b! \u0412\u00a0\u044f\u0437\u044b\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 std::ranges, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u0440\u044f\u0434\u043e\u043c \u043d\u0435\u00a0\u0441\u0442\u043e\u044f\u043b\u0438 \u0441 Iterator \u0438\u0437\u00a0Rust! \u041c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u0441\u0451 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u0438\u0442. \u0422\u0435, \u043a\u0442\u043e \u0440\u0443\u043b\u044f\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c C++, \u0432\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u043d\u0435\u043d\u0430\u0432\u0438\u0434\u044f\u0442 \u0441\u0432\u043e\u044e \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044e. \u041e\u043d\u0438 \u0445\u043e\u0442\u044f\u0442, \u0447\u0442\u043e\u0431\u044b \u0441\u00a0\u044f\u0437\u044b\u043a\u043e\u043c C++ \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412\u00a0\u043c\u043e\u0451\u043c \u043a\u0440\u0443\u0433\u0443 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u043a\u00a0\u0434\u0440\u0443\u0437\u044c\u044f\u043c\u0438, \u0442\u0430\u043a \u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438, \u043a\u0442\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a\u00a0\u2014 \u0432\u00a0\u0438\u0445 \u0447\u0438\u0441\u043b\u0435 \u0422\u0438\u0442\u0443\u0441 \u0423\u0438\u043d\u0442\u0435\u0440\u0441, \u0414\u0436\u0438\u043d\u0445\u0435\u0439\u0434 \u041c\u0435\u043d\u0435\u0439\u0434, \u041c\u044d\u0442\u0442 \u0424\u0430\u0443\u043b\u0437\u2011\u041a\u0443\u043b\u0443\u043a\u0443\u043d\u0434\u0438\u0441 \u0438 \u042d\u043d\u0434\u0438 \u0421\u043e\u0444\u0444\u0435\u0440. \u0423\u00a0\u043d\u0438\u0445 \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.\u0414\u0443\u043c\u0430\u044e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b, \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0439 \u0444\u043e\u0440\u043c\u0435 \u044f\u0437\u044b\u043a C++ \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c. \u041d\u043e\u00a0\u0434\u0435\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0443\u0437\u043a\u043e\u043b\u043e\u0431\u043e\u0441\u0442\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043b\u0438\u043a\u0438, \u0436\u0438\u0432\u0443\u0449\u0435\u0439 \u0432\u00a0\u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0420\u0435\u0434\u043c\u043e\u043d\u0434\u0430. \u0427\u0442\u043e, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u00a0\u044f\u0437\u044b\u043a\u043e\u043c \u0447\u0442\u043e\u00a0\u0445\u043e\u0442\u0438\u043c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u00a0C++ \u0437\u0430\u043b\u043e\u0436\u0435\u043d \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u043b\u044f\u00a0\u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438, \u043e\u0432\u043b\u0430\u0434\u0435\u0432 \u0438\u043c, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e\u00a0\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a. \u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 \u044f \u0437\u0430\u0431\u0430\u0432\u043b\u044f\u044e\u0441\u044c \u0441\u00a0\u0431\u0435\u0437\u0443\u043c\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u043a\u0430\u043a\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u00a0\u0431\u044b \u044f\u0437\u044b\u043a C++, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b\u0438 \u0435\u0433\u043e \u0441\u00a0\u043d\u0443\u043b\u044f? \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u0437\u0430\u00a0\u043e\u0441\u043d\u043e\u0432\u0443 \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b C++20\u00a0\u0438 \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435. \u0427\u0442\u043e\u00a0\u0443\u00a0\u043d\u0430\u0441 \u043c\u043e\u0433\u043b\u043e\u00a0\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043b\u044e\u0441\u043e\u0432? \u041d\u0430\u0447\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u043d\u0430\u0447\u0430\u043b\u0430\u0422\u0438\u0442\u0443\u0441 \u043d\u0430\u0447\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 Abseil, \u0435\u0449\u0451 \u0431\u0443\u0434\u0443\u0447\u0438 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u043c Google. \u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f absl, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u00aba better standard library\u00bb (\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430). \u041d\u0430\u00a0\u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, Abseil \u0432\u0430\u0436\u043d\u0430 \u0441\u0430\u043c\u0430 \u043f\u043e\u00a0\u0441\u0435\u0431\u0435 \u043a\u0430\u043a\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0\u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0435\u0451, \u0432\u00a0\u0442\u043e\u00a0\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043d\u0430\u00a0\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u0430\u043a\u0438\u043c \u043d\u0435\u00a0\u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u043a\u0443\u0441\u0442\u0430\u0440\u043d\u0430\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0434\u043e\u0441\u0442\u0438\u0433 \u0422\u0438\u0442\u0443\u0441 \u0432\u00a0\u0441\u0432\u043e\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435\u00a0\u2014 \u0432\u0435\u0434\u044c \u043f\u043e\u00a0\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u00a0\u043d\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Boost \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0441\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u0430 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442.\u042f \u0445\u043e\u0447\u0443 \u043d\u0435\u00a0\u0441\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, \u0430\u00a0\u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0432\u0437\u043e\u0439\u0442\u0438 \u0435\u0451. \u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0444\u043e\u0440\u043c\u0430\u043d\u0441\u0430 \u0445\u043e\u0447\u0443 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430\u00a0\u0431\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++, \u0435\u0441\u043b\u0438\u00a0\u0431\u044b \u0435\u0451 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0445\u043e\u0442\u044f\u00a0\u0431\u044b \u0432 2025\u00a0\u0433\u043e\u0434\u0443.\u0412\u00a0\u0442\u0430\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u044f \u0445\u043e\u0447\u0443 \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439. \u041d\u0435\u0442, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++ \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0439 \u0438\u043f\u043e\u0441\u0442\u0430\u0441\u0438. \u0421\u0430\u043c\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u00a0C++. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u043b\u044f\u00a0\u043d\u0435\u0451 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d best.\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u044f \u043d\u0435\u00a0\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u0440\u044f\u043c\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0438 \u0438\u0437\u00a0C++, \u043d\u0438 \u0438\u0437\u00a0Abseil, \u043d\u0438 \u0438\u0437\u00a0Rust, \u043d\u0438 \u0438\u0437\u00a0Go. \u041d\u043e\u00a0\u0432\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u00a0\u044d\u0442\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432 \u0435\u0441\u0442\u044c \u043f\u043e\u2011\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u0438 \u043b\u0443\u0447\u0448\u0430\u044f \u0438\u0437\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0433\u0434\u0435\u2011\u0442\u043e \u043d\u0430\u00a0\u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438.\u0412\u00a0\u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0430 \u044f \u043e\u043f\u0438\u0448\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0441\u0440\u0435\u0437 \u0442\u043e\u0433\u043e, \u0447\u0435\u0433\u043e \u043c\u043d\u0435 \u0443\u0436\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 best, \u0438 \u0434\u043e\u00a0\u0447\u0435\u0433\u043e \u044f \u0445\u043e\u0447\u0443 \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442. \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c.\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b\u0418\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442\u00a0\u0432\u0441\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443, \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u043e\u0442 &lt;type_traits&gt;. \u042d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e: \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u0432 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 C++14, \u0430\u00a0\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u00a0\u2014 \u0432\u00a0C++17. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u00a0\u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438\u00a0\u0431\u044b \u0431\u044b\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a best::is_same_v. \u0414\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u043d\u0438\u0445 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u00a0\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 &lt;concepts&gt;.\u042f\u00a0\u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u0430\u0436\u0438 \u0442\u0438\u043f\u043e\u0432, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0432 \u0438\u0445 \u043f\u043e\u00a0\u0440\u0430\u0437\u043d\u044b\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043a\u0430\u0442\u044c. \u0412\u0441\u0435 \u043e\u043d\u0438 \u0443\u00a0\u043c\u0435\u043d\u044f \u0436\u0438\u0432\u0443\u0442 \u043f\u043e\u0434 \/\/best\/meta\/traits \u0438 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043b\u0438\u0441\u0442\u044c\u044f \u0433\u0440\u0430\u0444\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u00a0arrays.h \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432\u0441\u0435 \u0442\u0438\u043f\u0430\u0436\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, best::is_array, best::un_array (\u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430) \u0438 best::as_array, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u00a0\u0442\u0438\u043f\u0443 T, \u0442\u0430\u043a, \u0447\u0442\u043e best::as_array&lt;T, 0&gt; \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439.\u0412 types.h \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:best::id \u0438 best::val, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f\u00a0\u0442\u0438\u043f\u043e\u2011 \u0438 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u2011\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0436\u0435\u0439.best::same&lt;&#8230;&gt;, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439, \u0440\u0430\u0432\u043d\u044b\u00a0\u043b\u0438 \u0432\u0441\u0435 \u0442\u0438\u043f\u044b, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u00a0\u0446\u0435\u043b\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 (pack). best::lie, \u043d\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0438\u044f std::declval. best::select, \u043d\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0438\u044f std::conditional_t. best::abridge, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u00ab\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f\u00bb, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c\u0438. funcs.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 best::tame, \u0441\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0441 \u043e\u043c\u0435\u0440\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. quals.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 best::qualifies_to\u00a0\u2014 \u043e\u043d\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0\u043b\u0438 \u043d\u0435\u043a\u0438\u0439 \u0442\u0438\u043f \u00ab\u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u043c\u00bb, \u0447\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439. empty.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u0438\u043f, \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441 void.\u041f\u043e\u0432\u0435\u0440\u0445 \u0442\u0438\u043f\u0430\u0436\u0435\u0439 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f\u00a0\u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \/\/best\/meta, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0432\u00a0\u0444\u0430\u0439\u043b\u0435 init.h \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430\u0436\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c T&amp; \u0438\u0437 T&amp;&amp;,). tlist.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0430\u043c\u0443\u044e \u043e\u0431\u0449\u0443\u044e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044e \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043d\u0430\u00a0\u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0438\u043f\u043e\u0432; \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u0430\u043a\u00a0\u0442\u0438\u043f.\u0414\u0440\u0443\u0433\u0438\u043c \u00ab\u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0441\u0442\u043e\u043b\u043f\u043e\u043c\u00bb \u0441\u043b\u0443\u0436\u0438\u0442 \/\/best\/base, \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u0438\u043d\u0442\u0440\u0438\u043d\u0441\u0438\u043a\u0430\u043c, \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c \u0438 \u00ab\u0442\u0435\u0433\u2011\u0442\u0438\u043f\u0430\u043c\u00bb, \u0442\u0430\u043a\u0438\u043c, \u043a\u0430\u043a\u00a0\u043d\u0430\u0448\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 std::in_place. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, macro.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 BEST_STRINGIFY(), port.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 BEST_HAS_INCLUDE(), \u0430 hint.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 best::unreachable().guard.h \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0448\u0443 \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ?, \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432\u00a0Rust \u0438 \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0Clang \u043d\u0435\u00a0\u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438\u2011\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 (statement expressions).\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u043d\u0443\u0442\u0440\u0438 \/\/best\/container \u043d\u0430\u0445\u043e\u0434\u0438\u043c best::object, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f C++ \u0432\u00a0\u043e\u0431\u044a\u0435\u043a\u0442 (\u0442.e., \u0432\u00a0\u0442\u0438\u043f, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443). \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0431\u0449\u0435\u043c \u0432\u0438\u0434\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0442\u0438\u043f\u043e\u043c, \u043d\u0435\u00a0\u0441\u043f\u043e\u0442\u044b\u043a\u0430\u044f\u0441\u044c \u043e\u00a0\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u0443\u044e \u0434\u043b\u044f\u00a0\u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, best::object&lt;T&amp;&gt; \u0432\u00a0\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c. ADT\u2011\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b\u0411\u0430\u0437\u0438\u0440\u0443\u044f\u0441\u044c \u043d\u0430\u00a0\u0432\u0441\u0451\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b best: best::row \u0438 best::choice, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0442 std::tuple \u0438 std::variant.best::row&lt;A, B, C&gt;\u00a0\u2014 \u044d\u0442\u043e \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0432\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 best::object. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, best::row&lt;int&amp;&gt; \u043f\u0440\u0438\u0441\u0443\u0449\u0430 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f, \u0430\u00a0\u043d\u0435\u00a0\u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f.\u041a\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 at(): my_row.at&lt;0&gt;(), \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f, \u0447\u0442\u043e\u00a0\u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c my_row.first(). \u041f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 my_row.object&lt;0&gt;() \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 best::object, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:int x = 0, y = 0;best::row&lt;int&amp;&gt; a{x};a.at&lt;0&gt;() = 42;     \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 x.a.object&lt;0&gt;() = y;  \/\/ \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 .0 \u043a y.a.at&lt;0&gt;() = 2*x;    \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 y.\u0415\u0449\u0451 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b second() \u0438 last(), \u0434\u043b\u044f\u00a0\u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u00a0\u0435\u0449\u0451 \u0434\u0432\u0443\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c, \u043a\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u043a\u00a0\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c.best::row \u043d\u0430\u0437\u0432\u0430\u043d \u0442\u0430\u043a \u0441\u00a0\u043e\u0433\u043b\u044f\u0434\u043a\u043e\u0439 \u043d\u0430\u00a0\u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445; \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043b\u044f\u00a0\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437\u00a0\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u2014 \u0430 std::tuple \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u0435\u0442.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043d\u043e\u00a0\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u043c \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 best::bounds: a.at&lt;best::bounds{.start = 1, .end = 10}&gt;()! \u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0\u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u0443\u0442\u0430\u0446\u0438\u0438):a + b \u0441\u0446\u0435\u043f\u043b\u044f\u0435\u0442 \u043a\u043e\u0440\u0442\u0435\u0436\u0438, \u043a\u043e\u043f\u0438\u0440\u0443\u044f \u0438\u043b\u0438\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b\u00a0\u2014 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f (\u0442\u0430\u043a, a + BEST_MOVE(b) \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0441\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 b).a.push(x) \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043f\u0438\u044e a \u0441\u00a0\u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u043c \u043a\u00a0\u043d\u0435\u0439 x, \u0430 a.insert&lt;n&gt;(x)\u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443.a.update&lt;n&gt;(x)\u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 n\u2011\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 x, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0442\u0438\u043f\u0443, \u043d\u0435\u0436\u0435\u043b\u0438 x.a.remove&lt;n&gt;() \u0443\u0434\u0430\u043b\u044f\u0435\u0442 n\u2011\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a a.erase&lt;&#8230;&gt;() \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d.a.splice&lt;best::bounds{&#8230;}&gt;(&#8230;) \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u00a0\u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0447\u0442\u043e\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0437\u0430\u043c\u0435\u043d\u044b\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. gather() \u0438 scatter()\u00a0\u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043d\u0435\u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0412\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, std::apply \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043c\u0435\u0442\u043e\u0434: a.apply(f) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b a \u043a\u0430\u043a\u00a0\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b. a.each(f) \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u043e, \u0432\u00a0\u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0443\u043d\u0430\u0440\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b f \u0434\u043e n, \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u0438\u0447\u0451\u043c, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, best::row &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-498741","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498741","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=498741"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498741\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=498741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=498741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=498741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}