Modern-CPP-Programming/htmls/21.Advanced_Topics_II.html
2025-01-30 14:34:16 -08:00

1651 lines
656 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="generator" content="pdf2htmlEX"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<style type="text/css">
/*!
* Base CSS for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
<style type="text/css">
/*!
* Fancy styles for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
<style type="text/css">
.ff0{font-family:sans-serif;visibility:hidden;}
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height:0.730000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff3;src:url('data:application/font-woff;base64,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')format("woff");}.ff3{font-family:ff3;line-height:0.704000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff4;src:url('data:application/font-woff;base64,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')format("woff");}.ff4{font-family:ff4;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff5;src:url('data:application/font-woff;base64,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')format("woff");}.ff5{font-family:ff5;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff6;src:url('data:application/font-woff;base64,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')format("woff");}.ff6{font-family:ff6;line-height:0.915000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff7;src:url('data:application/font-woff;base64,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')format("woff");}.ff7{font-family:ff7;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff8;src:url('data:application/font-woff;base64,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')format("woff");}.ff8{font-family:ff8;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff9;src:url('data:application/font-woff;base64,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')format("woff");}.ff9{font-family:ff9;line-height:0.956000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffa;src:url('data:application/font-woff;base64,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')format("woff");}.ffa{font-family:ffa;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffb;src:url('data:application/font-woff;base64,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')format("woff");}.ffb{font-family:ffb;line-height:0.956000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffc;src:url('data:application/font-woff;base64,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')format("woff");}.ffc{font-family:ffc;line-height:0.716000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffd;src:url('data:application/font-woff;base64,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')format("woff");}.ffd{font-family:ffd;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffe;src:url('data:application/font-woff;base64,d09GRgABAAAAABroAA4AAAAAKZAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAazAAAABoAAAAcoqQZTEdERUYAABqwAAAAHAAAAB4AJwBQT1MvMgAAAbgAAABEAAAAVlWZ/qpjbWFwAAACgAAAAO8AAAG6nJCkK2N2dCAAAANwAAAABAAAAAQAIQJ5Z2FzcAAAGqgAAAAIAAAACP//AANnbHlmAAAEDAAAFGMAACDgxCEScmhlYWQAAAFEAAAANAAAADYozJKMaGhlYQAAAXgAAAAfAAAAJATOASFobXR4AAAB/AAAAIEAAACcDW4HLmxvY2EAAAN0AAAAlgAAAJYamRJ6bWF4cAAAAZgAAAAfAAAAIACPAIBuYW1lAAAYcAAAAaoAAAL9QeyP+3Bvc3QAABocAAAAiwAAALYHnweTeJxjYGRgYGBiZIv2+ro+nt/mK4M88wugCMPjg8szYPT/P/+lmSSZtgG5HAxMIFEAj9wOVXicY2BkYGDa9l8aSPL+//P/C5MkA1AEBbAAAJONBfEAeJxjYGRgYPBi8GdgZgABJiBmZACJOTDogQQAEukBEAB4nGNgZOJlnMDAysDA1MW0h4GBoQdCMz5gMGRkAooysHIygEEDUJABCQSkuaYAKQUFYaZt/6WBKrcxPGWAqgEAwmMKj3icJY7BCoIAEEQf0lEhEbVMIUHEokOI0eq5Q1702k926yP6AM99iVCD7TK7s8POso5HjsLx/mDiyYMbJS+MNx01DSeypV6kmHJHTEVAQkrEyB5fzDSb5kZ9pZ2AMx8O0mpcegquHHXJZSCk+85irVDJf2crtmEtX6KfWuwHMIcQogAAAHiclY/ZSkJhFIW/czKbbLTRrI422WyWmmaWDabQbRCIRJfRI/QiPUiv0UQUjRD0IKvfo3ThTblg770WfBdrA01UJ4hFRdcmWW72cGVuGMc4mxBR4iRJkyFLniLHlChzyjmXjl8yrEOEmGFSLpOjwBEnLnPGRYXRtz71oXe96VUvetaTHvWge93pVjdfiVqHP2R5+QUt2yy7HjAveaq22dvS2tbe4eukq7unlz78/QwwCEPDI4HRIGPjMOGEwpNT0zOzEZibX1hkiWVWoquxtfV4IslGKr2Z2cpu7+R29/YP8oeF/3RsVMUG+R+xvzXSAAAhAnkAAAAqACoAKgAqAFYAhgC0APwBGgE8AU4BZAGEAagB6AI4AnYCuALyAzYDXAOCA6gD7AQoBGYEkATcBSAFdgWYBcoGLgZ8BsIG8AdOB6oICAhECHYIwgkGCUIJZgmKCZwJ5AoeClIKjArCCv4LbAumC9IMHgxCDKgM4A0CDT4NgA28DhYOVg6SDtAPNg9+D9YQFhBeEHAAAHicjVl5kBvVme/XLalHR19qSa3W0RpJo6PnkGZ0zmXNeDw38XjG4zG+ZmziNWCwTYgxxMYGjA3xJhU7QLILhCKQpHJUiiQGbLP8QW3YqoWCKjYLjuMkm6yBkEB2NwEK2A2xNfu91y1pxjipTJVar19r3vuO3/t9R1M0FaUo1Eo/TDEUS2VOIirb/yRrof4nd9Jm/Y/+JxkahtRJBk9b8fSTrA1d7H8S4fm8FJVSeSkeRfa3X3iBfvjStVF6A0XR1FlYs5veQ0mUCiOPzcvyKB7L0oUKymlI9NhiyUIph7qtFpoLpBDDKrIoK+HWcLiVLmp7PE9EpMD+3/tDVmvo0sd4NkzBH6KeWPwBOkWfpiIUZfXY4rFkKlksVJh8zuf18Ijlaa/Hp2g0OsVLnq2JmbYVw3mHxNtYx8BMaPZqZ5OtZJdXF245MX50w5Am21mnlW07sLt7/mRfk9UJ62+A9bfB+iEsNc/ABsVCuYKKhQyNdyrBRooPbSPrioKyZdrZvKZHFES8GcqZqwpC5amNzcOf3p50CGQ7Q/ZhahN6kbZTXRSVwLKnkimQOgYbsHCpoAFkbhFB8J3zetgyXASk0bDlizLvCM7ZmSHmYNrO2nft9su8nd9F7tVdbDnj5M+5vGLemlrb2ro2NR6181ZrXx8nu7z2gdqcW+izhPxNrCFPkppBv6VlSoY7TxsCUVaAjwp9oG0ujPLot9njo8ez+ILmRk9ksyfIxfjfpxf3oU3UIcpj6oLNVCobA2wktGl73OUJ9QkOR6AlFo51qeNbPC5Pk6fCxENqohuv0Y0EdBbNUVgcTzwaK+Sj6Gy2+nw2iyqw4yj+zYtwGYF9nI19yPIjLUE1gT8Vf7IlCB/4be/iE+hV8J2AfcciUypEfv9qU/U05xM8TWgSf9EP2NyXpkJe3uamnwx5sU40lVv8EP0CMOukvASz9d3YQjJmA2DlSugXd6yfuxN/RtZ/dv26W9ehrntPnzoGn0M3fuGLN+x55BGQowD/fR7WaTdkjoJzB1CpWEjGYzYWPN5YGFwMoM2D7/ENOi/6q0/owq/2zg/pK518UBLDN61fOLzb/w/+P9CipDh1vxThuWe3XT0w1hp3ej2qog7tuHHDddf4DnrcAu/1EN+0gx4XYP+eJTYje2mwDZajDcUy4OQSeMwQi0jVEMoGv0QX9m9duCOQVF3S+vTKtTMjGRcnqNn+aOuq/HTEHoyFdmyc3dmm5ys/mPjMzJDiD7hlVyR4VVfnalrgPQ6GCcaKsWzE7vaofqU4ONvbuiagzGE7w1FGf6RvolJUK5YQkJcHTvDCgBwDwJ/hORmPQR4JP05JDPpjeqoCUqSfTgucq3LRL9p/Y+flkCpOwewPfv2Ctgu21jReoHeJfh+HrhVsolp9jBYkNF/9JrFNAWxznt5OZZfjCYzjM2wDxoBpMI8ED6KmXF6CofN3L8zeHBalINe8YXDzSO+6VpdbEGjRjzgs1bulobk9z83eumkg4PN7ZW5gpq84lxMEjkMOv4Qley78uYZ/9sL5wyhjeQuLJQHV6XLUg2kyuQIRSCh4f3SBFZTMys4W4KO41Hr1iur/ESzQohiwoUnYmR52OHiluH3XQzMeT7Zz95f+cSUBQyvH8yItEGwXYc+fASaaqYyJ7QxdgwXWvHF0NRrgnsJYBcTDE/SzB6/rGAg6AQp2X/vYzqbBudm9d6xPjlQSU6IaK/asv6qvfzXqPvG0r0UTfGrALTmlwwu9t85tuEVbdac9n420TQ/0zg4TOch5Rj+EM6YsP2PSFU937YM+Yx7z6lON894NDHKWbq9zUCqRLJQTpjs55ENnfZxDrD7l9qEJ0cH5/NXXUcS/WZQd/861CP/mgIgjnDolEFwsWYvysFaTOzqQIZFihbWqZ8giKFJ93Y8XRqvR8JJlZLwu0TEIC74H+NYNBjBPGzg0FWcJoHhEoF4u5eUKDTOKnFN8KSdC77Vdy/GCIPuUbyg+WRB47to2yZbYbxHFFkmw7E/YpO8NDWkazfMCT19/PQ1fPK157DTtcksM43Zf+pBhf4h6q/8K0Rxb+A3Auh8ivE5sRLbtQ1KcfNWOegozApzBktscoDcW1nyU1oNBPf3G1EJfV9/oplzPoetWDnp7e75wZ/93Bq/TIuidiLa1PzMh8ev/K7bipeHqf6771BtGbEgD1n4DWGtbdsaUCl2ErzAiEM+gVAbVMQaWyKHf7JvbfuLEpyd6bDbGJWq0JPIiQzvGsyM33jjautZKN8e/O7r79OfvPd3p5GxI0r8I+HY6XH3DD+za/UDPyjC2PcQy9Bbo7CZe+KTGLFZRwrB+6/Ztr+i6z6frr2y7fWTTmm3b1mxCHQdPYtW0yD8d2vZQVbmP6BOAy0ewZk+Dz80VgSB8pkJwZuNek8lrU8W4N1qskftHQO77dF3TdB3tUwVQT3F+eIQRjKPsdx5BTjIHHG9YV/JPgIJeT/FlVea8nnm48cVfHyFzRC6co/we5MqTXOUvy7CEXZfI7YX/xft9fKwhw7ECJrKHdT0aBSkPqQJ6zxDh3BIRzhGSJVaS/FgOn2mfVUvQjkn8clonWxNON1k1X4ybPzZnCNOjj9K3YTHUsyr+ug2Tvari67JpMsZDOA4g0Btv1LgfBIMrvnvpJXzFn6pCG+d8DVyeA1kVLOtlrjQlQM/p1Td1fdcuMEGYfIO2GvZIBNaBNZphjbdhjXgDD8vVMxaqe/5t8PwxLH8iga/f0PXu9+qurguMFx/heQ47F0HeTKE/wx7jpk3JYlKcp1kjccwwqbi01Lx5qWZKxa3kSwOoQhNJAAT4d+jP6bVpwe1B1q52mvPJTqsXKQHVgiBvMJ7gQXfKMc8i1rPKxno93easpmlANuhX/oeOWHyCrUKPr1krVuPAPcaDd/DIX30nGut/SeSceA7MzVN1jL4LepQxRsEqJPKgFBOX6uAwxJbqUPApcn4pVNC7aVVSRcFtewYR199Qd316WFGaYBab9QYSCbUqE+QZUUIfVBM154OEcOWUqgv90oCGke91A0+dBZ4KUZ3kBFlABEuhYgHJbGzB4CcWGEoheVO5hM5a3EqhL5fvLShuCx735pNdmaDfaadHXM5S/2DR7nTZC4Mri01O1DU1P9Wi2mxqy9T8I/NrYMi4pIQ+NtV1LJtSQ22Zu4/nU82xthKRBXPMBcLVzTgC2QgPLz+02DQ1gr6wc90hIJLDBp9cmE1MDN1wwxD68P49z0Q0gz7e2vKpD2p67iN6JvEJRSTlhCKGLJ7FWfJypes695FyBO8aATChszY2Eg3aIs32YNMKZ8cVjWBvKt6bczjsTZ2DzRlLs1NoYjt5nkddN5dW9HN5e4WWXfvQJ03ScyDfFW1u67znQL49uZG1yVbn1Q7/DSC7b/FD2gF26YfqyYzyGCYAoeQn88YGakhkI0pqdD6H4w5tmo52dLQWA5yNtjubu6YuZ5iTc7vTHXHejqwuh4yi8UfHB8fHB+dbhjO+ru6AEnCEzi2nmR2rEqvVUFQZCwSifAdIs3boXCPP3GNwIpYak7GZ1kHAB9FIuplFJBEn0bEeG1MZixEZIwj/FJ3fOXv9ClYQcEgURBox7Zmx7qGb9vaP7JyZK1ttghM/0SyM1RMoRAvDmdjMYDHc+e3RGzMBj34USNvlcvaFIsNtG/1BaUNh6NNZt8iRByHJ3ab6+tKxnMMt+EKFerx7H2zetjSufPK8euu5asmIJ+8TUjtKYsgT+FK4h8yIKvp8I5RgKq6dyyKZmlBFCCSIsoCvm2DfljpXQPiqQZ9wKkkW6lN0k67d9OBN5jmY6GifJEN6JFL99uaDBzejTfgsVL9/1bq5STQX0bBuQZOPepbyaopdjiM5Vd8UVFTKNWbCP2FlOH7v6tenBUHYvkUQRTzkXL57PqfoeMjzq8cEUUhfD7nFzV9S4HximDz/fB02Ta9HyOD++/FURLtQ/V+QC+ctfwK5ugzdGe9l5i4y8YYUIJSvIRUw5J/S3geWRMWvePEXFlHc6tgpCjA2yfGVMzXjnwH7YZGArV9I/DemcKBFRJjwdZAjVYttGQQldHS5rzVcXjcym9chvj0GnnSgiWq15vEpPFE9g+RapKPFZgG9Vfc4vq0Gx41sBlG/htr9TajdFdzXAa2TuP66LC94M31KFUT/Kazcgw/CtQg5En3GqK0u3Uzk12GdTG0d25Wiixdllq6B12w1lqBP4KuR03QvbkRnF7+OexOWy3sT1+DWBOkXfEyz6BkqQeWwtcjRNdPdMikkeeQ1crACScgAvKkizGEUlys0zQqSe07p3TC5+Zt/P9zv4wUbCgly4L7t272p9PduPNjbUWxxu5kIuKg5OV0aXU3n8whZbKrX75tYWHG+aWIdk0tobVKTImJ5XIsfk7wkSKVrrANCkVq2Fj/CyOxnAMEA25D67u3bZ4dy4A6J7kjrE6pQmpjeO7K6nJ3sL5bnzi/clRcB1DyHLuF873TX4S1DC8PtEx2bt2A7TcCer4INWogFaKIspjLS5UgV4jHSkcP6AlbQq2J8snP+TrWwsOKrAbkN9WdHovz84FjIyvPx3fZom3Zkc8vEWPuEV+2yt3R3+Ybn+/kmrFsL2JoC3cK1ngFs1CgtivWCRsI2LjSqV5rSJ0Ku0vj0LQdmh/KGgh3ph4ey5bnVpeJIJOLRug9vWbir41GsXZW5Z6xteMvI0MJm2LMMuv0EdAsZmR7RzuwWwDiKswKilpkpoJ94UpOZbffesXF+h41zOqrnXFv7pgJYtTHbaLYw7dztjOuhI88c2b+ZE1lUmQTdPjvaO1EGO4JW6BS9E1eMULVgn4HlwijfOADeZelqnxE20Klgs5eVlITnAMbygR26Xn1P13fsSOt/Nz+4je7w+L1uC8PFg1mSBr+Mk1hU1CLFyhhgmKHCi0F0CT0LNcQANVWryFO1NlXK5sWRyoezSiwI6RGVzQ82fANNhrnlQoY2sybcLbukCk6/JaoGto0UEzbkdHmbvKObS/HYseePTSqeZphuz/YlWp7uTqd68GdXbDyX6Wl269fefy066vGKboZva1+1oAqcDyrdsDzQPLBudnBNR0RPhfXSyq1aPHo03d/XCp/qv2hJgbG4Au2xYhFj04WBA5jpqHM9tpoB/SslV+Rw4Ec0lX5Ihw2SmTXtevrrab3dAE5x6u52TOiRN7P66PDJSL0Kerb45beNXAvb8AV6nvLiLlfiMpcZ+KRrze8X9OrPdX3/zbp+XBV26sdJ9xsvj4q4+queoRmz841IR/Ii6NK7PG5dHiaW8pxUXlaQsArA5aJ+a1qQfbdNd5FCD1+6yHClKnyDVCdQ/MVv/2pEN7L+r03OLM+iQazHHjTKlb3P454ryPXaleqpRucOvZaunknrh+9O64+qwt2kYqsZrsoYddniRTCeBZ3C9mvoV3PWsjrnipNSIxgqJi41mvyGtuhX6aLAueVol08Wl99s0EXZhwfNLo5HqWxRSVQiad4CU0bcfifTMjHwFCl1lt/hwqdIoibPtxQK0bImvl+reQjuQJf2vxF33r8Ku5DrSrCDIyyHCOpoqgd46jXgqSbKTWoHo+GrNJrWr+3/7v793y3M7JmZ/sw0Kj57+K6F+SM/X7Vx46qR7dsN3LoWY+htkDlS61rHUlcsQLx/IX4sETjAfyKCvIJlpmUt4laXxQ/QeDFGq7BvDHdkrUvynQa5k3hiYolZxu1q+jsEweXp2f13rZ/MI5bnFCfG86Oriis2znb3TP4zwe7P+g9vmT9cdguS1eu59BotoFtSpY3zw6vmN5v1/O9AhtY6/9U8RfKfy84VYQmNRr9TJbcfzW29CSj3z1iMmRl83aMKY9vDuptFt8n+gPvm1YcixvEpGscnNsN5ZQMn4+C3l8FvQyS6MEb2YNYItQIhQ0M1YLzhUpZ1zwwzRJAPvWxX9dGOqYJLxWWAm7OEtw8O+rORYIteiaqsPzXeOdBu85sNNWRbWFm5ZvjxQ2JzIuROJvVrIAXjxI1pTQ5KrMXGyn49wAVjAbfXq+Nmk9Pl7I4prVAhYZlVkPnHdCvuIicw0vAbIwPfZtepRkhG5VUxHwAL/HjhwPSGtH41yQe/hU31LYaLBcXmKANVjUTfURldueoDLbKWpIRrsbX+wMthwR4POXmO58yzhfMA9MM6p2cIUopLKMfYl64JZnIupAGwZW7kuMHkEBFDQjSt1hKCSIQWhOTnEEVI6X1R8jlYub35p+T2DOzrX7yIPoB9dTM/x8kA6WMsb2kF0ZKOFvogre21egRQSLbt1TC77sN6h3bvDuFvfIO+rFW/D0UdLYpoXa1vVX0ODRm0S3QWYe+LsPeIWY+RzSHpSMVt5K0qYIQxW8xkX9JflvMVVDZeVyp5GUtV76dcFCS5n7F4JM1lTQIgFN4dFtx2hu6XJdxz3ot70DzXVUCMzjjDqsT7rSjXZczih+g+3OP5Ec85JefRWOvaTh+Uy040bbSjaSEET8/x99l8/ty6MGolE4QczfoLdCn/pfqrD5X/WvWlkOprXxpS543rPRIYUdfTB29N63hOlD41KZlzn70rbcaw228njB15/CuQ+8D9jh34PqJ95XFc6y6GiF8rNb9aGu+E2FIZv5QtfMLL2KSlgctd/TULG4rkQy1Zv0f2W/Nhm2xjLccjdber8zJUf+7xZb7vcbrzsXBX1OP3yz6m7Cx7fYwD7agh4d0CGyv8dAkW8Lv6X4K8JAtmo+Z7PBS/vEDD/Y8lJdovfdV7AIasgLr/VKvQ1pGJ6ouIM0q0uA1AyLkElA6QI5jBRRqeqJ5Pmk1nBLHmCYj3p3HP2Wo2K+CoAWMSm4G9QAIMOyIBfpcWRpBMAm1ptJJDrwGANpX9KkN/PuZuGkuqTuT5EQDK3XRAZujuXqvS3xkrgO4a1xr0fbtojQBlOdXIpinbDjCCyKebVh7NRZsHHxclvwv9Le+Q/x/TYJBvAHicnVJBTutADH0T2gokQOzYsPASJBKlKV3AggUIkCpSUEtRt1OYtlFLBqVFVU/BRRAn+Gf5V+AKvE4GFv27nyj2s/3ssT0BsItPKJTP4y9W2FT7HgeoqcjjDRyrd48r2FN/Pa5iN9jxuIa94JxMVdmi9eGyVliRX/U4wLYSjzfQV02PKxD1x+MqDtSXxzVIcIBLWLxiiQIZRhhjDkGCmG8DId8Sn9I7IEtwgYiyBY0nTJi7wIw6o08jx7OLRUgdq+3iJXPFOKSdu0qGJ2lMMaRlnXygr0/dQxdX6FAKbqjv6LmndcSKuLSvyyIbjeeSxHEjDClPZbCUi0ha+mliF7NJJjp/llaURtK2CzozObS5DMxYT4dih/Jg+tLrXnW6ctO56913j1j3lg2nrjmLOsfFbZra3NaJVjMUeHHdom2LF0197bhzpwuuzbilRcwUnPFbrxdyEEPeG4toZpSshovU/ZITNFnY5vNrW4yMJFEsZ/LTR9gxo7epLuhqxGGdgyfNf9tePwbr6avf0TAw43WUV1F2HeOEGI+mmGVcFs+OT+R/6n8DA0x+VAAAeJxdzclKggEAAOHP5WaWKWWEEYKVUVBpLuBCiGtKZmpqWm/iS/mC9eOxuQzMZYTt+d3qBAr5z+u+hkVExRyIO3Qk4VhSyolTaWfOZVy4lJVz5dqNvFt37j149KSg6FlJWUVVTV1D04uWdvDt6ukbBK+hkTdj7yY+TM3MfVpYWvmytvHtx+4PTCwRMgAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCTyBmAfMYAAbBAHh4nGNgYGBkAILbCqeqQfTjg8szYDQATrIHqAAA')format("woff");}.ffe{font-family:ffe;line-height:0.923000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:fff;src:url('data:application/font-woff;base64,d09GRgABAAAAAAWoAA4AAAAACFgAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFjAAAABoAAAAcoqQZVEdERUYAAAVwAAAAHAAAAB4AJwAMT1MvMgAAAbgAAABGAAAAVlU7gxBjbWFwAAACFAAAAEcAAAFSIaspXmN2dCAAAAJcAAAABAAAAAQAIQJ5Z2FzcAAABWgAAAAIAAAACP//AANnbHlmAAACcAAAAQAAAAFAHQf6TGhlYWQAAAFEAAAAMwAAADYqh5LZaGhlYQAAAXgAAAAgAAAAJAZkBA5obXR4AAACAAAAABQAAAAUC+8AWWxvY2EAAAJgAAAADgAAAA4A9ACqbWF4cAAAAZgAAAAfAAAAIABKAF1uYW1lAAADcAAAAb0AAANR14usv3Bvc3QAAAUwAAAAOAAAAEEDmIDMeJxjYGRgYGBiOLKW5S5DPL/NVwZ55hdAEYbHB5fnwGnF//uY1zPNAnI5gGqBAACDuw2jAHicY2BkYGCa9X8fAwPzCwYgYF7PkMIgyYAMWABy4wR5eJxjYGRgYGBj0GFgYgABEMnIABJzYNADCQAACDsAqAB4nGNgZH7BOIGBlYGBqYtpD4MiQw+I/t/D+IDBkJEJKMrAyskAA4xAnADjBKS5pgApBaUspln/9wFVzmJwgqphAAB0YQ0YAAAD6AAhAAAAAAPoAAAD6AAAADcAOHicY2BgYGaAYBkGRgYQ8AHyGMF8FgYDIM0BhExAWkFxklLW//8I1v/H94ruzobqAgNGNgY4lxGkh4kBFTBCrBrOAACh9AxMAAAhAnkAAAAqACoAKgAqAFYAoAAAeJxtz0Fqg0AUxvH33lTHcWraGE0IJaVjIJYGUqpGC/USgQR6gi6zzLKQE2SfS4geoNtcogfoxk3BXdUme3cfv8UHfyBQAPhER2DAYZEjPKcFv4IyyHXtOy0YnSfk7MLahQuu419a4MXDvur7YX+qUPycTnSsPxS9n+8gaSuWYQt3AODwHnJ9jt4yTpQXhWrmR28YjO5xxDJjte2RsOV4V0vXpWo3lrag3naFdEuT/VpYh83j5mCJ9X4CBK/tF8soBhfmAJoz9XycLaM4wTgMhq7DBQ67lT4dw6x/bS7p5lrj1qCRWA3wpUsXjo4PwjLOoUqXQppN2ZSm7NR/4o9BO3icrVLLattAFD2j2IZCSXftppS7CSQLDbKEF8kyJgkYywlWXAJdjRPZFrY1QVIw/ob8SukiH9Xv6JE07cKLdlMNmnvmvs+dAXCMH1Bov69/sMIHdeKwh54aOnyESL053MEn76PDXRx7Y4d71L/SU3Xe8fS9iaqxwhfVddjDezVw+AgLNXK4A61+OtzFZ0873IP2vmEIi2fsUSDDEitUEIQIuCL4XC0+p3ZOL8ElNPcRDB6xZuwOJWVGnUGOp8amETdek8beetYepzznTaaUlQw2WPBkm/2eugfKGRJcYcpdcEN5S80dT2fMiKF93hfZclVJGASR73M/l/leLrWMzOPa7sp1JiZ/kpGOtUzsjspMTm0u83RlNguxC7lPH2SWXE0TuZnezu6SM+Yds+GYDVVsKyHNLVu0bK9En+QxjmNTrZL9dm43ZZ+KmlhBr5oCJrbYGsrrhl3VyIKzTJtJaiYQXPD/exGfXFNGvVBjGN/GRI2l7+4hxIBlbF5d22KZSqgDuZCD5vxpunzZmIKWKPD7HFE4+BfBw9qHhH/nrF9zSnvJ22xvsuVXvxWhMS3KjLNmX0Ek/63oL+ZZlVQAAAB4nGNgYmD4//Hb7v9NDBoMDAyMDOiADSzKxMDMyMTIzJVYVJRfXpSZnlHCXpqXaWRk5ggAfYcL4gAAAAH//wACeJxjYGRgYOABYjEgZmJgBEJWIGYB8xgAA9UANHicY2BgYGQAgtsKp6pB9OODy3NgNABO2gewAAA=')format("woff");}.fff{font-family:fff;line-height:0.732000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff10;src:url('data:application/font-woff;base64,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')format("woff");}.ff10{font-family:ff10;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff11;src:url('data:application/font-woff;base64,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')format("woff");}.ff11{font-family:ff11;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff12;src:url('data:application/font-woff;base64,d09GRgABAAAAAATQAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcoqQZeEdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADIAAAA2KcCSmWhoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG3AAADRawH+Yxwb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjiSqjazMZ7f5isDN/MLoAjD44PL6+C0JUMD01PGEiCXA6gWCAB2IAyzAAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUstq20AUPaPYhkLxsqssLpRCApFQJLJIViUmMZjICVJcsh3HY1vY1gRJwXjXD2r7Tf2UHklDoaVkVQ2699z3YwbAED+g0H1ffmOFofrosIeB+uzwESL13eEePnhDh/sYeiOHB9R/pafqvaP0rY1qsMKx6jvs4b2KHD7CQo0d7uFM/XS4j2Pvk8MDnHkpRrB4wQElcqywRg1BhJAnhs/T4Utq5/QSXCMgnUDjGRvG7lGR59RpFFi0tgBJ6zVt7Z1n43FCuWgzGVbS2GJJybb0kbon8hky3CAlFYzJ76l5oHTKjBjZl0OZr9a1RGEY+z7ppcwPch3IRD9v7L7a5KKLhUyCJJCp3VOZy4ktZG7WersUu5RH8ySz7CbNZJzezx6yU+a9Y8MJG6rZVsYxd2zRsr2Kg+MuSXS9zg67ud1WlJupSro0/WNqy50mv21Hq1tecpGmXWPA1Qmu+L9VweeYhjGvlDWju4iYsT7O3RVEuGARW9S3tlwZiYJQruTPzvzUrF63uqQhDv1zLie6eHu0vwvj3wmbR2xorniJ3QV2kzVPRGg0ZZVzxewpjOX/VPwFMEOTxAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9OODy+tgNABPjgfUAAA=')format("woff");}.ff12{font-family:ff12;line-height:0.244000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff13;src:url('data:application/font-woff;base64,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')format("woff");}.ff13{font-family:ff13;line-height:0.834000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff14;src:url('data:application/font-woff;base64,d09GRgABAAAAAATcAA0AAAAAB0gAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcoqQZjEdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlO4f7NjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABnAAAAbDQU7jxoZWFkAAABMAAAADMAAAA2KduSrWhoZWEAAAFkAAAAHgAAACQEkgOjaG10eAAAAegAAAAUAAAAFAWgADtsb2NhAAACRAAAAAwAAAAMAAAANm1heHAAAAGEAAAAHQAAACAASAAnbmFtZQAAArgAAAG3AAADRaoF94pwb3N0AAAEcAAAACkAAAA0cHnCwnicY2BkYGBgYjhi8vXD43h+m68M3MwvgCIMjw8u74DT1gxVTP8Yq4BcDqBaIAAAtDoOOQB4nGNgZGBgrGIAAmYrEMn0jyGFQZIBGbACADBHAjwAAHicY2BkYGBgZVBhANEMDExAzAhmO4D5DAAGWwBwAAAAeJxjYGScyziBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YqsGQVXA0DADEqCjYAAAABGAAAAAAAAAFNAAAAAQAAAzoAO3icY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAANnicY2BksGaoYvrHWMWgzMDAKMKmrKSmrseorMTHxC7CB6RNTcyMjcTE5RiNjczMgUymfwlBBsGmBr5aYnp6ckxMHGwCMAHbIGYmPgHG0OAOYyNdPQEVFz1mLh4VCC/aVp0BAKK+EmYAeJytUstq20AUPaPYhkLxsqssLpRCApFQJAJNViUmMZjKCVJcsh3Hsi1sa4KkYLzrB7X9pn5Kj0ZDoaVkVQ2699z3YwbAED+g0H1ffmOFoXrvsIeB+uTwESL13eEe3nlDh/sYeiOHB9R/pafqvaH0zUa1WOFY9R328FZFDh9hocYO93Cmfjrcx7H3weEBzrwUIxg844AKBVZYo4EgQsgTw+fp8CW1c3oJrhGQTqDxhA1j96jJC+o0SiysLUBivabW3nm2HieUS5spZyWNLZaUjKUP1D2Sz5DhBimpYEx+R809pVNmxMg8H6pitW4kCsPY90kvZX6Q60Am+mlj9vWmEF0uZBIkgUzNnspCTkwp83ytt0sxS3nIH2WW3aSZjNO72X12yryf2XDChhq2lXHMHVs0bK/GRxqTRDfr7LCbm21NuZ2qokvbP6am2mnyWztaY3nFReZ2jQFXJ7ji/1oFn2PmjHmhrBndRcSM9XHuriDCBYuYsrk11SqXKAjlSv7szE/z1ctWVzTEoX/O5UQXr4/2d2H8O2H7iHOaa15id4HdZO0TERrzqi64YvYUxvJ/Kv4CKjeTvAB4nGNgYmD4//Hb7v9zGVQYsAFWIGZkYGJgZmRiL87MzcxJLAIAApcIagAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9OODyztgNABP8gfoAAA=')format("woff");}.ff14{font-family:ff14;line-height:0.256000;font-style:normal;font-weight:normal;visibility:visible;}
.m0{transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-ms-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-webkit-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);}
.m1{transform:none;-ms-transform:none;-webkit-transform:none;}
.v0{vertical-align:0.000000px;}
.ls0{letter-spacing:0.000000px;}
.sc_{text-shadow:none;}
.sc0{text-shadow:-0.015em 0 transparent,0 0.015em transparent,0.015em 0 transparent,0 -0.015em transparent;}
@media screen and (-webkit-min-device-pixel-ratio:0){
.sc_{-webkit-text-stroke:0px transparent;}
.sc0{-webkit-text-stroke:0.015em transparent;text-shadow:none;}
}
.ws0{word-spacing:0.000000px;}
._4{margin-left:-7.355850px;}
._7{margin-left:-4.399514px;}
._d{margin-left:-3.307583px;}
._3{margin-left:-1.818300px;}
._c{width:1.818300px;}
._0{width:3.073600px;}
._f{width:4.462802px;}
._24{width:5.547190px;}
._2c{width:6.590231px;}
._2d{width:10.551907px;}
._10{width:11.663385px;}
._b{width:13.270183px;}
._e{width:14.938246px;}
._6{width:16.116719px;}
._8{width:17.550234px;}
._11{width:19.586258px;}
._a{width:21.060222px;}
._1b{width:22.282513px;}
._1c{width:23.685346px;}
._25{width:24.886004px;}
._18{width:25.911664px;}
._14{width:27.956900px;}
._5{width:31.241700px;}
._9{width:32.418280px;}
._13{width:33.771608px;}
._1{width:36.288314px;}
._16{width:37.658880px;}
._2{width:40.829100px;}
._1e{width:41.931165px;}
._22{width:46.577606px;}
._3c{width:50.211630px;}
._1f{width:51.628761px;}
._1d{width:55.729902px;}
._30{width:57.294188px;}
._38{width:67.719096px;}
._29{width:75.079090px;}
._19{width:94.146240px;}
._37{width:101.595209px;}
._42{width:113.495829px;}
._20{width:135.887473px;}
._15{width:149.878222px;}
._27{width:151.155029px;}
._43{width:169.347435px;}
._21{width:185.984810px;}
._3a{width:202.807126px;}
._39{width:204.026633px;}
._17{width:225.955040px;}
._3f{width:237.285973px;}
._34{width:254.047160px;}
._40{width:271.162086px;}
._3e{width:288.100143px;}
._26{width:319.340782px;}
._35{width:335.687994px;}
._49{width:357.520131px;}
._45{width:373.604164px;}
._2f{width:470.731200px;}
._36{width:525.029943px;}
._2b{width:622.662682px;}
._33{width:694.395887px;}
._2a{width:734.342560px;}
._3d{width:745.205943px;}
._31{width:785.219755px;}
._32{width:873.237705px;}
._3b{width:878.499102px;}
._23{width:899.174502px;}
._41{width:954.342731px;}
._28{width:1070.086042px;}
._48{width:1144.687599px;}
._1a{width:1173.474611px;}
._46{width:1200.388796px;}
._44{width:1266.293674px;}
._12{width:1296.662102px;}
._2e{width:1306.023040px;}
._47{width:1491.148186px;}
.fce{color:rgb(173,34,49);}
.fcd{color:rgb(171,92,31);}
.fc0{color:rgb(35,55,59);}
.fc1{color:rgb(250,250,250);}
.fc2{color:rgb(255,255,255);}
.fc6{color:rgb(102,102,102);}
.fcf{color:rgb(0,153,153);}
.fcb{color:rgb(156,102,0);}
.fc3{color:rgb(57,75,79);}
.fc4{color:rgb(0,128,0);}
.fc5{color:rgb(176,0,64);}
.fc7{color:rgb(61,122,122);}
.fc9{color:rgb(16,136,110);}
.fcc{color:transparent;}
.fc8{color:rgb(0,0,255);}
.fca{color:rgb(186,33,33);}
.fs5{font-size:31.880400px;}
.fs7{font-size:35.865600px;}
.fs3{font-size:39.850400px;}
.fs6{font-size:43.636400px;}
.fs2{font-size:47.820800px;}
.fs4{font-size:57.384800px;}
.fs1{font-size:82.650000px;}
.fs0{font-size:99.148400px;}
.y141{bottom:-24.463000px;}
.y0{bottom:-0.500000px;}
.y22b{bottom:2.291000px;}
.y1ac{bottom:2.774000px;}
.y175{bottom:3.780000px;}
.y237{bottom:3.996000px;}
.y1ef{bottom:4.757000px;}
.y6a{bottom:5.666000px;}
.ya2{bottom:6.370000px;}
.y12b{bottom:6.674000px;}
.y252{bottom:6.742000px;}
.y218{bottom:6.978000px;}
.y76{bottom:7.005000px;}
.y123{bottom:7.172000px;}
.y15b{bottom:7.678000px;}
.y2c{bottom:8.256000px;}
.y1c6{bottom:9.738000px;}
.y39{bottom:10.086000px;}
.ybb{bottom:10.173000px;}
.y10c{bottom:10.750000px;}
.y247{bottom:10.915000px;}
.y42{bottom:11.349000px;}
.yc{bottom:13.018000px;}
.y22a{bottom:13.175000px;}
.y8f{bottom:13.586000px;}
.y1ab{bottom:13.658000px;}
.y140{bottom:13.890000px;}
.y174{bottom:14.664000px;}
.yea{bottom:14.682000px;}
.y20a{bottom:14.880000px;}
.y18d{bottom:15.641000px;}
.y235{bottom:15.642000px;}
.yc7{bottom:16.148000px;}
.y98{bottom:17.511000px;}
.y217{bottom:17.862000px;}
.y122{bottom:18.779000px;}
.y12a{bottom:19.277000px;}
.y251{bottom:19.344000px;}
.y2b{bottom:19.862000px;}
.y1c5{bottom:20.622000px;}
.yba{bottom:21.057000px;}
.y246{bottom:21.799000px;}
.y250{bottom:22.607000px;}
.y10b{bottom:23.353000px;}
.y103{bottom:23.832000px;}
.y229{bottom:24.059000px;}
.y19a{bottom:24.369000px;}
.y4c{bottom:24.489000px;}
.y1aa{bottom:24.542000px;}
.yac{bottom:25.361000px;}
.y173{bottom:25.549000px;}
.y38{bottom:25.668000px;}
.y209{bottom:25.764000px;}
.y13f{bottom:26.492000px;}
.y18c{bottom:26.525000px;}
.y17d{bottom:26.651000px;}
.y41{bottom:26.930000px;}
.yc6{bottom:27.032000px;}
.y8e{bottom:27.334000px;}
.y133{bottom:27.538000px;}
.y216{bottom:28.746000px;}
.ya1{bottom:29.222000px;}
.y69{bottom:29.997000px;}
.y1eb{bottom:30.070000px;}
.ye9{bottom:30.263000px;}
.y16{bottom:30.313000px;}
.y121{bottom:30.385000px;}
.y129{bottom:30.883000px;}
.y1c4{bottom:31.506000px;}
.yb9{bottom:31.941000px;}
.ydf{bottom:31.947000px;}
.y75{bottom:32.188000px;}
.y234{bottom:32.220000px;}
.y2a{bottom:32.465000px;}
.y245{bottom:32.683000px;}
.y56{bottom:33.564000px;}
.y228{bottom:34.943000px;}
.y1a9{bottom:35.426000px;}
.y1f{bottom:35.478000px;}
.y1f8{bottom:35.680000px;}
.y10a{bottom:35.956000px;}
.y24f{bottom:36.355000px;}
.y172{bottom:36.433000px;}
.y208{bottom:36.649000px;}
.y199{bottom:36.972000px;}
.yf6{bottom:37.307000px;}
.y18b{bottom:37.409000px;}
.yc5{bottom:37.917000px;}
.yab{bottom:37.964000px;}
.y13e{bottom:39.095000px;}
.y215{bottom:39.631000px;}
.y97{bottom:40.066000px;}
.y4b{bottom:40.071000px;}
.y132{bottom:40.141000px;}
.y5e{bottom:40.430000px;}
.y7e{bottom:40.648000px;}
.y8d{bottom:41.082000px;}
.y120{bottom:41.992000px;}
.y17c{bottom:42.232000px;}
.y1c3{bottom:42.390000px;}
.y11b{bottom:42.814000px;}
.yb8{bottom:42.825000px;}
.y74{bottom:43.072000px;}
.y128{bottom:43.486000px;}
.y163{bottom:43.490000px;}
.y244{bottom:43.568000px;}
.y29{bottom:44.071000px;}
.yde{bottom:44.550000px;}
.y1b4{bottom:44.626000px;}
.y1e0{bottom:45.388000px;}
.y227{bottom:45.827000px;}
.ye8{bottom:45.845000px;}
.y1a8{bottom:46.310000px;}
.y14b{bottom:47.311000px;}
.y171{bottom:47.317000px;}
.y207{bottom:47.533000px;}
.y68{bottom:47.781000px;}
.y1ee{bottom:48.293000px;}
.y109{bottom:48.558000px;}
.y102{bottom:48.719000px;}
.y233{bottom:48.798000px;}
.yc4{bottom:48.801000px;}
.y15{bottom:49.516000px;}
.y198{bottom:49.574000px;}
.y85{bottom:49.619000px;}
.yf5{bottom:49.909000px;}
.y1d5{bottom:49.957000px;}
.yaa{bottom:50.567000px;}
.y37{bottom:50.853000px;}
.y24e{bottom:51.511000px;}
.y13d{bottom:51.698000px;}
.y131{bottom:52.744000px;}
.y1c2{bottom:53.274000px;}
.y11f{bottom:53.598000px;}
.yb7{bottom:53.709000px;}
.y73{bottom:53.956000px;}
.y5{bottom:54.070000px;}
.y154{bottom:54.215000px;}
.y243{bottom:54.452000px;}
.y1e{bottom:54.681000px;}
.y127{bottom:55.092000px;}
.y15a{bottom:55.199000px;}
.y96{bottom:55.648000px;}
.y4a{bottom:55.652000px;}
.y5d{bottom:56.277000px;}
.y1f7{bottom:56.711000px;}
.ya0{bottom:56.758000px;}
.y8c{bottom:56.798000px;}
.y1ea{bottom:56.874000px;}
.ydd{bottom:57.152000px;}
.y1a7{bottom:57.195000px;}
.yd2{bottom:57.536000px;}
.y1df{bottom:57.991000px;}
.y206{bottom:58.417000px;}
.y162{bottom:59.072000px;}
.y18a{bottom:59.177000px;}
.y7d{bottom:59.219000px;}
.yc3{bottom:59.685000px;}
.y1b3{bottom:60.207000px;}
.y67{bottom:60.384000px;}
.y14a{bottom:61.060000px;}
.y108{bottom:61.161000px;}
.y101{bottom:61.322000px;}
.y214{bottom:61.399000px;}
.y40{bottom:61.441000px;}
.yf4{bottom:62.512000px;}
.ya9{bottom:63.170000px;}
.ye7{bottom:63.419000px;}
.y55{bottom:63.431000px;}
.y36{bottom:63.456000px;}
.y13c{bottom:64.300000px;}
.y232{bottom:64.379000px;}
.yb6{bottom:64.593000px;}
.y72{bottom:64.840000px;}
.y17b{bottom:65.159000px;}
.y242{bottom:65.336000px;}
.y130{bottom:65.346000px;}
.y11e{bottom:66.201000px;}
.y24d{bottom:66.231000px;}
.y226{bottom:67.596000px;}
.y126{bottom:67.695000px;}
.y153{bottom:67.963000px;}
.y1a6{bottom:68.079000px;}
.y14{bottom:68.719000px;}
.y170{bottom:69.085000px;}
.y205{bottom:69.301000px;}
.ydc{bottom:69.755000px;}
.y189{bottom:70.061000px;}
.yd1{bottom:70.138000px;}
.yc2{bottom:70.569000px;}
.y1de{bottom:70.593000px;}
.y4{bottom:70.745000px;}
.y159{bottom:70.781000px;}
.y1cd{bottom:71.189000px;}
.y213{bottom:72.283000px;}
.y9f{bottom:72.340000px;}
.y1d4{bottom:72.512000px;}
.y66{bottom:72.987000px;}
.y84{bottom:73.171000px;}
.y1d{bottom:73.884000px;}
.y100{bottom:73.924000px;}
.y3f{bottom:74.043000px;}
.y197{bottom:74.780000px;}
.y149{bottom:74.808000px;}
.y1c1{bottom:75.043000px;}
.yf3{bottom:75.115000px;}
.yb5{bottom:75.478000px;}
.y71{bottom:75.724000px;}
.ya8{bottom:75.772000px;}
.y241{bottom:76.220000px;}
.yb{bottom:77.117000px;}
.y1f6{bottom:77.742000px;}
.y11d{bottom:77.807000px;}
.yf2{bottom:77.929000px;}
.y12f{bottom:77.949000px;}
.y95{bottom:78.203000px;}
.y35{bottom:78.300000px;}
.y225{bottom:78.480000px;}
.y1a5{bottom:78.963000px;}
.y125{bottom:79.302000px;}
.y54{bottom:79.968000px;}
.y16f{bottom:79.969000px;}
.y204{bottom:80.185000px;}
.y231{bottom:80.932000px;}
.y188{bottom:80.945000px;}
.y28{bottom:81.281000px;}
.yc1{bottom:81.453000px;}
.y1e9{bottom:81.678000px;}
.y152{bottom:81.712000px;}
.ydb{bottom:82.358000px;}
.yd0{bottom:82.741000px;}
.y212{bottom:83.167000px;}
.y1dd{bottom:83.196000px;}
.y7c{bottom:83.244000px;}
.y1cc{bottom:83.791000px;}
.y8b{bottom:83.812000px;}
.y5c{bottom:83.814000px;}
.y65{bottom:85.589000px;}
.y1b2{bottom:85.624000px;}
.y1c0{bottom:85.927000px;}
.yb4{bottom:86.362000px;}
.y107{bottom:86.367000px;}
.yff{bottom:86.527000px;}
.y70{bottom:86.609000px;}
.y3e{bottom:86.646000px;}
.y240{bottom:87.104000px;}
.y196{bottom:87.382000px;}
.ye6{bottom:87.717000px;}
.y24c{bottom:87.765000px;}
.y13{bottom:87.921000px;}
.y1d3{bottom:88.093000px;}
.ya7{bottom:88.375000px;}
.y148{bottom:88.557000px;}
.y224{bottom:89.364000px;}
.y13b{bottom:89.506000px;}
.y1a4{bottom:89.847000px;}
.y49{bottom:90.163000px;}
.y11c{bottom:90.410000px;}
.yf1{bottom:90.532000px;}
.y17a{bottom:90.703000px;}
.y16e{bottom:90.853000px;}
.y124{bottom:90.908000px;}
.y203{bottom:91.069000px;}
.y1ed{bottom:91.830000px;}
.y1e8{bottom:92.562000px;}
.y1c{bottom:93.086000px;}
.y94{bottom:93.785000px;}
.y211{bottom:94.051000px;}
.y161{bottom:94.578000px;}
.y160{bottom:94.579000px;}
.yda{bottom:94.960000px;}
.ycf{bottom:95.344000px;}
.ya{bottom:96.320000px;}
.y83{bottom:96.723000px;}
.y1bf{bottom:96.811000px;}
.y27{bottom:97.022000px;}
.yb3{bottom:97.246000px;}
.y158{bottom:97.296000px;}
.y151{bottom:97.453000px;}
.y6f{bottom:97.493000px;}
.y1f5{bottom:97.856000px;}
.y23f{bottom:97.988000px;}
.y64{bottom:98.192000px;}
.y106{bottom:98.969000px;}
.yfe{bottom:99.130000px;}
.y3d{bottom:99.249000px;}
.y89{bottom:99.393000px;}
.y8a{bottom:99.394000px;}
.y9e{bottom:99.877000px;}
.y195{bottom:99.985000px;}
.y223{bottom:100.248000px;}
.ye5{bottom:100.320000px;}
.y1a3{bottom:100.731000px;}
.ya6{bottom:100.978000px;}
.y16d{bottom:101.737000px;}
.y202{bottom:101.953000px;}
.y230{bottom:101.968000px;}
.y13a{bottom:102.108000px;}
.y147{bottom:102.305000px;}
.y187{bottom:102.714000px;}
.y48{bottom:102.765000px;}
.yc0{bottom:102.776000px;}
.yf0{bottom:103.134000px;}
.y12e{bottom:103.154000px;}
.y1e7{bottom:103.446000px;}
.y34{bottom:103.486000px;}
.y24b{bottom:103.815000px;}
.y210{bottom:104.935000px;}
.y116{bottom:106.798000px;}
.y12{bottom:107.124000px;}
.yd9{bottom:107.563000px;}
.y1be{bottom:107.695000px;}
.yce{bottom:107.946000px;}
.yb2{bottom:108.130000px;}
.y1b1{bottom:108.180000px;}
.y1dc{bottom:108.401000px;}
.y23e{bottom:108.872000px;}
.y1cb{bottom:108.997000px;}
.y53{bottom:109.089000px;}
.y222{bottom:111.132000px;}
.y5b{bottom:111.350000px;}
.y1a2{bottom:111.615000px;}
.yfd{bottom:111.732000px;}
.y3c{bottom:111.851000px;}
.y1d2{bottom:112.041000px;}
.y1b{bottom:112.289000px;}
.y194{bottom:112.588000px;}
.y16c{bottom:112.622000px;}
.y26{bottom:112.763000px;}
.y201{bottom:112.838000px;}
.y157{bottom:112.878000px;}
.ye4{bottom:112.923000px;}
.y1ec{bottom:113.598000px;}
.y63{bottom:114.033000px;}
.y1e6{bottom:114.330000px;}
.y47{bottom:115.368000px;}
.y9d{bottom:115.458000px;}
.y9{bottom:115.523000px;}
.yef{bottom:115.737000px;}
.y20f{bottom:115.819000px;}
.y33{bottom:116.088000px;}
.y179{bottom:116.247000px;}
.y93{bottom:116.340000px;}
.y146{bottom:118.046000px;}
.y24a{bottom:118.534000px;}
.yb1{bottom:119.014000px;}
.y115{bottom:119.401000px;}
.y23d{bottom:119.756000px;}
.y1f4{bottom:119.803000px;}
.y7b{bottom:119.861000px;}
.y105{bottom:120.166000px;}
.y82{bottom:120.274000px;}
.y88{bottom:120.430000px;}
.ycd{bottom:120.549000px;}
.y1db{bottom:121.004000px;}
.y1ca{bottom:121.599000px;}
.y6e{bottom:121.680000px;}
.y52{bottom:121.692000px;}
.y221{bottom:122.016000px;}
.y1a1{bottom:122.499000px;}
.y22f{bottom:123.502000px;}
.y16b{bottom:123.506000px;}
.y236{bottom:123.722000px;}
.y1b0{bottom:123.761000px;}
.ybf{bottom:123.812000px;}
.yfc{bottom:124.335000px;}
.y3b{bottom:124.454000px;}
.y186{bottom:124.482000px;}
.y193{bottom:125.190000px;}
.ye3{bottom:125.525000px;}
.ya5{bottom:126.183000px;}
.y11{bottom:126.327000px;}
.y20e{bottom:126.704000px;}
.y5a{bottom:126.932000px;}
.y150{bottom:126.982000px;}
.y139{bottom:127.314000px;}
.y3{bottom:128.144000px;}
.yee{bottom:128.340000px;}
.y156{bottom:128.459000px;}
.y25{bottom:128.479000px;}
.y32{bottom:128.691000px;}
.y1bd{bottom:129.463000px;}
.yb0{bottom:129.898000px;}
.y15f{bottom:130.085000px;}
.y23c{bottom:130.641000px;}
.y114{bottom:131.007000px;}
.y178{bottom:131.828000px;}
.y92{bottom:131.921000px;}
.yd8{bottom:132.768000px;}
.y220{bottom:132.900000px;}
.ycc{bottom:133.152000px;}
.y1a0{bottom:133.383000px;}
.y12d{bottom:133.441000px;}
.y1f3{bottom:133.551000px;}
.y51{bottom:134.294000px;}
.y46{bottom:134.347000px;}
.y16a{bottom:134.390000px;}
.y1d1{bottom:134.596000px;}
.y200{bottom:134.606000px;}
.y8{bottom:134.725000px;}
.y185{bottom:135.366000px;}
.y7a{bottom:135.443000px;}
.y11a{bottom:135.490000px;}
.y87{bottom:136.011000px;}
.y1e5{bottom:136.098000px;}
.yfb{bottom:136.938000px;}
.y20d{bottom:137.588000px;}
.y192{bottom:137.793000px;}
.ye2{bottom:138.128000px;}
.y20{bottom:138.248000px;}
.y6d{bottom:138.417000px;}
.y3a{bottom:139.298000px;}
.ybe{bottom:139.393000px;}
.y138{bottom:139.916000px;}
.y1bc{bottom:140.347000px;}
.y22e{bottom:140.414000px;}
.y249{bottom:140.531000px;}
.y14f{bottom:140.730000px;}
.yaf{bottom:140.782000px;}
.yed{bottom:140.942000px;}
.y23b{bottom:141.525000px;}
.y1a{bottom:142.940000px;}
.y9c{bottom:142.995000px;}
.y31{bottom:143.535000px;}
.y113{bottom:143.610000px;}
.y21f{bottom:143.785000px;}
.y81{bottom:143.826000px;}
.y19f{bottom:144.268000px;}
.y155{bottom:145.012000px;}
.y169{bottom:145.274000px;}
.yd7{bottom:145.371000px;}
.y1ff{bottom:145.490000px;}
.y10{bottom:145.530000px;}
.y62{bottom:145.554000px;}
.y15e{bottom:145.667000px;}
.ycb{bottom:145.754000px;}
.y1da{bottom:146.209000px;}
.y184{bottom:146.250000px;}
.y1c9{bottom:146.805000px;}
.y50{bottom:146.897000px;}
.y10e{bottom:146.922000px;}
.y1e4{bottom:146.982000px;}
.y119{bottom:147.097000px;}
.y145{bottom:147.575000px;}
.y1af{bottom:147.709000px;}
.y20c{bottom:148.472000px;}
.y12c{bottom:149.022000px;}
.yfa{bottom:149.540000px;}
.y1d0{bottom:150.178000px;}
.y191{bottom:150.396000px;}
.ye1{bottom:150.731000px;}
.y1bb{bottom:151.232000px;}
.ya4{bottom:151.488000px;}
.yae{bottom:151.666000px;}
.y1f2{bottom:152.281000px;}
.y23a{bottom:152.409000px;}
.y137{bottom:152.519000px;}
.yec{bottom:153.545000px;}
.y7{bottom:153.928000px;}
.y59{bottom:154.468000px;}
.y91{bottom:154.477000px;}
.y14e{bottom:154.478000px;}
.y21e{bottom:154.669000px;}
.y6c{bottom:155.154000px;}
.y22d{bottom:155.996000px;}
.y248{bottom:156.112000px;}
.y168{bottom:156.158000px;}
.y112{bottom:156.213000px;}
.y1fe{bottom:156.374000px;}
.y79{bottom:156.479000px;}
.y183{bottom:157.134000px;}
.y1e3{bottom:157.867000px;}
.yd6{bottom:157.974000px;}
.yca{bottom:158.357000px;}
.y9b{bottom:158.576000px;}
.y118{bottom:158.703000px;}
.y177{bottom:158.765000px;}
.y1d9{bottom:158.812000px;}
.y61{bottom:159.303000px;}
.y20b{bottom:159.356000px;}
.y24{bottom:159.976000px;}
.ybd{bottom:160.429000px;}
.y144{bottom:161.323000px;}
.y1ba{bottom:162.116000px;}
.y19{bottom:162.143000px;}
.y19e{bottom:162.215000px;}
.y190{bottom:162.998000px;}
.y239{bottom:163.293000px;}
.y4f{bottom:163.434000px;}
.y45{bottom:164.634000px;}
.yf{bottom:164.733000px;}
.y136{bottom:165.122000px;}
.y21d{bottom:165.553000px;}
.y1f1{bottom:166.029000px;}
.y2{bottom:166.047000px;}
.y167{bottom:167.042000px;}
.y1fd{bottom:167.258000px;}
.y80{bottom:167.377000px;}
.y30{bottom:167.472000px;}
.yf8{bottom:167.572000px;}
.y1c8{bottom:167.767000px;}
.y111{bottom:167.819000px;}
.y182{bottom:168.019000px;}
.y14d{bottom:168.227000px;}
.y58{bottom:170.050000px;}
.y90{bottom:170.058000px;}
.y1ae{bottom:170.264000px;}
.y117{bottom:170.310000px;}
.ye0{bottom:170.556000px;}
.yd5{bottom:170.576000px;}
.y1d8{bottom:171.415000px;}
.y6b{bottom:171.891000px;}
.y78{bottom:172.060000px;}
.y22c{bottom:172.549000px;}
.y1b9{bottom:173.000000px;}
.y60{bottom:173.051000px;}
.yad{bottom:173.435000px;}
.y238{bottom:174.177000px;}
.yf9{bottom:174.746000px;}
.y143{bottom:175.072000px;}
.yeb{bottom:175.363000px;}
.y1cf{bottom:175.533000px;}
.y18f{bottom:175.601000px;}
.y23{bottom:175.717000px;}
.ybc{bottom:176.011000px;}
.y21c{bottom:176.437000px;}
.y44{bottom:177.236000px;}
.y19d{bottom:177.371000px;}
.y166{bottom:177.926000px;}
.y1fc{bottom:178.142000px;}
.y181{bottom:178.903000px;}
.y110{bottom:179.425000px;}
.y1e2{bottom:179.635000px;}
.y2f{bottom:180.075000px;}
.yc9{bottom:180.175000px;}
.y15d{bottom:181.174000px;}
.y18{bottom:181.346000px;}
.yf7{bottom:183.154000px;}
.yd4{bottom:183.179000px;}
.y1c7{bottom:183.349000px;}
.y1b8{bottom:183.884000px;}
.ye{bottom:183.936000px;}
.y1d7{bottom:184.017000px;}
.y176{bottom:184.309000px;}
.y14c{bottom:185.846000px;}
.y9a{bottom:186.113000px;}
.y1{bottom:186.670000px;}
.y1f0{bottom:187.060000px;}
.y21b{bottom:187.321000px;}
.y86{bottom:187.348000px;}
.y77{bottom:187.642000px;}
.y18e{bottom:188.204000px;}
.ya3{bottom:188.628000px;}
.y4e{bottom:188.978000px;}
.y1fb{bottom:189.026000px;}
.y180{bottom:189.787000px;}
.y43{bottom:189.839000px;}
.y135{bottom:190.327000px;}
.y1e1{bottom:190.519000px;}
.y142{bottom:190.813000px;}
.y5f{bottom:190.835000px;}
.y7f{bottom:190.929000px;}
.y10f{bottom:191.032000px;}
.y22{bottom:191.458000px;}
.y57{bottom:191.592000px;}
.y2e{bottom:192.678000px;}
.y165{bottom:194.581000px;}
.y1b7{bottom:194.768000px;}
.y1ad{bottom:195.620000px;}
.yc8{bottom:195.757000px;}
.y104{bottom:195.782000px;}
.y1ce{bottom:196.569000px;}
.y19c{bottom:196.574000px;}
.y15c{bottom:196.755000px;}
.y21a{bottom:198.205000px;}
.y1fa{bottom:199.911000px;}
.y17{bottom:200.549000px;}
.y17f{bottom:200.671000px;}
.y99{bottom:201.694000px;}
.yd{bottom:203.139000px;}
.y4d{bottom:204.560000px;}
.y1b6{bottom:205.652000px;}
.y2d{bottom:206.676000px;}
.y21{bottom:207.174000px;}
.y10d{bottom:207.922000px;}
.yd3{bottom:208.384000px;}
.y1d6{bottom:209.223000px;}
.y134{bottom:210.153000px;}
.y164{bottom:210.163000px;}
.y1f9{bottom:210.795000px;}
.y17e{bottom:211.555000px;}
.y219{bottom:211.871000px;}
.y19b{bottom:212.155000px;}
.y1b5{bottom:216.536000px;}
.y6{bottom:236.149000px;}
.hd{height:22.124998px;}
.h8{height:23.910300px;}
.hc{height:24.890726px;}
.hb{height:26.899200px;}
.h9{height:27.576477px;}
.h5{height:29.887800px;}
.ha{height:32.727300px;}
.h4{height:33.187635px;}
.h6{height:35.865600px;}
.h7{height:43.038600px;}
.h3{height:59.177400px;}
.h2{height:74.361300px;}
.h0{height:255.118000px;}
.h1{height:255.500000px;}
.w0{width:453.543000px;}
.w1{width:454.000000px;}
.x0{left:0.000000px;}
.x4{left:10.667000px;}
.x1a{left:15.283000px;}
.x1{left:28.346000px;}
.xf{left:31.335000px;}
.x5{left:34.488000px;}
.xd{left:35.719000px;}
.x9{left:36.961000px;}
.x10{left:39.204000px;}
.x1b{left:40.658000px;}
.x17{left:45.457000px;}
.x22{left:46.927000px;}
.x15{left:48.272000px;}
.x6{left:50.486000px;}
.xa{left:53.153000px;}
.xc{left:62.892000px;}
.x12{left:63.994000px;}
.x16{left:65.208000px;}
.x14{left:68.994000px;}
.xb{left:71.983000px;}
.x13{left:75.449000px;}
.x20{left:82.145000px;}
.x18{left:87.823000px;}
.x2{left:105.004000px;}
.x8{left:106.772000px;}
.x21{left:116.018000px;}
.x19{left:126.459000px;}
.x1f{left:128.720000px;}
.x1e{left:166.827000px;}
.x23{left:167.848000px;}
.x11{left:196.366000px;}
.x1c{left:251.038000px;}
.x1d{left:263.660000px;}
.x3{left:378.705000px;}
.xe{left:424.403000px;}
.x7{left:428.637000px;}
@media print{
.v0{vertical-align:0.000000pt;}
.ls0{letter-spacing:0.000000pt;}
.ws0{word-spacing:0.000000pt;}
._4{margin-left:-9.807800pt;}
._7{margin-left:-5.866018pt;}
._d{margin-left:-4.410111pt;}
._3{margin-left:-2.424400pt;}
._c{width:2.424400pt;}
._0{width:4.098134pt;}
._f{width:5.950403pt;}
._24{width:7.396253pt;}
._2c{width:8.786974pt;}
._2d{width:14.069209pt;}
._10{width:15.551180pt;}
._b{width:17.693578pt;}
._e{width:19.917662pt;}
._6{width:21.488959pt;}
._8{width:23.400311pt;}
._11{width:26.115010pt;}
._a{width:28.080295pt;}
._1b{width:29.710017pt;}
._1c{width:31.580462pt;}
._25{width:33.181339pt;}
._18{width:34.548885pt;}
._14{width:37.275867pt;}
._5{width:41.655600pt;}
._9{width:43.224373pt;}
._13{width:45.028811pt;}
._1{width:48.384419pt;}
._16{width:50.211840pt;}
._2{width:54.438800pt;}
._1e{width:55.908221pt;}
._22{width:62.103475pt;}
._3c{width:66.948840pt;}
._1f{width:68.838348pt;}
._1d{width:74.306536pt;}
._30{width:76.392251pt;}
._38{width:90.292128pt;}
._29{width:100.105454pt;}
._19{width:125.528320pt;}
._37{width:135.460278pt;}
._42{width:151.327772pt;}
._20{width:181.183297pt;}
._15{width:199.837630pt;}
._27{width:201.540038pt;}
._43{width:225.796580pt;}
._21{width:247.979747pt;}
._3a{width:270.409501pt;}
._39{width:272.035511pt;}
._17{width:301.273387pt;}
._3f{width:316.381298pt;}
._34{width:338.729547pt;}
._40{width:361.549448pt;}
._3e{width:384.133524pt;}
._26{width:425.787710pt;}
._35{width:447.583991pt;}
._49{width:476.693508pt;}
._45{width:498.138885pt;}
._2f{width:627.641600pt;}
._36{width:700.039925pt;}
._2b{width:830.216909pt;}
._33{width:925.861183pt;}
._2a{width:979.123413pt;}
._3d{width:993.607925pt;}
._31{width:1046.959674pt;}
._32{width:1164.316940pt;}
._3b{width:1171.332137pt;}
._23{width:1198.899337pt;}
._41{width:1272.456975pt;}
._28{width:1426.781389pt;}
._48{width:1526.250132pt;}
._1a{width:1564.632815pt;}
._46{width:1600.518394pt;}
._44{width:1688.391566pt;}
._12{width:1728.882802pt;}
._2e{width:1741.364053pt;}
._47{width:1988.197581pt;}
.fs5{font-size:42.507200pt;}
.fs7{font-size:47.820800pt;}
.fs3{font-size:53.133867pt;}
.fs6{font-size:58.181867pt;}
.fs2{font-size:63.761067pt;}
.fs4{font-size:76.513067pt;}
.fs1{font-size:110.200000pt;}
.fs0{font-size:132.197867pt;}
.y141{bottom:-32.617333pt;}
.y0{bottom:-0.666667pt;}
.y22b{bottom:3.054667pt;}
.y1ac{bottom:3.698667pt;}
.y175{bottom:5.040000pt;}
.y237{bottom:5.328000pt;}
.y1ef{bottom:6.342667pt;}
.y6a{bottom:7.554667pt;}
.ya2{bottom:8.493333pt;}
.y12b{bottom:8.898667pt;}
.y252{bottom:8.989333pt;}
.y218{bottom:9.304000pt;}
.y76{bottom:9.340000pt;}
.y123{bottom:9.562667pt;}
.y15b{bottom:10.237333pt;}
.y2c{bottom:11.008000pt;}
.y1c6{bottom:12.984000pt;}
.y39{bottom:13.448000pt;}
.ybb{bottom:13.564000pt;}
.y10c{bottom:14.333333pt;}
.y247{bottom:14.553333pt;}
.y42{bottom:15.132000pt;}
.yc{bottom:17.357333pt;}
.y22a{bottom:17.566667pt;}
.y8f{bottom:18.114667pt;}
.y1ab{bottom:18.210667pt;}
.y140{bottom:18.520000pt;}
.y174{bottom:19.552000pt;}
.yea{bottom:19.576000pt;}
.y20a{bottom:19.840000pt;}
.y18d{bottom:20.854667pt;}
.y235{bottom:20.856000pt;}
.yc7{bottom:21.530667pt;}
.y98{bottom:23.348000pt;}
.y217{bottom:23.816000pt;}
.y122{bottom:25.038667pt;}
.y12a{bottom:25.702667pt;}
.y251{bottom:25.792000pt;}
.y2b{bottom:26.482667pt;}
.y1c5{bottom:27.496000pt;}
.yba{bottom:28.076000pt;}
.y246{bottom:29.065333pt;}
.y250{bottom:30.142667pt;}
.y10b{bottom:31.137333pt;}
.y103{bottom:31.776000pt;}
.y229{bottom:32.078667pt;}
.y19a{bottom:32.492000pt;}
.y4c{bottom:32.652000pt;}
.y1aa{bottom:32.722667pt;}
.yac{bottom:33.814667pt;}
.y173{bottom:34.065333pt;}
.y38{bottom:34.224000pt;}
.y209{bottom:34.352000pt;}
.y13f{bottom:35.322667pt;}
.y18c{bottom:35.366667pt;}
.y17d{bottom:35.534667pt;}
.y41{bottom:35.906667pt;}
.yc6{bottom:36.042667pt;}
.y8e{bottom:36.445333pt;}
.y133{bottom:36.717333pt;}
.y216{bottom:38.328000pt;}
.ya1{bottom:38.962667pt;}
.y69{bottom:39.996000pt;}
.y1eb{bottom:40.093333pt;}
.ye9{bottom:40.350667pt;}
.y16{bottom:40.417333pt;}
.y121{bottom:40.513333pt;}
.y129{bottom:41.177333pt;}
.y1c4{bottom:42.008000pt;}
.yb9{bottom:42.588000pt;}
.ydf{bottom:42.596000pt;}
.y75{bottom:42.917333pt;}
.y234{bottom:42.960000pt;}
.y2a{bottom:43.286667pt;}
.y245{bottom:43.577333pt;}
.y56{bottom:44.752000pt;}
.y228{bottom:46.590667pt;}
.y1a9{bottom:47.234667pt;}
.y1f{bottom:47.304000pt;}
.y1f8{bottom:47.573333pt;}
.y10a{bottom:47.941333pt;}
.y24f{bottom:48.473333pt;}
.y172{bottom:48.577333pt;}
.y208{bottom:48.865333pt;}
.y199{bottom:49.296000pt;}
.yf6{bottom:49.742667pt;}
.y18b{bottom:49.878667pt;}
.yc5{bottom:50.556000pt;}
.yab{bottom:50.618667pt;}
.y13e{bottom:52.126667pt;}
.y215{bottom:52.841333pt;}
.y97{bottom:53.421333pt;}
.y4b{bottom:53.428000pt;}
.y132{bottom:53.521333pt;}
.y5e{bottom:53.906667pt;}
.y7e{bottom:54.197333pt;}
.y8d{bottom:54.776000pt;}
.y120{bottom:55.989333pt;}
.y17c{bottom:56.309333pt;}
.y1c3{bottom:56.520000pt;}
.y11b{bottom:57.085333pt;}
.yb8{bottom:57.100000pt;}
.y74{bottom:57.429333pt;}
.y128{bottom:57.981333pt;}
.y163{bottom:57.986667pt;}
.y244{bottom:58.090667pt;}
.y29{bottom:58.761333pt;}
.yde{bottom:59.400000pt;}
.y1b4{bottom:59.501333pt;}
.y1e0{bottom:60.517333pt;}
.y227{bottom:61.102667pt;}
.ye8{bottom:61.126667pt;}
.y1a8{bottom:61.746667pt;}
.y14b{bottom:63.081333pt;}
.y171{bottom:63.089333pt;}
.y207{bottom:63.377333pt;}
.y68{bottom:63.708000pt;}
.y1ee{bottom:64.390667pt;}
.y109{bottom:64.744000pt;}
.y102{bottom:64.958667pt;}
.y233{bottom:65.064000pt;}
.yc4{bottom:65.068000pt;}
.y15{bottom:66.021333pt;}
.y198{bottom:66.098667pt;}
.y85{bottom:66.158667pt;}
.yf5{bottom:66.545333pt;}
.y1d5{bottom:66.609333pt;}
.yaa{bottom:67.422667pt;}
.y37{bottom:67.804000pt;}
.y24e{bottom:68.681333pt;}
.y13d{bottom:68.930667pt;}
.y131{bottom:70.325333pt;}
.y1c2{bottom:71.032000pt;}
.y11f{bottom:71.464000pt;}
.yb7{bottom:71.612000pt;}
.y73{bottom:71.941333pt;}
.y5{bottom:72.093333pt;}
.y154{bottom:72.286667pt;}
.y243{bottom:72.602667pt;}
.y1e{bottom:72.908000pt;}
.y127{bottom:73.456000pt;}
.y15a{bottom:73.598667pt;}
.y96{bottom:74.197333pt;}
.y4a{bottom:74.202667pt;}
.y5d{bottom:75.036000pt;}
.y1f7{bottom:75.614667pt;}
.ya0{bottom:75.677333pt;}
.y8c{bottom:75.730667pt;}
.y1ea{bottom:75.832000pt;}
.ydd{bottom:76.202667pt;}
.y1a7{bottom:76.260000pt;}
.yd2{bottom:76.714667pt;}
.y1df{bottom:77.321333pt;}
.y206{bottom:77.889333pt;}
.y162{bottom:78.762667pt;}
.y18a{bottom:78.902667pt;}
.y7d{bottom:78.958667pt;}
.yc3{bottom:79.580000pt;}
.y1b3{bottom:80.276000pt;}
.y67{bottom:80.512000pt;}
.y14a{bottom:81.413333pt;}
.y108{bottom:81.548000pt;}
.y101{bottom:81.762667pt;}
.y214{bottom:81.865333pt;}
.y40{bottom:81.921333pt;}
.yf4{bottom:83.349333pt;}
.ya9{bottom:84.226667pt;}
.ye7{bottom:84.558667pt;}
.y55{bottom:84.574667pt;}
.y36{bottom:84.608000pt;}
.y13c{bottom:85.733333pt;}
.y232{bottom:85.838667pt;}
.yb6{bottom:86.124000pt;}
.y72{bottom:86.453333pt;}
.y17b{bottom:86.878667pt;}
.y242{bottom:87.114667pt;}
.y130{bottom:87.128000pt;}
.y11e{bottom:88.268000pt;}
.y24d{bottom:88.308000pt;}
.y226{bottom:90.128000pt;}
.y126{bottom:90.260000pt;}
.y153{bottom:90.617333pt;}
.y1a6{bottom:90.772000pt;}
.y14{bottom:91.625333pt;}
.y170{bottom:92.113333pt;}
.y205{bottom:92.401333pt;}
.ydc{bottom:93.006667pt;}
.y189{bottom:93.414667pt;}
.yd1{bottom:93.517333pt;}
.yc2{bottom:94.092000pt;}
.y1de{bottom:94.124000pt;}
.y4{bottom:94.326667pt;}
.y159{bottom:94.374667pt;}
.y1cd{bottom:94.918667pt;}
.y213{bottom:96.377333pt;}
.y9f{bottom:96.453333pt;}
.y1d4{bottom:96.682667pt;}
.y66{bottom:97.316000pt;}
.y84{bottom:97.561333pt;}
.y1d{bottom:98.512000pt;}
.y100{bottom:98.565333pt;}
.y3f{bottom:98.724000pt;}
.y197{bottom:99.706667pt;}
.y149{bottom:99.744000pt;}
.y1c1{bottom:100.057333pt;}
.yf3{bottom:100.153333pt;}
.yb5{bottom:100.637333pt;}
.y71{bottom:100.965333pt;}
.ya8{bottom:101.029333pt;}
.y241{bottom:101.626667pt;}
.yb{bottom:102.822667pt;}
.y1f6{bottom:103.656000pt;}
.y11d{bottom:103.742667pt;}
.yf2{bottom:103.905333pt;}
.y12f{bottom:103.932000pt;}
.y95{bottom:104.270667pt;}
.y35{bottom:104.400000pt;}
.y225{bottom:104.640000pt;}
.y1a5{bottom:105.284000pt;}
.y125{bottom:105.736000pt;}
.y54{bottom:106.624000pt;}
.y16f{bottom:106.625333pt;}
.y204{bottom:106.913333pt;}
.y231{bottom:107.909333pt;}
.y188{bottom:107.926667pt;}
.y28{bottom:108.374667pt;}
.yc1{bottom:108.604000pt;}
.y1e9{bottom:108.904000pt;}
.y152{bottom:108.949333pt;}
.ydb{bottom:109.810667pt;}
.yd0{bottom:110.321333pt;}
.y212{bottom:110.889333pt;}
.y1dd{bottom:110.928000pt;}
.y7c{bottom:110.992000pt;}
.y1cc{bottom:111.721333pt;}
.y8b{bottom:111.749333pt;}
.y5c{bottom:111.752000pt;}
.y65{bottom:114.118667pt;}
.y1b2{bottom:114.165333pt;}
.y1c0{bottom:114.569333pt;}
.yb4{bottom:115.149333pt;}
.y107{bottom:115.156000pt;}
.yff{bottom:115.369333pt;}
.y70{bottom:115.478667pt;}
.y3e{bottom:115.528000pt;}
.y240{bottom:116.138667pt;}
.y196{bottom:116.509333pt;}
.ye6{bottom:116.956000pt;}
.y24c{bottom:117.020000pt;}
.y13{bottom:117.228000pt;}
.y1d3{bottom:117.457333pt;}
.ya7{bottom:117.833333pt;}
.y148{bottom:118.076000pt;}
.y224{bottom:119.152000pt;}
.y13b{bottom:119.341333pt;}
.y1a4{bottom:119.796000pt;}
.y49{bottom:120.217333pt;}
.y11c{bottom:120.546667pt;}
.yf1{bottom:120.709333pt;}
.y17a{bottom:120.937333pt;}
.y16e{bottom:121.137333pt;}
.y124{bottom:121.210667pt;}
.y203{bottom:121.425333pt;}
.y1ed{bottom:122.440000pt;}
.y1e8{bottom:123.416000pt;}
.y1c{bottom:124.114667pt;}
.y94{bottom:125.046667pt;}
.y211{bottom:125.401333pt;}
.y161{bottom:126.104000pt;}
.y160{bottom:126.105333pt;}
.yda{bottom:126.613333pt;}
.ycf{bottom:127.125333pt;}
.ya{bottom:128.426667pt;}
.y83{bottom:128.964000pt;}
.y1bf{bottom:129.081333pt;}
.y27{bottom:129.362667pt;}
.yb3{bottom:129.661333pt;}
.y158{bottom:129.728000pt;}
.y151{bottom:129.937333pt;}
.y6f{bottom:129.990667pt;}
.y1f5{bottom:130.474667pt;}
.y23f{bottom:130.650667pt;}
.y64{bottom:130.922667pt;}
.y106{bottom:131.958667pt;}
.yfe{bottom:132.173333pt;}
.y3d{bottom:132.332000pt;}
.y89{bottom:132.524000pt;}
.y8a{bottom:132.525333pt;}
.y9e{bottom:133.169333pt;}
.y195{bottom:133.313333pt;}
.y223{bottom:133.664000pt;}
.ye5{bottom:133.760000pt;}
.y1a3{bottom:134.308000pt;}
.ya6{bottom:134.637333pt;}
.y16d{bottom:135.649333pt;}
.y202{bottom:135.937333pt;}
.y230{bottom:135.957333pt;}
.y13a{bottom:136.144000pt;}
.y147{bottom:136.406667pt;}
.y187{bottom:136.952000pt;}
.y48{bottom:137.020000pt;}
.yc0{bottom:137.034667pt;}
.yf0{bottom:137.512000pt;}
.y12e{bottom:137.538667pt;}
.y1e7{bottom:137.928000pt;}
.y34{bottom:137.981333pt;}
.y24b{bottom:138.420000pt;}
.y210{bottom:139.913333pt;}
.y116{bottom:142.397333pt;}
.y12{bottom:142.832000pt;}
.yd9{bottom:143.417333pt;}
.y1be{bottom:143.593333pt;}
.yce{bottom:143.928000pt;}
.yb2{bottom:144.173333pt;}
.y1b1{bottom:144.240000pt;}
.y1dc{bottom:144.534667pt;}
.y23e{bottom:145.162667pt;}
.y1cb{bottom:145.329333pt;}
.y53{bottom:145.452000pt;}
.y222{bottom:148.176000pt;}
.y5b{bottom:148.466667pt;}
.y1a2{bottom:148.820000pt;}
.yfd{bottom:148.976000pt;}
.y3c{bottom:149.134667pt;}
.y1d2{bottom:149.388000pt;}
.y1b{bottom:149.718667pt;}
.y194{bottom:150.117333pt;}
.y16c{bottom:150.162667pt;}
.y26{bottom:150.350667pt;}
.y201{bottom:150.450667pt;}
.y157{bottom:150.504000pt;}
.ye4{bottom:150.564000pt;}
.y1ec{bottom:151.464000pt;}
.y63{bottom:152.044000pt;}
.y1e6{bottom:152.440000pt;}
.y47{bottom:153.824000pt;}
.y9d{bottom:153.944000pt;}
.y9{bottom:154.030667pt;}
.yef{bottom:154.316000pt;}
.y20f{bottom:154.425333pt;}
.y33{bottom:154.784000pt;}
.y179{bottom:154.996000pt;}
.y93{bottom:155.120000pt;}
.y146{bottom:157.394667pt;}
.y24a{bottom:158.045333pt;}
.yb1{bottom:158.685333pt;}
.y115{bottom:159.201333pt;}
.y23d{bottom:159.674667pt;}
.y1f4{bottom:159.737333pt;}
.y7b{bottom:159.814667pt;}
.y105{bottom:160.221333pt;}
.y82{bottom:160.365333pt;}
.y88{bottom:160.573333pt;}
.ycd{bottom:160.732000pt;}
.y1db{bottom:161.338667pt;}
.y1ca{bottom:162.132000pt;}
.y6e{bottom:162.240000pt;}
.y52{bottom:162.256000pt;}
.y221{bottom:162.688000pt;}
.y1a1{bottom:163.332000pt;}
.y22f{bottom:164.669333pt;}
.y16b{bottom:164.674667pt;}
.y236{bottom:164.962667pt;}
.y1b0{bottom:165.014667pt;}
.ybf{bottom:165.082667pt;}
.yfc{bottom:165.780000pt;}
.y3b{bottom:165.938667pt;}
.y186{bottom:165.976000pt;}
.y193{bottom:166.920000pt;}
.ye3{bottom:167.366667pt;}
.ya5{bottom:168.244000pt;}
.y11{bottom:168.436000pt;}
.y20e{bottom:168.938667pt;}
.y5a{bottom:169.242667pt;}
.y150{bottom:169.309333pt;}
.y139{bottom:169.752000pt;}
.y3{bottom:170.858667pt;}
.yee{bottom:171.120000pt;}
.y156{bottom:171.278667pt;}
.y25{bottom:171.305333pt;}
.y32{bottom:171.588000pt;}
.y1bd{bottom:172.617333pt;}
.yb0{bottom:173.197333pt;}
.y15f{bottom:173.446667pt;}
.y23c{bottom:174.188000pt;}
.y114{bottom:174.676000pt;}
.y178{bottom:175.770667pt;}
.y92{bottom:175.894667pt;}
.yd8{bottom:177.024000pt;}
.y220{bottom:177.200000pt;}
.ycc{bottom:177.536000pt;}
.y1a0{bottom:177.844000pt;}
.y12d{bottom:177.921333pt;}
.y1f3{bottom:178.068000pt;}
.y51{bottom:179.058667pt;}
.y46{bottom:179.129333pt;}
.y16a{bottom:179.186667pt;}
.y1d1{bottom:179.461333pt;}
.y200{bottom:179.474667pt;}
.y8{bottom:179.633333pt;}
.y185{bottom:180.488000pt;}
.y7a{bottom:180.590667pt;}
.y11a{bottom:180.653333pt;}
.y87{bottom:181.348000pt;}
.y1e5{bottom:181.464000pt;}
.yfb{bottom:182.584000pt;}
.y20d{bottom:183.450667pt;}
.y192{bottom:183.724000pt;}
.ye2{bottom:184.170667pt;}
.y20{bottom:184.330667pt;}
.y6d{bottom:184.556000pt;}
.y3a{bottom:185.730667pt;}
.ybe{bottom:185.857333pt;}
.y138{bottom:186.554667pt;}
.y1bc{bottom:187.129333pt;}
.y22e{bottom:187.218667pt;}
.y249{bottom:187.374667pt;}
.y14f{bottom:187.640000pt;}
.yaf{bottom:187.709333pt;}
.yed{bottom:187.922667pt;}
.y23b{bottom:188.700000pt;}
.y1a{bottom:190.586667pt;}
.y9c{bottom:190.660000pt;}
.y31{bottom:191.380000pt;}
.y113{bottom:191.480000pt;}
.y21f{bottom:191.713333pt;}
.y81{bottom:191.768000pt;}
.y19f{bottom:192.357333pt;}
.y155{bottom:193.349333pt;}
.y169{bottom:193.698667pt;}
.yd7{bottom:193.828000pt;}
.y1ff{bottom:193.986667pt;}
.y10{bottom:194.040000pt;}
.y62{bottom:194.072000pt;}
.y15e{bottom:194.222667pt;}
.ycb{bottom:194.338667pt;}
.y1da{bottom:194.945333pt;}
.y184{bottom:195.000000pt;}
.y1c9{bottom:195.740000pt;}
.y50{bottom:195.862667pt;}
.y10e{bottom:195.896000pt;}
.y1e4{bottom:195.976000pt;}
.y119{bottom:196.129333pt;}
.y145{bottom:196.766667pt;}
.y1af{bottom:196.945333pt;}
.y20c{bottom:197.962667pt;}
.y12c{bottom:198.696000pt;}
.yfa{bottom:199.386667pt;}
.y1d0{bottom:200.237333pt;}
.y191{bottom:200.528000pt;}
.ye1{bottom:200.974667pt;}
.y1bb{bottom:201.642667pt;}
.ya4{bottom:201.984000pt;}
.yae{bottom:202.221333pt;}
.y1f2{bottom:203.041333pt;}
.y23a{bottom:203.212000pt;}
.y137{bottom:203.358667pt;}
.yec{bottom:204.726667pt;}
.y7{bottom:205.237333pt;}
.y59{bottom:205.957333pt;}
.y91{bottom:205.969333pt;}
.y14e{bottom:205.970667pt;}
.y21e{bottom:206.225333pt;}
.y6c{bottom:206.872000pt;}
.y22d{bottom:207.994667pt;}
.y248{bottom:208.149333pt;}
.y168{bottom:208.210667pt;}
.y112{bottom:208.284000pt;}
.y1fe{bottom:208.498667pt;}
.y79{bottom:208.638667pt;}
.y183{bottom:209.512000pt;}
.y1e3{bottom:210.489333pt;}
.yd6{bottom:210.632000pt;}
.yca{bottom:211.142667pt;}
.y9b{bottom:211.434667pt;}
.y118{bottom:211.604000pt;}
.y177{bottom:211.686667pt;}
.y1d9{bottom:211.749333pt;}
.y61{bottom:212.404000pt;}
.y20b{bottom:212.474667pt;}
.y24{bottom:213.301333pt;}
.ybd{bottom:213.905333pt;}
.y144{bottom:215.097333pt;}
.y1ba{bottom:216.154667pt;}
.y19{bottom:216.190667pt;}
.y19e{bottom:216.286667pt;}
.y190{bottom:217.330667pt;}
.y239{bottom:217.724000pt;}
.y4f{bottom:217.912000pt;}
.y45{bottom:219.512000pt;}
.yf{bottom:219.644000pt;}
.y136{bottom:220.162667pt;}
.y21d{bottom:220.737333pt;}
.y1f1{bottom:221.372000pt;}
.y2{bottom:221.396000pt;}
.y167{bottom:222.722667pt;}
.y1fd{bottom:223.010667pt;}
.y80{bottom:223.169333pt;}
.y30{bottom:223.296000pt;}
.yf8{bottom:223.429333pt;}
.y1c8{bottom:223.689333pt;}
.y111{bottom:223.758667pt;}
.y182{bottom:224.025333pt;}
.y14d{bottom:224.302667pt;}
.y58{bottom:226.733333pt;}
.y90{bottom:226.744000pt;}
.y1ae{bottom:227.018667pt;}
.y117{bottom:227.080000pt;}
.ye0{bottom:227.408000pt;}
.yd5{bottom:227.434667pt;}
.y1d8{bottom:228.553333pt;}
.y6b{bottom:229.188000pt;}
.y78{bottom:229.413333pt;}
.y22c{bottom:230.065333pt;}
.y1b9{bottom:230.666667pt;}
.y60{bottom:230.734667pt;}
.yad{bottom:231.246667pt;}
.y238{bottom:232.236000pt;}
.yf9{bottom:232.994667pt;}
.y143{bottom:233.429333pt;}
.yeb{bottom:233.817333pt;}
.y1cf{bottom:234.044000pt;}
.y18f{bottom:234.134667pt;}
.y23{bottom:234.289333pt;}
.ybc{bottom:234.681333pt;}
.y21c{bottom:235.249333pt;}
.y44{bottom:236.314667pt;}
.y19d{bottom:236.494667pt;}
.y166{bottom:237.234667pt;}
.y1fc{bottom:237.522667pt;}
.y181{bottom:238.537333pt;}
.y110{bottom:239.233333pt;}
.y1e2{bottom:239.513333pt;}
.y2f{bottom:240.100000pt;}
.yc9{bottom:240.233333pt;}
.y15d{bottom:241.565333pt;}
.y18{bottom:241.794667pt;}
.yf7{bottom:244.205333pt;}
.yd4{bottom:244.238667pt;}
.y1c7{bottom:244.465333pt;}
.y1b8{bottom:245.178667pt;}
.ye{bottom:245.248000pt;}
.y1d7{bottom:245.356000pt;}
.y176{bottom:245.745333pt;}
.y14c{bottom:247.794667pt;}
.y9a{bottom:248.150667pt;}
.y1{bottom:248.893333pt;}
.y1f0{bottom:249.413333pt;}
.y21b{bottom:249.761333pt;}
.y86{bottom:249.797333pt;}
.y77{bottom:250.189333pt;}
.y18e{bottom:250.938667pt;}
.ya3{bottom:251.504000pt;}
.y4e{bottom:251.970667pt;}
.y1fb{bottom:252.034667pt;}
.y180{bottom:253.049333pt;}
.y43{bottom:253.118667pt;}
.y135{bottom:253.769333pt;}
.y1e1{bottom:254.025333pt;}
.y142{bottom:254.417333pt;}
.y5f{bottom:254.446667pt;}
.y7f{bottom:254.572000pt;}
.y10f{bottom:254.709333pt;}
.y22{bottom:255.277333pt;}
.y57{bottom:255.456000pt;}
.y2e{bottom:256.904000pt;}
.y165{bottom:259.441333pt;}
.y1b7{bottom:259.690667pt;}
.y1ad{bottom:260.826667pt;}
.yc8{bottom:261.009333pt;}
.y104{bottom:261.042667pt;}
.y1ce{bottom:262.092000pt;}
.y19c{bottom:262.098667pt;}
.y15c{bottom:262.340000pt;}
.y21a{bottom:264.273333pt;}
.y1fa{bottom:266.548000pt;}
.y17{bottom:267.398667pt;}
.y17f{bottom:267.561333pt;}
.y99{bottom:268.925333pt;}
.yd{bottom:270.852000pt;}
.y4d{bottom:272.746667pt;}
.y1b6{bottom:274.202667pt;}
.y2d{bottom:275.568000pt;}
.y21{bottom:276.232000pt;}
.y10d{bottom:277.229333pt;}
.yd3{bottom:277.845333pt;}
.y1d6{bottom:278.964000pt;}
.y134{bottom:280.204000pt;}
.y164{bottom:280.217333pt;}
.y1f9{bottom:281.060000pt;}
.y17e{bottom:282.073333pt;}
.y219{bottom:282.494667pt;}
.y19b{bottom:282.873333pt;}
.y1b5{bottom:288.714667pt;}
.y6{bottom:314.865333pt;}
.hd{height:29.499997pt;}
.h8{height:31.880400pt;}
.hc{height:33.187635pt;}
.hb{height:35.865600pt;}
.h9{height:36.768636pt;}
.h5{height:39.850400pt;}
.ha{height:43.636400pt;}
.h4{height:44.250180pt;}
.h6{height:47.820800pt;}
.h7{height:57.384800pt;}
.h3{height:78.903200pt;}
.h2{height:99.148400pt;}
.h0{height:340.157333pt;}
.h1{height:340.666667pt;}
.w0{width:604.724000pt;}
.w1{width:605.333333pt;}
.x0{left:0.000000pt;}
.x4{left:14.222667pt;}
.x1a{left:20.377333pt;}
.x1{left:37.794667pt;}
.xf{left:41.780000pt;}
.x5{left:45.984000pt;}
.xd{left:47.625333pt;}
.x9{left:49.281333pt;}
.x10{left:52.272000pt;}
.x1b{left:54.210667pt;}
.x17{left:60.609333pt;}
.x22{left:62.569333pt;}
.x15{left:64.362667pt;}
.x6{left:67.314667pt;}
.xa{left:70.870667pt;}
.xc{left:83.856000pt;}
.x12{left:85.325333pt;}
.x16{left:86.944000pt;}
.x14{left:91.992000pt;}
.xb{left:95.977333pt;}
.x13{left:100.598667pt;}
.x20{left:109.526667pt;}
.x18{left:117.097333pt;}
.x2{left:140.005333pt;}
.x8{left:142.362667pt;}
.x21{left:154.690667pt;}
.x19{left:168.612000pt;}
.x1f{left:171.626667pt;}
.x1e{left:222.436000pt;}
.x23{left:223.797333pt;}
.x11{left:261.821333pt;}
.x1c{left:334.717333pt;}
.x1d{left:351.546667pt;}
.x3{left:504.940000pt;}
.xe{left:565.870667pt;}
.x7{left:571.516000pt;}
}
</style>
<script>
/*
Copyright 2012 Mozilla Foundation
Copyright 2013 Lu Wang <coolwanglu@gmail.com>
Apachine License Version 2.0
*/
(function(){function b(a,b,e,f){var c=(a.className||"").split(/\s+/g);""===c[0]&&c.shift();var d=c.indexOf(b);0>d&&e&&c.push(b);0<=d&&f&&c.splice(d,1);a.className=c.join(" ");return 0<=d}if(!("classList"in document.createElement("div"))){var e={add:function(a){b(this.element,a,!0,!1)},contains:function(a){return b(this.element,a,!1,!1)},remove:function(a){b(this.element,a,!1,!0)},toggle:function(a){b(this.element,a,!0,!0)}};Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){if(this._classList)return this._classList;
var a=Object.create(e,{element:{value:this,writable:!1,enumerable:!0}});Object.defineProperty(this,"_classList",{value:a,writable:!1,enumerable:!1});return a},enumerable:!0})}})();
</script>
<script>
(function(){/*
pdf2htmlEX.js: Core UI functions for pdf2htmlEX
Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com> and other contributors
https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/
var pdf2htmlEX=window.pdf2htmlEX=window.pdf2htmlEX||{},CSS_CLASS_NAMES={page_frame:"pf",page_content_box:"pc",page_data:"pi",background_image:"bi",link:"l",input_radio:"ir",__dummy__:"no comma"},DEFAULT_CONFIG={container_id:"page-container",sidebar_id:"sidebar",outline_id:"outline",loading_indicator_cls:"loading-indicator",preload_pages:3,render_timeout:100,scale_step:0.9,key_handler:!0,hashchange_handler:!0,view_history_handler:!0,__dummy__:"no comma"},EPS=1E-6;
function invert(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[3]*a[4])/b,(a[1]*a[4]-a[0]*a[5])/b]}function transform(a,b){return[a[0]*b[0]+a[2]*b[1]+a[4],a[1]*b[0]+a[3]*b[1]+a[5]]}function get_page_number(a){return parseInt(a.getAttribute("data-page-no"),16)}function disable_dragstart(a){for(var b=0,c=a.length;b<c;++b)a[b].addEventListener("dragstart",function(){return!1},!1)}
function clone_and_extend_objs(a){for(var b={},c=0,e=arguments.length;c<e;++c){var h=arguments[c],d;for(d in h)h.hasOwnProperty(d)&&(b[d]=h[d])}return b}
function Page(a){if(a){this.shown=this.loaded=!1;this.page=a;this.num=get_page_number(a);this.original_height=a.clientHeight;this.original_width=a.clientWidth;var b=a.getElementsByClassName(CSS_CLASS_NAMES.page_content_box)[0];b&&(this.content_box=b,this.original_scale=this.cur_scale=this.original_height/b.clientHeight,this.page_data=JSON.parse(a.getElementsByClassName(CSS_CLASS_NAMES.page_data)[0].getAttribute("data-data")),this.ctm=this.page_data.ctm,this.ictm=invert(this.ctm),this.loaded=!0)}}
Page.prototype={hide:function(){this.loaded&&this.shown&&(this.content_box.classList.remove("opened"),this.shown=!1)},show:function(){this.loaded&&!this.shown&&(this.content_box.classList.add("opened"),this.shown=!0)},rescale:function(a){this.cur_scale=0===a?this.original_scale:a;this.loaded&&(a=this.content_box.style,a.msTransform=a.webkitTransform=a.transform="scale("+this.cur_scale.toFixed(3)+")");a=this.page.style;a.height=this.original_height*this.cur_scale+"px";a.width=this.original_width*this.cur_scale+
"px"},view_position:function(){var a=this.page,b=a.parentNode;return[b.scrollLeft-a.offsetLeft-a.clientLeft,b.scrollTop-a.offsetTop-a.clientTop]},height:function(){return this.page.clientHeight},width:function(){return this.page.clientWidth}};function Viewer(a){this.config=clone_and_extend_objs(DEFAULT_CONFIG,0<arguments.length?a:{});this.pages_loading=[];this.init_before_loading_content();var b=this;document.addEventListener("DOMContentLoaded",function(){b.init_after_loading_content()},!1)}
Viewer.prototype={scale:1,cur_page_idx:0,first_page_idx:0,init_before_loading_content:function(){this.pre_hide_pages()},initialize_radio_button:function(){for(var a=document.getElementsByClassName(CSS_CLASS_NAMES.input_radio),b=0;b<a.length;b++)a[b].addEventListener("click",function(){this.classList.toggle("checked")})},init_after_loading_content:function(){this.sidebar=document.getElementById(this.config.sidebar_id);this.outline=document.getElementById(this.config.outline_id);this.container=document.getElementById(this.config.container_id);
this.loading_indicator=document.getElementsByClassName(this.config.loading_indicator_cls)[0];for(var a=!0,b=this.outline.childNodes,c=0,e=b.length;c<e;++c)if("ul"===b[c].nodeName.toLowerCase()){a=!1;break}a||this.sidebar.classList.add("opened");this.find_pages();if(0!=this.pages.length){disable_dragstart(document.getElementsByClassName(CSS_CLASS_NAMES.background_image));this.config.key_handler&&this.register_key_handler();var h=this;this.config.hashchange_handler&&window.addEventListener("hashchange",
function(a){h.navigate_to_dest(document.location.hash.substring(1))},!1);this.config.view_history_handler&&window.addEventListener("popstate",function(a){a.state&&h.navigate_to_dest(a.state)},!1);this.container.addEventListener("scroll",function(){h.update_page_idx();h.schedule_render(!0)},!1);[this.container,this.outline].forEach(function(a){a.addEventListener("click",h.link_handler.bind(h),!1)});this.initialize_radio_button();this.render()}},find_pages:function(){for(var a=[],b={},c=this.container.childNodes,
e=0,h=c.length;e<h;++e){var d=c[e];d.nodeType===Node.ELEMENT_NODE&&d.classList.contains(CSS_CLASS_NAMES.page_frame)&&(d=new Page(d),a.push(d),b[d.num]=a.length-1)}this.pages=a;this.page_map=b},load_page:function(a,b,c){var e=this.pages;if(!(a>=e.length||(e=e[a],e.loaded||this.pages_loading[a]))){var e=e.page,h=e.getAttribute("data-page-url");if(h){this.pages_loading[a]=!0;var d=e.getElementsByClassName(this.config.loading_indicator_cls)[0];"undefined"===typeof d&&(d=this.loading_indicator.cloneNode(!0),
d.classList.add("active"),e.appendChild(d));var f=this,g=new XMLHttpRequest;g.open("GET",h,!0);g.onload=function(){if(200===g.status||0===g.status){var b=document.createElement("div");b.innerHTML=g.responseText;for(var d=null,b=b.childNodes,e=0,h=b.length;e<h;++e){var p=b[e];if(p.nodeType===Node.ELEMENT_NODE&&p.classList.contains(CSS_CLASS_NAMES.page_frame)){d=p;break}}b=f.pages[a];f.container.replaceChild(d,b.page);b=new Page(d);f.pages[a]=b;b.hide();b.rescale(f.scale);disable_dragstart(d.getElementsByClassName(CSS_CLASS_NAMES.background_image));
f.schedule_render(!1);c&&c(b)}delete f.pages_loading[a]};g.send(null)}void 0===b&&(b=this.config.preload_pages);0<--b&&(f=this,setTimeout(function(){f.load_page(a+1,b)},0))}},pre_hide_pages:function(){var a="@media screen{."+CSS_CLASS_NAMES.page_content_box+"{display:none;}}",b=document.createElement("style");b.styleSheet?b.styleSheet.cssText=a:b.appendChild(document.createTextNode(a));document.head.appendChild(b)},render:function(){for(var a=this.container,b=a.scrollTop,c=a.clientHeight,a=b-c,b=
b+c+c,c=this.pages,e=0,h=c.length;e<h;++e){var d=c[e],f=d.page,g=f.offsetTop+f.clientTop,f=g+f.clientHeight;g<=b&&f>=a?d.loaded?d.show():this.load_page(e):d.hide()}},update_page_idx:function(){var a=this.pages,b=a.length;if(!(2>b)){for(var c=this.container,e=c.scrollTop,c=e+c.clientHeight,h=-1,d=b,f=d-h;1<f;){var g=h+Math.floor(f/2),f=a[g].page;f.offsetTop+f.clientTop+f.clientHeight>=e?d=g:h=g;f=d-h}this.first_page_idx=d;for(var g=h=this.cur_page_idx,k=0;d<b;++d){var f=a[d].page,l=f.offsetTop+f.clientTop,
f=f.clientHeight;if(l>c)break;f=(Math.min(c,l+f)-Math.max(e,l))/f;if(d===h&&Math.abs(f-1)<=EPS){g=h;break}f>k&&(k=f,g=d)}this.cur_page_idx=g}},schedule_render:function(a){if(void 0!==this.render_timer){if(!a)return;clearTimeout(this.render_timer)}var b=this;this.render_timer=setTimeout(function(){delete b.render_timer;b.render()},this.config.render_timeout)},register_key_handler:function(){var a=this;window.addEventListener("DOMMouseScroll",function(b){if(b.ctrlKey){b.preventDefault();var c=a.container,
e=c.getBoundingClientRect(),c=[b.clientX-e.left-c.clientLeft,b.clientY-e.top-c.clientTop];a.rescale(Math.pow(a.config.scale_step,b.detail),!0,c)}},!1);window.addEventListener("keydown",function(b){var c=!1,e=b.ctrlKey||b.metaKey,h=b.altKey;switch(b.keyCode){case 61:case 107:case 187:e&&(a.rescale(1/a.config.scale_step,!0),c=!0);break;case 173:case 109:case 189:e&&(a.rescale(a.config.scale_step,!0),c=!0);break;case 48:e&&(a.rescale(0,!1),c=!0);break;case 33:h?a.scroll_to(a.cur_page_idx-1):a.container.scrollTop-=
a.container.clientHeight;c=!0;break;case 34:h?a.scroll_to(a.cur_page_idx+1):a.container.scrollTop+=a.container.clientHeight;c=!0;break;case 35:a.container.scrollTop=a.container.scrollHeight;c=!0;break;case 36:a.container.scrollTop=0,c=!0}c&&b.preventDefault()},!1)},rescale:function(a,b,c){var e=this.scale;this.scale=a=0===a?1:b?e*a:a;c||(c=[0,0]);b=this.container;c[0]+=b.scrollLeft;c[1]+=b.scrollTop;for(var h=this.pages,d=h.length,f=this.first_page_idx;f<d;++f){var g=h[f].page;if(g.offsetTop+g.clientTop>=
c[1])break}g=f-1;0>g&&(g=0);var g=h[g].page,k=g.clientWidth,f=g.clientHeight,l=g.offsetLeft+g.clientLeft,m=c[0]-l;0>m?m=0:m>k&&(m=k);k=g.offsetTop+g.clientTop;c=c[1]-k;0>c?c=0:c>f&&(c=f);for(f=0;f<d;++f)h[f].rescale(a);b.scrollLeft+=m/e*a+g.offsetLeft+g.clientLeft-m-l;b.scrollTop+=c/e*a+g.offsetTop+g.clientTop-c-k;this.schedule_render(!0)},fit_width:function(){var a=this.cur_page_idx;this.rescale(this.container.clientWidth/this.pages[a].width(),!0);this.scroll_to(a)},fit_height:function(){var a=this.cur_page_idx;
this.rescale(this.container.clientHeight/this.pages[a].height(),!0);this.scroll_to(a)},get_containing_page:function(a){for(;a;){if(a.nodeType===Node.ELEMENT_NODE&&a.classList.contains(CSS_CLASS_NAMES.page_frame)){a=get_page_number(a);var b=this.page_map;return a in b?this.pages[b[a]]:null}a=a.parentNode}return null},link_handler:function(a){var b=a.target,c=b.getAttribute("data-dest-detail");if(c){if(this.config.view_history_handler)try{var e=this.get_current_view_hash();window.history.replaceState(e,
"","#"+e);window.history.pushState(c,"","#"+c)}catch(h){}this.navigate_to_dest(c,this.get_containing_page(b));a.preventDefault()}},navigate_to_dest:function(a,b){try{var c=JSON.parse(a)}catch(e){return}if(c instanceof Array){var h=c[0],d=this.page_map;if(h in d){for(var f=d[h],h=this.pages[f],d=2,g=c.length;d<g;++d){var k=c[d];if(null!==k&&"number"!==typeof k)return}for(;6>c.length;)c.push(null);var g=b||this.pages[this.cur_page_idx],d=g.view_position(),d=transform(g.ictm,[d[0],g.height()-d[1]]),
g=this.scale,l=[0,0],m=!0,k=!1,n=this.scale;switch(c[1]){case "XYZ":l=[null===c[2]?d[0]:c[2]*n,null===c[3]?d[1]:c[3]*n];g=c[4];if(null===g||0===g)g=this.scale;k=!0;break;case "Fit":case "FitB":l=[0,0];k=!0;break;case "FitH":case "FitBH":l=[0,null===c[2]?d[1]:c[2]*n];k=!0;break;case "FitV":case "FitBV":l=[null===c[2]?d[0]:c[2]*n,0];k=!0;break;case "FitR":l=[c[2]*n,c[5]*n],m=!1,k=!0}if(k){this.rescale(g,!1);var p=this,c=function(a){l=transform(a.ctm,l);m&&(l[1]=a.height()-l[1]);p.scroll_to(f,l)};h.loaded?
c(h):(this.load_page(f,void 0,c),this.scroll_to(f))}}}},scroll_to:function(a,b){var c=this.pages;if(!(0>a||a>=c.length)){c=c[a].view_position();void 0===b&&(b=[0,0]);var e=this.container;e.scrollLeft+=b[0]-c[0];e.scrollTop+=b[1]-c[1]}},get_current_view_hash:function(){var a=[],b=this.pages[this.cur_page_idx];a.push(b.num);a.push("XYZ");var c=b.view_position(),c=transform(b.ictm,[c[0],b.height()-c[1]]);a.push(c[0]/this.scale);a.push(c[1]/this.scale);a.push(this.scale);return JSON.stringify(a)}};
pdf2htmlEX.Viewer=Viewer;})();
</script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar">
<div id="outline">
<ul><li><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",28.346,255.118,null]'>Undefined Behavior</a><ul><li><a class="l" href="#pf7" data-dest-detail='[7,"XYZ",28.346,228.21,null]'>Illegal Behavior</a></li><li><a class="l" href="#pfa" data-dest-detail='[10,"XYZ",28.346,228.21,null]'>Platform Specific Behavior</a></li><li><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",28.346,228.21,null]'>Unspecified Behavior</a></li><li><a class="l" href="#pfd" data-dest-detail='[13,"XYZ",28.346,228.21,null]'>Detecting Undefined Behavior</a></li></ul></li><li><a class="l" href="#pfe" data-dest-detail='[14,"XYZ",28.346,255.118,null]'>Error Handing</a><ul><li><a class="l" href="#pff" data-dest-detail='[15,"XYZ",28.346,223.622,null]'>Recoverable Error Handing</a></li><li><a class="l" href="#pf11" data-dest-detail='[17,"XYZ",28.346,228.21,null]'>Return Code</a></li><li><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",28.346,228.21,null]'>C++ Exceptions</a></li><li><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",28.346,228.21,null]'>Defining Custom Exceptions</a></li><li><a class="l" href="#pf1a" data-dest-detail='[26,"XYZ",28.346,228.21,null]'>noexcept Keyword</a></li><li><a class="l" href="#pf1c" data-dest-detail='[28,"XYZ",28.346,228.21,null]'>Memory Allocation Issues</a></li><li><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",28.346,228.21,null]'>Return Code and Exception Summary</a></li><li><a class="l" href="#pf21" data-dest-detail='[33,"XYZ",28.346,228.21,null]'>std::expected</a></li><li><a class="l" href="#pf23" data-dest-detail='[35,"XYZ",28.346,214.837,null]'>Alternative Error Handling Approaches</a></li></ul></li><li><a class="l" href="#pf25" data-dest-detail='[37,"XYZ",28.346,255.118,null]'>Smart pointers</a><ul><li><a class="l" href="#pf28" data-dest-detail='[40,"XYZ",28.346,228.21,null]'>std::unique_ptr</a></li><li><a class="l" href="#pf2c" data-dest-detail='[44,"XYZ",28.346,228.21,null]'>std::shared_ptr</a></li><li><a class="l" href="#pf2f" data-dest-detail='[47,"XYZ",28.346,204.385,null]'>std::weak_ptr</a></li></ul></li><li><a class="l" href="#pf32" data-dest-detail='[50,"XYZ",28.346,255.118,null]'>Concurrency</a><ul><li><a class="l" href="#pf35" data-dest-detail='[53,"XYZ",28.346,228.21,null]'>Thread Methods</a></li><li><a class="l" href="#pf38" data-dest-detail='[56,"XYZ",28.346,228.21,null]'>Mutex</a></li><li><a class="l" href="#pf3b" data-dest-detail='[59,"XYZ",28.346,228.21,null]'>Atomic</a></li><li><a class="l" href="#pf3c" data-dest-detail='[60,"XYZ",28.346,228.21,null]'>Task-based parallelism</a></li></ul></li></ul></div>
</div>
<div id="page-container">
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Mo<span class="_ _0"></span>dern<span class="_ _1"> </span>C++</div><div class="t m0 x1 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">Programming</div><div class="t m0 x2 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">21.<span class="_ _2"> </span>Ad<span class="_ _3"></span>v<span class="_ _4"></span>anced<span class="_ _5"> </span>Topics<span class="_ _5"> </span>I<span class="_ _0"></span>I</div><div class="t m0 x1 h4 y4 ff3 fs2 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>ederico<span class="_ _6"> </span>Busato</div><div class="t m0 x3 h5 y5 ff4 fs3 fc0 sc0 ls0 ws0">2025-01-30</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _8"> </span>Contents</div><div class="t m0 x5 h7 y7 ff1 fs3 fc2 sc0 ls0 ws0">1<span class="_ _9"> </span><span class="fs4 fc0">Undefined<span class="_ _a"> </span>Behavio<span class="_ _3"></span>r</span></div><div class="t m0 x6 h5 y8 ff4 fs3 fc0 sc0 ls0 ws0">Illegal<span class="_ _b"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x6 h5 y9 ff4 fs3 fc0 sc0 ls0 ws0">Platfo<span class="_ _3"></span>rm<span class="_ _b"> </span>Sp<span class="_ _c"></span>ecific<span class="_ _b"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x6 h5 ya ff4 fs3 fc0 sc0 ls0 ws0">Unsp<span class="_ _c"></span>ecified<span class="_ _b"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x6 h5 yb ff4 fs3 fc0 sc0 ls0 ws0">Detecting<span class="_ _b"> </span>Undefined<span class="_ _b"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">1/56</div><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:151.106000px;width:130.549000px;height:13.781000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf7" data-dest-detail='[7,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:131.792000px;width:65.505000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfa" data-dest-detail='[10,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:112.589000px;width:112.882000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:93.386000px;width:88.792000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfd" data-dest-detail='[13,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:74.183000px;width:126.539000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _8"> </span>Contents</div><div class="t m0 x5 h7 yd ff1 fs3 fc2 sc0 ls0 ws0">2<span class="_ _9"> </span><span class="fs4 fc0">Erro<span class="_ _3"></span>r<span class="_ _a"> </span>Handing</span></div><div class="t m0 x6 h5 ye ff4 fs3 fc0 sc0 ls0 ws0">Recoverable<span class="_ _b"> </span>Erro<span class="_ _3"></span>r<span class="_ _b"> </span>Handing</div><div class="t m0 x6 h5 yf ff4 fs3 fc0 sc0 ls0 ws0">Return<span class="_ _b"> </span>Co<span class="_ _c"></span>de</div><div class="t m0 x6 h5 y10 ff4 fs3 fc0 sc0 ls0 ws0">C++<span class="_ _b"> </span>Exceptions</div><div class="t m0 x6 h5 y11 ff4 fs3 fc0 sc0 ls0 ws0">Defining<span class="_ _b"> </span>Custom<span class="_ _b"> </span>Exceptions</div><div class="t m0 x6 h5 y12 ff6 fs3 fc0 sc0 ls0 ws0">noexcept<span class="_ _b"> </span><span class="ff4">Keyw<span class="_ _3"></span>ord</span></div><div class="t m0 x6 h5 y13 ff4 fs3 fc0 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _b"> </span>Allo<span class="_ _c"></span>cation<span class="_ _b"> </span>Issues</div><div class="t m0 x6 h5 y14 ff4 fs3 fc0 sc0 ls0 ws0">Return<span class="_ _b"> </span>Co<span class="_ _c"></span>de<span class="_ _b"> </span>and<span class="_ _b"> </span>Exception<span class="_ _b"> </span>Summa<span class="_ _3"></span>ry</div><div class="t m0 x6 h9 y15 ff6 fs3 fc0 sc0 ls0 ws0">std::expected</div><div class="t m0 x6 h5 y16 ff4 fs3 fc0 sc0 ls0 ws0">Alternative<span class="_ _b"> </span>Erro<span class="_ _3"></span>r<span class="_ _b"> </span>Handling<span class="_ _b"> </span>Approaches</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">2/56</div><a class="l" href="#pfe" data-dest-detail='[14,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:199.353000px;width:94.566000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pff" data-dest-detail='[15,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:181.003000px;width:113.587000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf11" data-dest-detail='[17,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:163.737000px;width:54.669000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:142.597000px;width:71.648000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:123.394000px;width:119.551000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1a" data-dest-detail='[26,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:103.971000px;width:82.883000px;height:11.068000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1c" data-dest-detail='[28,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:84.988000px;width:108.178000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:65.785000px;width:159.387000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf21" data-dest-detail='[33,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:46.362000px;width:69.987000px;height:10.123000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf23" data-dest-detail='[35,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:27.379000px;width:162.889000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _8"> </span>Contents</div><div class="t m0 x5 h7 y17 ff1 fs3 fc2 sc0 ls0 ws0">3<span class="_ _9"> </span><span class="fs4 fc0">Sma<span class="_ _3"></span>rt<span class="_ _a"> </span>p<span class="_ _c"></span>ointers</span></div><div class="t m0 x6 h9 y18 ff6 fs3 fc0 sc0 ls0 ws0">std::unique_ptr</div><div class="t m0 x6 h9 y19 ff6 fs3 fc0 sc0 ls0 ws0">std::shared_ptr</div><div class="t m0 x6 h9 y1a ff6 fs3 fc0 sc0 ls0 ws0">std::weak_ptr</div><div class="t m0 x5 h7 y1b ff1 fs3 fc2 sc0 ls0 ws0">4<span class="_ _9"> </span><span class="fs4 fc0">Concurrency</span></div><div class="t m0 x6 h5 y1c ff4 fs3 fc0 sc0 ls0 ws0">Thread<span class="_ _b"> </span>Metho<span class="_ _c"></span>ds</div><div class="t m0 x6 h5 y1d ff4 fs3 fc0 sc0 ls0 ws0">Mutex</div><div class="t m0 x6 h5 y1e ff4 fs3 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>tomic</div><div class="t m0 x6 h5 y1f ff4 fs3 fc0 sc0 ls0 ws0">T<span class="_ _d"></span>ask-based<span class="_ _b"> </span>pa<span class="_ _3"></span>rallelism</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">3/56</div><a class="l" href="#pf25" data-dest-detail='[37,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:196.763000px;width:99.299000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf28" data-dest-detail='[40,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:178.192000px;width:80.448000px;height:10.123000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf2c" data-dest-detail='[44,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:158.989000px;width:80.448000px;height:10.123000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf2f" data-dest-detail='[47,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:139.786000px;width:69.987000px;height:10.123000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf32" data-dest-detail='[50,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:108.504000px;width:83.328000px;height:14.744000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf35" data-dest-detail='[53,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:92.090000px;width:71.122000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf38" data-dest-detail='[56,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:72.887000px;width:28.476000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3b" data-dest-detail='[59,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:53.684000px;width:31.659000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3c" data-dest-detail='[60,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:32.544000px;width:94.922000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXUlEQVR42u3ZsQnDQAyG0bsQkTIzGDJCNgiZLUtkQ1curea8gguDZXhvABV/9YF6ZjYAACgjIm5WAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAC7mbgLOtfymo07N3789AY7yen+MwIl6ZloBAIA6IsK7HwCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAHr0/H2NZWxtjWAMAgBI2GvET9SiO3KMAAAAASUVORK5CYII="/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Undefined<span class="_ _1"> </span>Behavio<span class="_ _d"></span>r</div><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:137.252000px;width:224.109000px;height:19.206000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf6" class="pf w0 h0" data-page-no="6"><div class="pc pc6 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIfklEQVR42u3ZoQ0CMRiG4Su5BskMBMUEhKBJWAHBPCzBBghmIEEwBBugTnHUFIcmqP/geSa4fjVvemm2WDUAABDG7XoZWQEAgGhEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAb6mUYgUAAOLIOXtJBQAgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAA/6odyoc++n6z3bkwGJbz6WgEAL6QSilWAAAgjpyz3/0AAIQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAAPtB2++nQz3BfH1wkAMDPmC83KU3GtXs2Ta3VIAAAhPACU30dAgnDtoIAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _8"> </span>Overview</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Undefined<span class="_ _6"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _e"> </span><span class="ff4">means<span class="_ _e"> </span>that<span class="_ _b"> </span>the<span class="_ _e"> </span>semantic<span class="_ _e"> </span>of<span class="_ _e"> </span>certain<span class="_ _b"> </span>op<span class="_ _c"></span>erations<span class="_ _e"> </span>is</span></div><div class="t m0 x9 h5 y22 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Unsp<span class="_ _c"></span>ecified<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _f"></span><span class="ff4">:<span class="_ _8"> </span>outside<span class="_ _b"> </span>the<span class="_ _b"> </span>language/libra<span class="_ _3"></span>ry<span class="_ _b"> </span>specification,<span class="_ _b"> </span>tw<span class="_ _3"></span>o<span class="_ _b"> </span>or<span class="_ _b"> </span>mo<span class="_ _3"></span>re<span class="_ _b"> </span>choices</span></span></div><div class="t m0 x9 h5 y23 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Illegal<span class="_ _f"></span><span class="ff4">:<span class="_ _8"> </span>the<span class="_ _b"> </span>compiler<span class="_ _b"> </span>presumes<span class="_ _b"> </span>that<span class="_ _b"> </span>such<span class="_ _b"> </span>operations<span class="_ _b"> </span>never<span class="_ _b"> </span>happ<span class="_ _c"></span>en,<span class="_ _b"> </span>e.g.<span class="_ _8"> </span>integer<span class="_ _b"> </span>overflo<span class="_ _3"></span>w</span></span></div><div class="t m0 x9 h5 y24 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Implementation-defined<span class="_ _b"> </span>behavior<span class="_ _0"></span><span class="ff4">:<span class="_ _8"> </span>dep<span class="_ _c"></span>ends<span class="_ _10"> </span>on<span class="_ _10"> </span>the<span class="_ _10"> </span>compiler<span class="_ _b"> </span>and/o<span class="_ _3"></span>r<span class="_ _10"> </span>platform<span class="_ _10"> </span>(not<span class="_ _10"> </span>p<span class="_ _c"></span>o<span class="_ _3"></span>rtable)</span></span></div><div class="t m0 x1 ha y25 ff4 fs6 fc0 sc0 ls0 ws0">Motivations<span class="_ _e"> </span>behind<span class="_ _e"> </span>undefined<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r:</div><div class="t m0 x9 h5 y26 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Compiler<span class="_ _b"> </span>optimizations<span class="ff4">,<span class="_ _b"> </span>e.g.<span class="_ _8"> </span>signed<span class="_ _b"> </span>overflow<span class="_ _b"> </span>o<span class="_ _3"></span>r<span class="_ _b"> </span>NULL<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>dereferencing</span></span></div><div class="t m0 x9 h5 y27 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Simplify<span class="_ _b"> </span>compile<span class="_ _b"> </span>checks</span></div><div class="t m0 x9 h5 y28 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff8">Unfeasible/exp<span class="_ _c"></span>ensive<span class="_ _e"> </span><span class="ff4">to<span class="_ _b"> </span>check</span></span></div><div class="t m0 x9 hb y29 ff9 fs7 fc3 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffa">What<span class="_ _11"> </span>Every<span class="_ _11"> </span>C<span class="_ _8"> </span>Programmer<span class="_ _11"> </span>Should<span class="_ _11"> </span>Know<span class="_ _8"> </span>About<span class="_ _11"> </span>Undefined<span class="_ _8"> </span>Behavior<span class="ffb">,<span class="_ _b"> </span><span class="ffc">Chris<span class="_ _10"> </span>Lattner</span></span></span></div><div class="t m0 x9 hb y2a ff9 fs7 fc3 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffa">What<span class="_ _11"> </span>are<span class="_ _11"> </span>all<span class="_ _8"> </span>the<span class="_ _11"> </span>common<span class="_ _11"> </span>undefined<span class="_ _8"> </span>behaviors<span class="_ _11"> </span>that<span class="_ _8"> </span>a<span class="_ _11"> </span>C++<span class="_ _11"> </span>programmer<span class="_ _8"> </span>should<span class="_ _11"> </span>know</span></div><div class="t m0 x6 hc y2b ffa fs7 fc3 sc0 ls0 ws0">about?</div><div class="t m0 x9 hb y2c ff9 fs7 fc3 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffa">Enumerating<span class="_ _11"> </span>Core<span class="_ _11"> </span>Undefined<span class="_ _8"> </span>Behavior</span></div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">4/56</div><a class="l" href="http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:41.082000px;width:341.760000px;height:10.212000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviours-that-a-c-programmer-should-know-a"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:29.476000px;width:377.025000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviours-that-a-c-programmer-should-know-a"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:18.866000px;width:30.237000px;height:7.373000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1705r1.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:5.267000px;width:166.750000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf7" class="pf w0 h0" data-page-no="7"><div class="pc pc7 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Illegal<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _12"> </span>1/3</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">const_cast<span class="_ _14"> </span><span class="ff1">applied<span class="_ _6"> </span>to<span class="_ _e"> </span>a<span class="_ _14"> </span></span>const<span class="_ _14"> </span><span class="ff1">variables</span></span></div><div class="t m0 xa hc y2e ff6 fs7 fc4 sc0 ls0 ws0">const<span class="_ _11"> </span><span class="fc5">int<span class="_ _15"> </span><span class="ffa fc0">var<span class="_ _16"> </span><span class="fc6">=<span class="_ _11"> </span>3</span>;</span></span></div><div class="t m0 xa hc y2f ff6 fs7 fc4 sc0 ls0 ws0">const_cast<span class="ffa fc6">&lt;</span><span class="fc5">int<span class="ffa fc6">&amp;&gt;<span class="fc0">(var)<span class="_ _11"> </span></span>=<span class="_ _8"> </span>4<span class="fc0">;</span></span></span></div><div class="t m0 xa hc y30 ffa fs7 fc0 sc0 ls0 ws0">...<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>use<span class="_ _11"> </span>var</span></div><div class="t m0 x9 ha y31 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>alignment</span></div><div class="t m0 xa hc y32 ff6 fs7 fc5 sc0 ls0 ws0">char<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc0">ptr<span class="_ _1"> </span></span>=<span class="_ _11"> </span></span><span class="fc4">new<span class="_ _11"> </span></span>char<span class="ffa fc0">[<span class="fc6">512</span>];</span></div><div class="t m0 xa hc y33 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _16"> </span><span class="ffa fc0">ptr2<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span></span></span>reinterpret_cast<span class="ffa fc6">&lt;</span><span class="fc5">uint64_t<span class="ffa fc6">*&gt;<span class="fc0">(ptr<span class="_ _11"> </span></span>+<span class="_ _11"> </span>1<span class="fc0">);</span></span></span></div><div class="t m0 xa hc y34 ffa fs7 fc0 sc0 ls0 ws0">ptr2[<span class="fc6">3</span>];<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _1"> </span>ptr2<span class="_ _11"> </span>is<span class="_ _11"> </span>not<span class="_ _8"> </span>aligned<span class="_ _11"> </span>to<span class="_ _8"> </span>8<span class="_ _11"> </span>bytes<span class="_ _11"> </span>(sizeof(uint64_t))</span></div><div class="t m0 x9 ha y35 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>initialization</span></div><div class="t m0 xa hc y36 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _16"> </span><span class="ffa fc0">var;<span class="_ _17"> </span><span class="ffd fc7">//<span class="_ _11"> </span>undefined<span class="_ _8"> </span>value</span></span></div><div class="t m0 xa hc y37 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">var2<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span></span>new<span class="_ _11"> </span><span class="fc5">int<span class="ffa fc0">;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _11"> </span>undefined<span class="_ _8"> </span>value</span></span></span></div><div class="t m0 x9 ha y38 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>access-related<span class="ff4">:<span class="_ _11"> </span><span class="ff8">Out-of-b<span class="_ _c"></span>ound<span class="_ _b"> </span>access:<span class="_"> </span></span>the<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>could<span class="_ _e"> </span>crash<span class="_ _b"> </span>or<span class="_ _b"> </span>not</span></span></div><div class="t m0 x6 ha y39 ff4 fs6 fc0 sc0 ls0 ws0">dep<span class="_ _c"></span>ending<span class="_ _b"> </span>on<span class="_ _e"> </span>the<span class="_ _e"> </span>platfo<span class="_ _3"></span>rm/compiler</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">5/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf8" class="pf w0 h0" data-page-no="8"><div class="pc pc8 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Illegal<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _12"> </span>2/3</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Strict<span class="_ _6"> </span>aliasing</span></div><div class="t m0 xa hc y2e ff6 fs7 fc5 sc0 ls0 ws0">float<span class="_ _11"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span>3</span>;</span></div><div class="t m0 xa hc y2f ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _16"> </span><span class="ffa fc0">y<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span></span></span>reinterpret_cast<span class="ffa fc6">&lt;</span><span class="fc5">unsigned<span class="ffa fc6">&amp;&gt;<span class="fc0">(x);</span></span></span></div><div class="t m0 xa hc y30 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>x,<span class="_ _8"> </span>y<span class="_ _11"> </span>break<span class="_ _11"> </span>the<span class="_ _8"> </span>strict<span class="_ _11"> </span>aliasing<span class="_ _8"> </span>rule</div><div class="t m0 x9 ha y3a ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Lifetime<span class="_ _6"> </span>issues</span></div><div class="t m0 xa hc y3b ff6 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc8">f<span class="fc0">()<span class="_ _8"> </span>{</span></span></span></div><div class="t m0 xb hc y3c ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">tmp[<span class="fc6">10</span>];</span></div><div class="t m0 xb hc y3d ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fc0">tmp;</span></div><div class="t m0 xa hc y3e ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hc y3f ff6 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _11"> </span><span class="fc0">f();</span></span></div><div class="t m0 xa hc y40 ffa fs7 fc0 sc0 ls0 ws0">ptr[<span class="fc6">0</span>];</div><div class="t m0 x9 ha y41 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">One<span class="_ _6"> </span>Definition<span class="_ _6"> </span>Rule<span class="_ _e"> </span>violation</span></div><div class="t m0 xc ha y42 ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_"> </span>Different<span class="_ _e"> </span>definitions<span class="_ _b"> </span>of<span class="_ _14"> </span><span class="ffe">inline<span class="_ _18"> </span></span>functions<span class="_ _e"> </span>in<span class="_ _b"> </span>distinct<span class="_ _e"> </span>translation<span class="_ _e"> </span>units</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">6/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf9" class="pf w0 h0" data-page-no="9"><div class="pc pc9 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Illegal<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _12"> </span>3/3</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Missing<span class="_ _14"> </span><span class="ff6">return<span class="_ _14"> </span></span>statement</span></div><div class="t m0 xa hc y43 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">f<span class="fc0">(</span></span>float<span class="_ _8"> </span><span class="ffa fc0">x)<span class="_ _11"> </span>{</span></div><div class="t m0 xb hc y44 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">y<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>x<span class="_ _11"> </span><span class="fc6">*<span class="_ _8"> </span>2</span>;</span></div><div class="t m0 xa hc y45 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x9 ha y46 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Dangling<span class="_ _6"> </span>reference</span></div><div class="t m0 xa hc y47 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _15"> </span><span class="ffa fc0">n<span class="_ _11"> </span><span class="fc6">=<span class="_ _11"> </span>1</span>;</span></div><div class="t m0 xa hc y48 ff6 fs7 fc4 sc0 ls0 ws0">const<span class="_ _11"> </span><span class="fc5">int<span class="ffa fc6">&amp;<span class="_ _8"> </span><span class="fc0">r<span class="_ _11"> </span></span>=<span class="_ _11"> </span><span class="fc0">std</span>::<span class="fc0">max(n</span>-1<span class="fc0">,<span class="_ _8"> </span>n</span>+1<span class="fc0">);<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>dagling</span></span></span></span></div><div class="t m0 xa hc y49 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>GCC<span class="_ _8"> </span>13<span class="_ _11"> </span>experimental<span class="_ _11"> </span>-Wdangling-reference<span class="_ _8"> </span>(enabled<span class="_ _11"> </span>by<span class="_ _8"> </span>-Wall)</div><div class="t m0 x9 ha y4a ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Illegal<span class="_ _6"> </span>arithmetic<span class="_ _e"> </span>and<span class="_ _6"> </span>conversion<span class="_ _6"> </span>op<span class="_ _c"></span>erations</span></div><div class="t m0 xc ha y4b ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_"> </span>Division<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>zero<span class="_ _18"> </span><span class="ffe">0<span class="_"> </span>/<span class="_"> </span>0<span class="_ _10"> </span></span>,<span class="_ _14"> </span><span class="ffe">fp_value<span class="_"> </span>/<span class="_"> </span>0.0</span></div><div class="t m0 xc ha y4c ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_"> </span>Floating-p<span class="_ _c"></span>oint<span class="_ _b"> </span>to<span class="_ _e"> </span>integer<span class="_ _e"> </span>conversion</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">7/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pfa" class="pf w0 h0" data-page-no="a"><div class="pc pca w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Platfo<span class="_ _3"></span>rm<span class="_ _8"> </span>Sp<span class="_ _c"></span>ecific<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x9 ha y4d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>access-related<span class="ff4">:<span class="_ _5"> </span><span class="ffe">NULL<span class="_ _14"> </span><span class="ff8">pointer<span class="_ _e"> </span>dereferencing<span class="_ _f"></span></span></span>:<span class="_ _11"> </span>the<span class="_ _18"> </span><span class="ffe">0x0<span class="_ _18"> </span></span>address<span class="_ _e"> </span>is<span class="_ _e"> </span>valid</span></span></div><div class="t m0 x6 ha y4e ff4 fs6 fc0 sc0 ls0 ws0">in<span class="_ _e"> </span>some<span class="_ _b"> </span>platforms</div><div class="t m0 x9 ha y4f ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Endianness</span></div><div class="t m0 xa hc y50 ff6 fs7 fc4 sc0 ls0 ws0">union<span class="_ _11"> </span><span class="fc8">U<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 xb hc y51 ff6 fs7 fc5 sc0 ls0 ws0">unsigned<span class="_ _11"> </span><span class="ffa fc0">x;</span></div><div class="t m0 xb hc y52 ff6 fs7 fc5 sc0 ls0 ws0">char<span class="_ _19"> </span><span class="ffa fc0">y;</span></div><div class="t m0 xa hc y53 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x9 ha y54 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">T<span class="_ _d"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>definition</span></div><div class="t m0 xa hc y55 ff6 fs7 fc5 sc0 ls0 ws0">long<span class="_ _11"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span>1ul<span class="_ _11"> </span>&lt;&lt;<span class="_ _8"> </span>32u</span>;<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>different<span class="_ _11"> </span>behavior<span class="_ _11"> </span>depending<span class="_ _8"> </span>on<span class="_ _11"> </span>the<span class="_ _11"> </span>OS</span></span></div><div class="t m0 x9 ha y56 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Intrinsic<span class="_ _6"> </span>functions</span></div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">8/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pfb" class="pf w0 h0" data-page-no="b"><div class="pc pcb w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Unsp<span class="_ _c"></span>ecified<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _1a"> </span>1/2</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">Legal<span class="_ _e"> </span>operations<span class="_ _e"> </span>but<span class="_ _e"> </span>the<span class="_ _e"> </span>C++<span class="_ _b"> </span>standard<span class="_ _b"> </span>do<span class="_ _c"></span>es<span class="_ _e"> </span>not<span class="_ _e"> </span>document<span class="_ _e"> </span>the<span class="_ _e"> </span>result<span class="_ _e"> </span><span class="fff"><span class="_ _b"> </span></span>different</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">compilers/platfo<span class="_ _3"></span>rms<span class="_ _e"> </span>can<span class="_ _e"> </span>sho<span class="_ _3"></span>w<span class="_ _e"> </span>different<span class="_ _e"> </span>behavior</div><div class="t m0 x9 ha y58 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Signed<span class="_ _e"> </span>shift<span class="_ _e"> </span>of<span class="_ _e"> </span>negative<span class="_ _b"> </span>values<span class="_ _14"> </span><span class="ffe">-2<span class="_"> </span><span class="fff"><span class="_ _1b"> </span></span>x<span class="_ _18"> </span></span>(b<span class="_ _c"></span>efo<span class="_ _3"></span>re<span class="_ _e"> </span><span class="fc9">C++20</span>),<span class="_ _e"> </span>la<span class="_ _3"></span>rge-than-type<span class="_ _e"> </span>shift</span></div><div class="t m0 xa ha y59 ffe fs6 fc0 sc0 ls0 ws0">3u<span class="_"> </span><span class="fff"><span class="_ _1b"> </span></span>32<span class="_ _10"> </span><span class="ff4">,<span class="_ _e"> </span>etc.</span></div><div class="t m0 x9 ha y5a ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Floating-p<span class="_ _c"></span>oint<span class="_ _e"> </span>na<span class="_ _3"></span>rrowing<span class="_ _b"> </span>conversion<span class="_ _e"> </span>b<span class="_ _c"></span>et<span class="_ _3"></span>w<span class="_ _3"></span>een<span class="_ _e"> </span>floating-p<span class="_ _c"></span>oint<span class="_ _b"> </span>types<span class="_ _e"> </span>with</span></div><div class="t m0 x6 ha y5b ff4 fs6 fc0 sc0 ls0 ws0">unrep<span class="_ _3"></span>resentable<span class="_ _e"> </span>values<span class="_ _18"> </span><span class="ffe">double<span class="_"> </span><span class="fff"><span class="_ _1c"> </span></span>float</span></div><div class="t m0 x9 ha y5c ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Arithmetic<span class="_ _e"> </span>op<span class="_ _c"></span>eration<span class="_ _e"> </span>o<span class="_ _3"></span>rdering<span class="_ _18"> </span><span class="ffe">f(i++,<span class="_"> </span>i++)</span></span></div><div class="t m0 x9 ha y5d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Function<span class="_ _b"> </span>evaluation<span class="_ _e"> </span>ordering</span></div><div class="t m0 xa hc y5e ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>f()<span class="_ _11"> </span><span class="fc6">+<span class="_ _8"> </span></span>g();<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>C++<span class="_ _11"> </span>doesn<span class="ff10">&apos;</span>t<span class="_ _11"> </span>ensure<span class="_ _8"> </span>that<span class="_ _11"> </span>f()<span class="_ _11"> </span>is<span class="_ _8"> </span>evaluated<span class="_ _11"> </span>before<span class="_ _8"> </span>g()</span></span></div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">9/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pfc" class="pf w0 h0" data-page-no="c"><div class="pc pcc w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Unsp<span class="_ _c"></span>ecified<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _1a"> </span>2/2</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Signed<span class="_ _e"> </span>overflow</span></div><div class="t m0 xa hc y5f ff6 fs7 fc4 sc0 ls0 ws0">for<span class="_ _11"> </span><span class="ffa fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ffa fc0">i<span class="_ _11"> </span><span class="fc6">=<span class="_ _11"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _11"> </span><span class="fc6">&lt;=<span class="_ _8"> </span></span>N;<span class="_ _11"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x6 h5 y60 ff4 fs3 fc0 sc0 ls0 ws0">if<span class="_ _18"> </span><span class="ffe">N<span class="_ _1c"> </span></span>is<span class="_ _18"> </span><span class="ffe">INT_MAX<span class="_ _10"> </span></span>,<span class="_ _b"> </span>the<span class="_ _b"> </span>last<span class="_ _b"> </span>iteration<span class="_ _b"> </span>is<span class="_ _b"> </span>undefined<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r.<span class="_ _8"> </span>The<span class="_ _b"> </span>compiler<span class="_ _b"> </span>can<span class="_ _b"> </span>assume<span class="_ _b"> </span>that</div><div class="t m0 x6 h5 y61 ff4 fs3 fc0 sc0 ls0 ws0">the<span class="_ _b"> </span>lo<span class="_ _c"></span>op<span class="_ _10"> </span>is<span class="_ _b"> </span>finite<span class="_ _b"> </span>and<span class="_ _b"> </span>enable<span class="_ _b"> </span>imp<span class="_ _c"></span>ortant<span class="_ _10"> </span>optimizations,<span class="_ _b"> </span>as<span class="_ _b"> </span>opp<span class="_ _c"></span>osite<span class="_ _b"> </span>to<span class="_ _18"> </span><span class="ffe">unsigned<span class="_ _1c"> </span></span>(wrap</div><div class="t m0 x6 h5 y62 ff4 fs3 fc0 sc0 ls0 ws0">a<span class="_ _3"></span>round)</div><div class="t m0 x9 ha y63 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">T<span class="_ _d"></span>rivial<span class="_ _e"> </span>infinite<span class="_ _e"> </span>loops,<span class="_ _e"> </span>until<span class="_ _e"> </span><span class="fc9">C++26</span></span></div><div class="t m0 xa hc y64 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 xc hc y65 ff6 fs7 fc4 sc0 ls0 ws0">while<span class="_ _11"> </span><span class="ffa fc0">(<span class="fc4">true</span>)<span class="_ _1d"> </span><span class="ffd fc7">//<span class="_ _11"> </span>-&gt;<span class="_ _8"> </span>std::this_thread::yield();<span class="_ _11"> </span>in<span class="_ _11"> </span>C++26</span></span></div><div class="t m0 xb hc y66 ffa fs7 fc0 sc0 ls0 ws0">;</div><div class="t m0 xa hc y67 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hc y68 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">unreachable<span class="fc0">()<span class="_ _8"> </span>{<span class="_ _11"> </span>cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;Hello<span class="_ _11"> </span>world!&quot;<span class="_ _8"> </span></span>&lt;&lt;<span class="_ _11"> </span></span>endl;<span class="_ _11"> </span>}</span></span></div><div class="t m0 x6 h5 y69 ff4 fs3 fc0 sc0 ls0 ws0">the<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _10"> </span>print<span class="_ _b"> </span><span class="ffe">Hello<span class="_"> </span>world!<span class="_ _8"> </span></span>with<span class="_ _b"> </span>some<span class="_ _b"> </span><span class="ffe">clang<span class="_ _b"> </span></span>versions</div><div class="t m0 xd hc y6a ffa fs7 fc3 sc0 ls0 ws0">P2809R3:<span class="_ _16"> </span>Trivial<span class="_ _11"> </span>infinite<span class="_ _8"> </span>loops<span class="_ _11"> </span>are<span class="_ _11"> </span>not<span class="_ _8"> </span>Undefined<span class="_ _11"> </span>Behavior</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">10/56</div><a class="l" href="https://isocpp.org/files/papers/P2809R3.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.889000px;width:279.726000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pfd" class="pf w0 h0" data-page-no="d"><div class="pc pcd w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Detecting<span class="_ _8"> </span>Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">There<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>several<span class="_ _e"> </span>w<span class="_ _3"></span>a<span class="_ _3"></span>ys<span class="_ _e"> </span>to<span class="_ _e"> </span>detect<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>p<span class="_ _3"></span>revent<span class="_ _e"> </span>undefined<span class="_ _e"> </span>behavior<span class="_ _b"> </span>at<span class="_ _e"> </span>compile-time<span class="_ _e"> </span>and<span class="_ _e"> </span>at</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">run-time:</div><div class="t m0 x9 h5 y6b ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Mo<span class="_ _c"></span>dify<span class="_ _b"> </span>the<span class="_ _b"> </span>compiler<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r,<span class="_ _b"> </span>see<span class="_ _b"> </span><span class="ffe">Debugging<span class="_"> </span>and<span class="_"> </span>Testing:<span class="_ _1e"> </span>Hardening<span class="_"> </span>Techniques</span></span></div><div class="t m0 x9 h5 y6c ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Using<span class="_ _b"> </span>undefined<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _b"> </span>sanitizer,<span class="_ _b"> </span>see<span class="_ _b"> </span><span class="ffe">Debugging<span class="_"> </span>and<span class="_"> </span>Testing:<span class="_ _1e"> </span>Sanitizer</span></span></div><div class="t m0 x9 h5 y6d ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Static<span class="_ _b"> </span>analysis<span class="_ _b"> </span>to<span class="_ _c"></span>ols</span></div><div class="t m0 x9 h5 y6e ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">constexpr<span class="_ _18"> </span><span class="ff4">exp<span class="_ _3"></span>ressions<span class="_ _b"> </span>do<span class="_ _c"></span>esnt<span class="_ _10"> </span>allow<span class="_ _b"> </span>undefined<span class="_ _b"> </span>behavior</span></span></div><div class="t m0 xf hd y6f ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x1<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>2147483647<span class="_ _8"> </span>+<span class="_ _6"> </span>1</span>;<span class="_ _1f"> </span><span class="ffd fc7">//<span class="_ _6"> </span>compile<span class="_ _6"> </span>error</span></span></span></div><div class="t m0 xf hd y70 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x2<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>(<span class="fc6">1<span class="_ _8"> </span>&lt;&lt;<span class="_ _6"> </span>32</span>);<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 xf hd y71 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x3<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>(<span class="fc6">1<span class="_ _8"> </span>&lt;&lt;<span class="_ _6"> </span>-1</span>);<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 xf hd y72 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x4<span class="_ _6"> </span><span class="fc6">=<span class="_ _13"> </span>3<span class="_ _8"> </span>/<span class="_ _8"> </span>0</span>;<span class="_ _21"> </span><span class="ffd fc7">//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 xf hd y73 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x5<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>*</span>((</span>int<span class="ff11 fc6">*<span class="fc0">)<span class="_ _8"> </span></span></span></span>nullptr<span class="ff11 fc0">)<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>compile<span class="_ _6"> </span>error</span></span></div><div class="t m0 xf hd y74 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">int<span class="_ _1f"> </span><span class="ff11 fc0">x6<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>6</span></span></span></div><div class="t m0 xf hd y75 ff6 fs5 fc4 sc0 ls0 ws0">constexpr<span class="_ _6"> </span><span class="fc5">float<span class="_ _8"> </span><span class="ff11 fc0">x7<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span></span></span></span>reinterpret_cast<span class="ff11 fc6">&lt;</span><span class="fc5">float<span class="ff11 fc6">&amp;&gt;<span class="fc0">(x6);<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error</span></span></span></span></div><div class="t m0 xd hc y76 ffa fs7 fc3 sc0 ls0 ws0">Exploring<span class="_ _11"> </span>Undefined<span class="_ _8"> </span>Behavior<span class="_ _11"> </span>Using<span class="_ _11"> </span>Constexpr</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">11/56</div><a class="l" href="https://shafik.github.io/c++/undefined%20behavior/2019/05/11/explporing_undefined_behavior_using_constexpr.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:2.228000px;width:209.116000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pfe" class="pf w0 h0" data-page-no="e"><div class="pc pce w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Erro<span class="_ _d"></span>r<span class="_ _1"> </span>Handing</div><a class="l" href="#pfe" data-dest-detail='[14,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:161.938000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pff" class="pf w0 h0" data-page-no="f"><div class="pc pcf w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Recoverable<span class="_ _8"> </span>Erro<span class="_ _3"></span>r<span class="_ _8"> </span>Handing</div><div class="t m0 x1 ha y77 ff1 fs6 fc0 sc0 ls0 ws0">Recoverable<span class="_ _e"> </span><span class="ff8">Conditions<span class="_ _b"> </span>that<span class="_ _e"> </span>are<span class="_ _b"> </span>not<span class="_ _e"> </span>under<span class="_ _e"> </span>the<span class="_ _e"> </span>control<span class="_ _b"> </span>of<span class="_ _e"> </span>the<span class="_ _e"> </span>p<span class="_ _3"></span>rogram<span class="ff4">.<span class="_ _11"> </span>They<span class="_ _e"> </span>indicate</span></span></div><div class="t m0 x1 ha y78 ff8 fs6 fc0 sc0 ls0 ws0">“exceptional”<span class="_ _8"> </span><span class="ff4">run-time<span class="_ _e"> </span>conditions.<span class="_ _11"> </span>e.g.<span class="_ _11"> </span>file<span class="_ _b"> </span>not<span class="_ _e"> </span>found,<span class="_ _e"> </span>bad<span class="_ _e"> </span>allocation,<span class="_ _e"> </span>wrong<span class="_ _e"> </span>user</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">input,<span class="_ _e"> </span>etc.</div><div class="t m0 x1 ha y7a ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _e"> </span><span class="ff8">recoverable<span class="_ _6"> </span></span>should<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>considered<span class="_ _e"> </span><span class="ff8">unrecoverable<span class="_ _8"> </span></span>if<span class="_ _b"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>extremely<span class="_ _e"> </span>ra<span class="_ _3"></span>re<span class="_ _e"> </span>and<span class="_ _e"> </span>difficult<span class="_ _b"> </span>to</div><div class="t m0 x1 ha y7b ff4 fs6 fc0 sc0 ls0 ws0">handle,<span class="_ _e"> </span>e.g.<span class="_ _11"> </span>bad<span class="_ _b"> </span>allo<span class="_ _c"></span>cation<span class="_ _e"> </span>due<span class="_ _b"> </span>to<span class="_ _e"> </span>out-of-memory<span class="_ _b"> </span>error</div><div class="t m0 x1 ha y7c ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>common<span class="_ _b"> </span>wa<span class="_ _3"></span>ys<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>handling<span class="_ _e"> </span>recoverable<span class="_ _b"> </span>errors<span class="_ _e"> </span>a<span class="_ _3"></span>re:</div><div class="t m0 x10 ha y7d ff1 fs6 fc0 sc0 ls0 ws0">Exceptions<span class="_ _a"> </span><span class="ff4">Robust<span class="_ _e"> </span>but<span class="_ _e"> </span>slo<span class="_ _3"></span>wer<span class="_ _b"> </span>and<span class="_ _e"> </span>requires<span class="_ _e"> </span>mo<span class="_ _3"></span>re<span class="_ _e"> </span>resources</span></div><div class="t m0 xf ha y7e ff1 fs6 fc0 sc0 ls0 ws0">Return<span class="_ _6"> </span>co<span class="_ _c"></span>de<span class="_ _a"> </span><span class="ff4">F<span class="_ _3"></span>ast<span class="_ _e"> </span>but<span class="_ _e"> </span>difficult<span class="_ _e"> </span>to<span class="_ _b"> </span>handle<span class="_ _e"> </span>in<span class="_ _e"> </span>complex<span class="_ _e"> </span>p<span class="_ _3"></span>rograms</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">12/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf10" class="pf w0 h0" data-page-no="10"><div class="pc pc10 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIX0lEQVR42u3YsQ3CMBRFURvFSskMUSomQIgaic2yRMZJkSGyAVVK3JiOKjX6QueM8Kqrl8frPQEAQBjbupysAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICvXGu1AgAAcZRSPKkAAIQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIA8D+6fRqswO+9HrMRAIBDl9sz53Pf9ndKrTWDAAAQwgewXBQEh4YeKgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Erro<span class="_ _3"></span>r<span class="_ _8"> </span>Handing<span class="_ _8"> </span>References</div><div class="t m0 xd ha y7f ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">Modern<span class="_"> </span>C++<span class="_"> </span>best<span class="_"> </span>practices<span class="_"> </span>for<span class="_"> </span>exceptions<span class="_"> </span>and<span class="_"> </span>error<span class="_"> </span>handling</span></div><div class="t m0 xd ha y80 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">Back<span class="_"> </span>to<span class="_"> </span>Basics:<span class="_ _22"> </span>Exceptions<span class="_"> </span>-<span class="_"> </span>CppCon2020</span></div><div class="t m0 xd ha y81 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">ISO<span class="_"> </span>C++<span class="_"> </span>FAQ:<span class="_"> </span>Exceptions<span class="_"> </span>and<span class="_"> </span>Error<span class="_"> </span>Handling</span></div><div class="t m0 xd ha y82 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">Zero-overhead<span class="_"> </span>deterministic<span class="_"> </span>exceptions:<span class="_ _22"> </span>Throwing<span class="_"> </span>values,<span class="_"> </span>P0709</span></div><div class="t m0 xd ha y83 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">C++<span class="_"> </span>exceptions<span class="_"> </span>are<span class="_"> </span>becoming<span class="_"> </span>more<span class="_"> </span>and<span class="_"> </span>more<span class="_"> </span>problematic,<span class="_"> </span>P2544</span></div><div class="t m0 xd ha y84 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">std::expected</span></div><div class="t m0 xd ha y85 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffe">C++<span class="_"> </span>Error<span class="_"> </span>Handling<span class="_"> </span>Strategies<span class="_"> </span><span class="_"> </span>Benchmarks<span class="_"> </span>and<span class="_"> </span>Performance</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">13/56</div><a class="l" href="https://docs.microsoft.com/en-us/cpp/cpp/errors-and-exception-handling-modern-cpp?view=msvc-160"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:187.508000px;width:339.901000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://raw.githubusercontent.com/CppCon/CppCon2020/main/Presentations/back_to_basics_exceptions/back_to_basics_exceptions__klaus_iglberger__cppcon_2020.pdf"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:163.957000px;width:231.083000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://isocpp.org/wiki/faq/exceptions"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:140.405000px;width:242.538000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0709r3.pdf"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:116.854000px;width:362.810000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2544r0.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:93.302000px;width:345.628000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:69.750000px;width:76.447000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://johnfarrier.com/c-error-handling-strategies-benchmarks-and-performance/"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:46.199000px;width:334.174000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf11" class="pf w0 h0" data-page-no="11"><div class="pc pc11 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Return<span class="_ _8"> </span>Co<span class="_ _c"></span>de</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">Histo<span class="_ _3"></span>rically<span class="_ _d"></span>,<span class="_ _e"> </span>C<span class="_ _b"> </span>programs<span class="_ _b"> </span>handled<span class="_ _e"> </span>errors<span class="_ _b"> </span>with<span class="_ _e"> </span>return<span class="_ _b"> </span>co<span class="_ _c"></span>des,<span class="_ _e"> </span>even<span class="_ _b"> </span>for<span class="_ _b"> </span>unrecoverable<span class="_ _e"> </span>erro<span class="_ _3"></span>rs</div><div class="t m0 xf hc y86 ff6 fs7 fc4 sc0 ls0 ws0">enum<span class="_ _11"> </span><span class="fc8">Status<span class="_ _8"> </span><span class="ffa fc0">{<span class="_ _11"> </span>IllegalValue,<span class="_ _11"> </span>Success<span class="_ _8"> </span>};</span></span></div><div class="t m0 xf hc y19 ffa fs7 fc0 sc0 ls0 ws0">Status<span class="_ _11"> </span><span class="fc8">f</span>(<span class="ff6 fc5">int</span><span class="fc6">*<span class="_ _8"> </span></span>ptr)<span class="_ _11"> </span>{<span class="_ _11"> </span><span class="ff6 fc4">return<span class="_ _8"> </span></span>(ptr<span class="_ _11"> </span><span class="fc6">==<span class="_ _8"> </span><span class="ff6 fc4">nullptr</span></span>)<span class="_ _11"> </span><span class="fc6">?<span class="_ _11"> </span></span>IllegalValue<span class="_ _8"> </span><span class="fc6">:<span class="_ _11"> </span></span>Success;<span class="_ _11"> </span>}</div><div class="t m0 x1 ha y87 ff4 fs6 fc0 sc0 ls0 ws0">Why<span class="_ _e"> </span>such<span class="_ _b"> </span>b<span class="_ _c"></span>ehavior?<span class="_ _8"> </span>Debugging<span class="_ _e"> </span><span class="fff"><span class="_ _e"> </span></span>need<span class="_ _e"> </span>to<span class="_ _b"> </span>understand<span class="_ _e"> </span>what<span class="_ _e"> </span>/<span class="_ _e"> </span>where<span class="_ _e"> </span>/<span class="_ _b"> </span>why<span class="_ _e"> </span>the</div><div class="t m0 x1 ha y88 ff4 fs6 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>rogram<span class="_ _e"> </span>failed</div><div class="t m0 x1 ha y89 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _e"> </span>better<span class="_ _e"> </span>approach<span class="_ _b"> </span>in<span class="_ _e"> </span>C++<span class="_ _e"> </span>involves</div><div class="t m0 x11 ha y8a ffe fs6 fc0 sc0 ls0 ws0">std::source_location()<span class="_ _18"> </span><span class="ff4 fc9">C++20<span class="_ _e"> </span><span class="fc0">and</span></span></div><div class="t m0 xf ha y8b ffe fs6 fc0 sc0 ls0 ws0">std::stacktrace()<span class="_ _18"> </span><span class="ff4 fc9">C++23</span></div><div class="t m0 x1 ha y8c ff4 fs6 fc0 sc0 ls0 ws0">ABI<span class="_ _e"> </span>related<span class="_ _b"> </span>issues:</div><div class="t m0 x9 h5 y8d ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Removing<span class="_ _b"> </span>an<span class="_ _b"> </span>enumerator<span class="_ _b"> </span>value<span class="_ _b"> </span>is<span class="_ _b"> </span>an<span class="_ _b"> </span>API<span class="_ _b"> </span>b<span class="_ _3"></span>reaking<span class="_ _b"> </span>change</span></div><div class="t m0 x9 h5 y8e ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Adding<span class="_ _b"> </span>a<span class="_ _b"> </span>new<span class="_ _b"> </span>enumerato<span class="_ _3"></span>r<span class="_ _b"> </span>value<span class="_ _b"> </span>asso<span class="_ _c"></span>ciated<span class="_ _b"> </span>to<span class="_ _b"> </span>a<span class="_ _b"> </span>return<span class="_ _b"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>is<span class="_ _b"> </span>also<span class="_ _b"> </span>p<span class="_ _3"></span>roblematic<span class="_ _b"> </span>as<span class="_ _b"> </span>it</span></div><div class="t m0 x6 h5 y8f ff4 fs3 fc0 sc0 ls0 ws0">causes<span class="_ _b"> </span>ABI<span class="_ _b"> </span>b<span class="_ _3"></span>reaking<span class="_ _b"> </span>change</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">14/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf12" class="pf w0 h0" data-page-no="12"><div class="pc pc12 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">C++<span class="_ _8"> </span>Exceptions<span class="_ _8"> </span>-<span class="_ _8"> </span>A<span class="_ _3"></span>dvantages</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>Exceptions<span class="_ _b"> </span>provide<span class="_ _b"> </span>a<span class="_ _e"> </span>well-defined<span class="_ _b"> </span>mechanism<span class="_ _e"> </span>to<span class="_ _e"> </span>detect<span class="_ _e"> </span>erro<span class="_ _3"></span>rs<span class="_ _e"> </span>passing<span class="_ _b"> </span>the</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">info<span class="_ _3"></span>rmation<span class="_ _e"> </span>up<span class="_ _e"> </span>the<span class="_ _e"> </span>call<span class="_ _b"> </span>stack</div><div class="t m0 xd ha y90 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Exceptions<span class="_ _6"> </span>cannot<span class="_ _6"> </span>b<span class="_ _c"></span>e<span class="_ _6"> </span>igno<span class="_ _3"></span>red<span class="ff4">.<span class="_ _11"> </span>Unhandled<span class="_ _e"> </span>exceptions<span class="_ _e"> </span>stop<span class="_ _b"> </span>program<span class="_ _b"> </span>execution</span></span></div><div class="t m0 x6 ha y91 ff4 fs6 fc0 sc0 ls0 ws0">(call<span class="_ _18"> </span><span class="ffe">std::terminate()<span class="_ _10"> </span></span>)</div><div class="t m0 xd ha y92 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Intermediate<span class="_ _6"> </span>functions<span class="_ _6"> </span>are<span class="_ _e"> </span>not<span class="_ _6"> </span>fo<span class="_ _3"></span>rced<span class="_ _6"> </span>to<span class="_ _6"> </span>handle<span class="_ _6"> </span>them<span class="ff4">.<span class="_ _11"> </span>They<span class="_ _e"> </span>dont<span class="_ _b"> </span>have<span class="_ _e"> </span>to</span></span></div><div class="t m0 x6 ha y93 ff4 fs6 fc0 sc0 ls0 ws0">co<span class="_ _c"></span>o<span class="_ _3"></span>rdinate<span class="_ _e"> </span>with<span class="_ _b"> </span>other<span class="_ _e"> </span>lay<span class="_ _3"></span>ers<span class="_ _e"> </span>and,<span class="_ _b"> </span>for<span class="_ _b"> </span>this<span class="_ _e"> </span>reason,<span class="_ _e"> </span>they<span class="_ _e"> </span>p<span class="_ _3"></span>rovide<span class="_ _e"> </span>go<span class="_ _c"></span>od<span class="_ _e"> </span>comp<span class="_ _c"></span>osabilit<span class="_ _3"></span>y</div><div class="t m0 xd ha y94 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Throwing<span class="_ _b"> </span>an<span class="_ _e"> </span>exception<span class="_ _b"> </span><span class="ff1">acts<span class="_ _6"> </span>lik<span class="_ _3"></span>e<span class="_ _6"> </span>a<span class="_ _e"> </span>return<span class="_ _6"> </span>statement<span class="_ _e"> </span><span class="ff4">destro<span class="_ _3"></span>ying<span class="_ _e"> </span>all<span class="_ _b"> </span>objects<span class="_ _e"> </span>in<span class="_ _b"> </span>the</span></span></span></div><div class="t m0 x6 ha y95 ff4 fs6 fc0 sc0 ls0 ws0">current<span class="_ _e"> </span>scope</div><div class="t m0 xd ha y96 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">An<span class="_ _e"> </span>exception<span class="_ _e"> </span>enables<span class="_ _e"> </span>a<span class="_ _b"> </span><span class="ff1">clean<span class="_ _6"> </span>separation<span class="_ _b"> </span></span>b<span class="_ _c"></span>et<span class="_ _3"></span>ween<span class="_ _b"> </span>the<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>that<span class="_ _b"> </span>detects<span class="_ _e"> </span>the<span class="_ _e"> </span>erro<span class="_ _3"></span>r</span></div><div class="t m0 x6 ha y97 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>the<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>that<span class="_ _e"> </span>handles<span class="_ _b"> </span>the<span class="_ _e"> </span>error</div><div class="t m0 xd ha y98 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Exceptions<span class="_ _e"> </span>wo<span class="_ _3"></span>rk<span class="_ _e"> </span>w<span class="_ _3"></span>ell<span class="_ _e"> </span>with<span class="_ _b"> </span>object-oriented<span class="_ _b"> </span>semantic<span class="_ _e"> </span>(constructor)</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">15/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf13" class="pf w0 h0" data-page-no="13"><div class="pc pc13 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">C++<span class="_ _8"> </span>Exceptions<span class="_ _8"> </span>-<span class="_ _8"> </span>Disadvantages<span class="_ _23"> </span>1/2</div><div class="t m0 xd ha y99 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Co<span class="_ _c"></span>de<span class="_ _6"> </span>readabilit<span class="_ _3"></span>y<span class="ff4">:<span class="_ _11"> </span>Using<span class="_ _e"> </span>exception<span class="_ _e"> </span>can<span class="_ _b"> </span>involve<span class="_ _e"> </span>more<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>than<span class="_ _b"> </span>the<span class="_ _e"> </span>functionality</span></span></div><div class="t m0 x6 ha y9a ff4 fs6 fc0 sc0 ls0 ws0">itself</div><div class="t m0 xd ha y9b ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Co<span class="_ _c"></span>de<span class="_ _6"> </span>comp<span class="_ _3"></span>rehension<span class="ff4">:<span class="_ _11"> </span>Exception<span class="_ _e"> </span>control<span class="_ _e"> </span>flo<span class="_ _3"></span>w<span class="_ _e"> </span>is<span class="_ _e"> </span>invisible<span class="_ _b"> </span>and<span class="_ _e"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>not<span class="_ _b"> </span>explicit<span class="_ _e"> </span>in</span></span></div><div class="t m0 x6 ha y9c ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _e"> </span>function<span class="_ _b"> </span>signature</div><div class="t m0 xd ha y9d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Perfo<span class="_ _3"></span>rmance:<span class="_ _11"> </span><span class="ff4">Extreme<span class="_ _b"> </span>p<span class="_ _c"></span>erformance<span class="_ _b"> </span>overhead<span class="_ _e"> </span>in<span class="_ _e"> </span>the<span class="_ _b"> </span>failure<span class="_ _e"> </span>case<span class="_ _e"> </span>(violate<span class="_ _e"> </span>the</span></span></div><div class="t m0 x6 ha y9e ff4 fs6 fc0 sc0 ls0 ws0">zero-overhead<span class="_ _e"> </span>p<span class="_ _3"></span>rinciple)</div><div class="t m0 xd ha y9f ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Dynamic<span class="_ _6"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _c"></span><span class="ff4">:<span class="_ _5"> </span><span class="ffe">throw<span class="_ _18"> </span></span>requires<span class="_ _e"> </span>dynamic<span class="_ _b"> </span>allo<span class="_ _c"></span>cation<span class="_ _e"> </span>and<span class="_ _18"> </span><span class="ffe">catch<span class="_ _14"> </span></span>requires</span></span></div><div class="t m0 x6 ha ya0 ffe fs6 fc0 sc0 ls0 ws0">RTTI<span class="ff4">.<span class="_ _e"> </span>It<span class="_ _b"> </span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>suited<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>real-time,<span class="_ _e"> </span>safet<span class="_ _3"></span>y-critical,<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>emb<span class="_ _c"></span>edded<span class="_ _b"> </span>systems</span></div><div class="t m0 xd ha ya1 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Co<span class="_ _c"></span>de<span class="_ _6"> </span>bloat<span class="ff4">:<span class="_ _11"> </span>Exceptions<span class="_ _e"> </span>could<span class="_ _b"> </span>increase<span class="_ _e"> </span>executable<span class="_ _e"> </span>size<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>5-15%<span class="_ _e"> </span>(o<span class="_ _3"></span>r<span class="_ _e"> </span>mo<span class="_ _3"></span>re*)</span></span></div><div class="t m0 xd hb ya2 ffb fs7 fc3 sc0 ls0 ws0">*<span class="ffa">Binary<span class="_ _11"> </span>size<span class="_ _8"> </span>and<span class="_ _11"> </span>exceptions</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">16/56</div><a class="l" href="https://www.sandordargo.com/blog/2023/03/29/binary-size-and-exceptions"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.593000px;width:128.992000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf14" class="pf w0 h0" data-page-no="14"><div class="pc pc14 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">C++<span class="_ _8"> </span>Exceptions<span class="_ _8"> </span>-<span class="_ _8"> </span>Disadvantages<span class="_ _23"> </span>2/2</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">17/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf15" class="pf w0 h0" data-page-no="15"><div class="pc pc15 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGIt3GYu4TgWDuEGVsdVpomdtmKh/8HzTBC+NC9/3uwOCQAAwrhdLwsrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAl11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQTAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAALx1M3rrNE0+DADgO33fz+i1LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAgJByrdUKAADEUUpxSQUAIByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAA+KduPK2tAD9wP56NAACf2O6HnFfLNj5Saq0ZBACAEJ6GCxoCtXxLlAAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">C++<span class="_ _8"> </span>Exception<span class="_ _8"> </span>Basics</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>p<span class="_ _3"></span>rovides<span class="_ _e"> </span>three<span class="_ _e"> </span>k<span class="_ _3"></span>eyw<span class="_ _3"></span>ords<span class="_ _b"> </span>for<span class="_ _b"> </span>exception<span class="_ _e"> </span>handling:</div><div class="t m0 x12 ha ya3 ffe fs6 fc8 sc0 ls0 ws0">throw<span class="_ _a"> </span><span class="ff4 fc0">Throws<span class="_ _b"> </span>an<span class="_ _e"> </span>exception</span></div><div class="t m0 x13 ha y90 ffe fs6 fc8 sc0 ls0 ws0">try<span class="_ _a"> </span><span class="ff4 fc0">Co<span class="_ _c"></span>de<span class="_ _e"> </span>block<span class="_ _e"> </span>containing<span class="_ _e"> </span>p<span class="_ _c"></span>otential<span class="_ _b"> </span>throwing<span class="_ _b"> </span>expressions</span></div><div class="t m0 x12 ha ya4 ffe fs6 fc8 sc0 ls0 ws0">catch<span class="_ _a"> </span><span class="ff4 fc0">Co<span class="_ _c"></span>de<span class="_ _e"> </span>block<span class="_ _e"> </span>for<span class="_ _b"> </span>handling<span class="_ _e"> </span>the<span class="_ _e"> </span>exception</span></div><div class="t m0 xf hc ya5 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f<span class="fc0">()<span class="_ _8"> </span>{<span class="_ _11"> </span></span></span><span class="fc4">throw<span class="_ _11"> </span><span class="ffa fc6">3<span class="fc0">;<span class="_ _8"> </span>}</span></span></span></div><div class="t m0 xf hc ya6 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc ya7 ff6 fs7 fc4 sc0 ls0 ws0">try<span class="_ _11"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc ya8 ffa fs7 fc0 sc0 ls0 ws0">f();</div><div class="t m0 x6 hc ya9 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc5">int<span class="_ _11"> </span></span>x)<span class="_ _11"> </span>{</div><div class="t m0 x14 hc yaa ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>x;<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>&quot;3&quot;</span></div><div class="t m0 x6 hc yab ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc yac ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">18/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf16" class="pf w0 h0" data-page-no="16"><div class="pc pc16 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3YvU0DQRCG4VvrRkQrarCIXAFCxJbcGU1QDoGLoAMiayNPcmREJPxInrOfp4LVdxe8mvbw+DwBAEAZ78e3jRUAAKhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8KVlphUAAKgjIlxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAODWzSt66xjjmqbvvfv/AAC+5ZIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAC6rZaYVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQDgr2YTAFyHMYYRyuq9GwF+xCUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAA+FctM60AAEAdEeGSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAlzav6K1jDB8MAOB3eu8req1LKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgBQU8tMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAQHXz6WVrBSjoY/9qBABu0+7p0Nr93XI6T9OyLAYBAKCET9b3Jf7GQEVTAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std<span class="_ _8"> </span><span class="ff1">Exceptions</span></div><div class="t m0 xf ha y21 ffe fs6 fc0 sc0 ls0 ws0">throw<span class="_ _18"> </span><span class="ff4">can<span class="_ _e"> </span>thro<span class="_ _3"></span>w<span class="_ _e"> </span>everything<span class="_ _e"> </span>such<span class="_ _e"> </span>as<span class="_ _b"> </span>integers,<span class="_ _e"> </span>p<span class="_ _c"></span>ointers,<span class="_ _e"> </span>objects,<span class="_ _b"> </span>etc.<span class="_ _11"> </span>The<span class="_ _e"> </span>standa<span class="_ _3"></span>rd</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">w<span class="_ _3"></span>ay<span class="_ _b"> </span>consists<span class="_ _e"> </span>in<span class="_ _e"> </span>using<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ffe">std<span class="_ _e"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _e"> </span>exceptions<span class="_ _18"> </span><span class="ffe">&lt;stdexcept&gt;</span></div><div class="t m0 xf hd yad ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;stdexcept&gt;</span></div><div class="t m0 xf hd yae ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(</span></span>bool<span class="_ _8"> </span><span class="ff11 fc0">b)<span class="_ _8"> </span>{</span></div><div class="t m0 x15 hd yaf ff6 fs5 fc4 sc0 ls0 ws0">if<span class="_ _6"> </span><span class="ff11 fc0">(b)</span></div><div class="t m0 x16 hd yb0 ff6 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff11 fc0">std<span class="fc6">::</span>runtime_error(<span class="fca">&quot;runtime<span class="_ _8"> </span>error&quot;</span>);</span></div><div class="t m0 x15 hd yb1 ff6 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff11 fc0">std<span class="fc6">::</span>logic_error(<span class="fca">&quot;logic<span class="_ _8"> </span>error&quot;</span>);</span></div><div class="t m0 xf hd yb2 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd yb3 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd yb4 ff6 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff11 fc0">{</span></div><div class="t m0 x16 hd yb5 ff11 fs5 fc0 sc0 ls0 ws0">f(<span class="fc4">false</span>);</div><div class="t m0 x15 hd yb6 ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _8"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&amp;<span class="_ _6"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd yb7 ff11 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>e.what();</div><div class="t m0 x15 hd yb8 ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _8"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&amp;<span class="_ _6"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd yb9 ff11 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>e.what();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print:<span class="_ _8"> </span>&quot;logic<span class="_ _6"> </span>error&quot;</span></div><div class="t m0 x15 hd yba ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd ybb ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">19/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf17" class="pf w0 h0" data-page-no="17"><div class="pc pc17 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Exception<span class="_ _8"> </span>Capture</div><div class="t m0 x1 ha y21 ff8 fs6 fc0 sc0 ls0 ws0">NOTE:<span class="_ _e"> </span><span class="ff4">C++,<span class="_ _e"> </span>differently<span class="_ _e"> </span>from<span class="_ _e"> </span>other<span class="_ _b"> </span>programming<span class="_ _b"> </span>languages,<span class="_ _e"> </span>do<span class="_ _c"></span>es<span class="_ _e"> </span>not<span class="_ _b"> </span>require<span class="_ _e"> </span>explicit</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">dynamic<span class="_ _e"> </span>allocation<span class="_ _e"> </span>with<span class="_ _e"> </span>the<span class="_ _e"> </span>k<span class="_ _3"></span>eywo<span class="_ _3"></span>rd<span class="_ _18"> </span><span class="ffe">new<span class="_ _18"> </span></span>for<span class="_ _b"> </span>throwing<span class="_ _b"> </span>an<span class="_ _e"> </span>exception.<span class="_ _11"> </span>The<span class="_ _e"> </span>compiler</div><div class="t m0 x1 ha ybc ff4 fs6 fc0 sc0 ls0 ws0">implicitly<span class="_ _e"> </span>generates<span class="_ _b"> </span>the<span class="_ _e"> </span>approp<span class="_ _3"></span>riate<span class="_ _e"> </span>code<span class="_ _e"> </span>to<span class="_ _e"> </span>construct<span class="_ _e"> </span>and<span class="_ _b"> </span>clean<span class="_ _e"> </span>up<span class="_ _e"> </span>the<span class="_ _e"> </span>exception</div><div class="t m0 x1 ha ybd ff4 fs6 fc0 sc0 ls0 ws0">object.<span class="_ _11"> </span>Dynamically<span class="_ _e"> </span>allocated<span class="_ _e"> </span>objects<span class="_ _e"> </span>require<span class="_ _e"> </span>a<span class="_ _18"> </span><span class="ffe">delete<span class="_ _18"> </span></span>call</div><div class="t m0 x1 ha ybe ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>right<span class="_ _b"> </span>wa<span class="_ _3"></span>y<span class="_ _e"> </span>to<span class="_ _e"> </span>capture<span class="_ _b"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>is<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _18"> </span><span class="ffe">const<span class="_ _b"> </span></span>-reference.<span class="_ _11"> </span>Capturing<span class="_ _b"> </span>by-value<span class="_ _b"> </span>is</div><div class="t m0 x1 ha ybf ff4 fs6 fc0 sc0 ls0 ws0">also<span class="_ _e"> </span>possible<span class="_ _e"> </span>but,<span class="_ _e"> </span>it<span class="_ _e"> </span>involves<span class="_ _b"> </span>useless<span class="_ _e"> </span>copy<span class="_ _b"> </span>for<span class="_ _b"> </span>non-trivial<span class="_ _e"> </span>exception<span class="_ _e"> </span>objects</div><div class="t m0 xf ha yc0 ffe fs6 fc0 sc0 ls0 ws0">catch(...)<span class="_ _18"> </span><span class="ff4">can<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>used<span class="_ _e"> </span>to<span class="_ _e"> </span>capture<span class="_ _e"> </span>any<span class="_ _b"> </span>thrown<span class="_ _e"> </span>exception</span></div><div class="t m0 xf hd yc1 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd yc2 ff6 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff11 fc0">{</span></div><div class="t m0 x16 hd yc3 ff6 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff11 fca">&quot;runtime<span class="_ _8"> </span>error&quot;<span class="fc0">;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>throw<span class="_ _6"> </span>const<span class="_ _8"> </span>char*</span></span></span></div><div class="t m0 x15 hd yc4 ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd yc5 ff11 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;exception&quot;</span></span>;<span class="_ _1f"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _6"> </span>&quot;exception&quot;</span></div><div class="t m0 x15 hd yc6 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd yc7 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">20/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf18" class="pf w0 h0" data-page-no="18"><div class="pc pc18 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Exception<span class="_ _8"> </span>Propagation</div><div class="t m0 x1 ha yc8 ff4 fs6 fc0 sc0 ls0 ws0">Exceptions<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>automatically<span class="_ _e"> </span>p<span class="_ _3"></span>ropagated<span class="_ _e"> </span>along<span class="_ _b"> </span>the<span class="_ _e"> </span>call<span class="_ _e"> </span>stack.<span class="_ _11"> </span>The<span class="_ _e"> </span>user<span class="_ _b"> </span>can<span class="_ _e"> </span>also</div><div class="t m0 x1 ha yc9 ff4 fs6 fc0 sc0 ls0 ws0">control<span class="_ _e"> </span>ho<span class="_ _3"></span>w<span class="_ _e"> </span>they<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>p<span class="_ _3"></span>ropagated</div><div class="t m0 xf hc yca ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc ycb ff6 fs7 fc4 sc0 ls0 ws0">try<span class="_ _11"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc ycc ffa fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x6 hc ycd ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _11"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&amp;<span class="_ _11"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc yce ff6 fs7 fc4 sc0 ls0 ws0">throw<span class="_ _11"> </span><span class="ffa fc0">e;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _11"> </span>propagate<span class="_ _11"> </span>a<span class="_ _8"> </span>copy<span class="_ _11"> </span>of<span class="_ _8"> </span>the<span class="_ _11"> </span>exception</span></span></div><div class="t m0 x6 hc ycf ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _11"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&amp;<span class="_ _11"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc yd0 ff6 fs7 fc4 sc0 ls0 ws0">throw<span class="ffa fc0">;<span class="_ _1d"> </span><span class="ffd fc7">//<span class="_ _11"> </span>propagate<span class="_ _11"> </span>the<span class="_ _8"> </span>exception</span></span></div><div class="t m0 x6 hc yd1 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc yd2 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">21/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf19" class="pf w0 h0" data-page-no="19"><div class="pc pc19 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4YtcsDqcQaycQMRacDOXcBwLh3ADqyOVaWJnK1gc/x3PM0H40rz8aXc4dQAAEMbzcV9ZAQCAaEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAABfqdZqBQAA4sg5u6QCABCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMDS9TN6aynFhwEA/GcYhhm91iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDppVqrFQAAiCPn7JIKAEA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBgQfrxurUC8NPrfDMCANPYHy8pbdZtfHdda80gAACE8AExzxoCmrXQ/wAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Defining<span class="_ _8"> </span>Custom<span class="_ _8"> </span>Exceptions</div><div class="t m0 xf hc yd3 ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _18"> </span><span class="fc7">&lt;exception&gt;<span class="_ _25"> </span>//<span class="_ _11"> </span>to<span class="_ _8"> </span>not<span class="_ _11"> </span>confuse<span class="_ _11"> </span>with<span class="_ _8"> </span>&lt;stdexcept&gt;</span></div><div class="t m0 xf hc yd4 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _11"> </span><span class="fc8">MyException<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _11"> </span></span></span>public<span class="_ _11"> </span><span class="ffa fc0">std<span class="fc6">::</span>exception<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc yd5 ff6 fs7 fc4 sc0 ls0 ws0">const<span class="_ _11"> </span><span class="fc5">char<span class="ffa fc6">*<span class="_ _8"> </span><span class="fc8">what<span class="fc0">()<span class="_ _11"> </span></span></span></span></span>const<span class="_ _11"> </span>noexcept<span class="_ _8"> </span>override<span class="_ _11"> </span><span class="ffa fc0">{<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _11"> </span>could<span class="_ _11"> </span>be<span class="_ _8"> </span>also<span class="_ _11"> </span>&quot;constexpr&quot;</span></span></div><div class="t m0 x14 hc yd6 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fca">&quot;C++<span class="_ _8"> </span>Exception&quot;<span class="fc0">;</span></span></div><div class="t m0 x6 hc yd7 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc yd8 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hc yd9 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yda ff6 fs7 fc4 sc0 ls0 ws0">try<span class="_ _11"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc ydb ff6 fs7 fc4 sc0 ls0 ws0">throw<span class="_ _11"> </span><span class="ffa fc0">MyException();</span></div><div class="t m0 x6 hc ydc ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _11"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&amp;<span class="_ _11"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc ydd ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>e.what();<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>&quot;C++<span class="_ _11"> </span>Exception&quot;</span></div><div class="t m0 x6 hc yde ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc ydf ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">22/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1a" class="pf w0 h0" data-page-no="1a"><div class="pc pc1a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI2ElEQVR42u3csU0DQRCGUS+6EdGKGhARFSBEjERnNEE5BBRBB0TWRkxyZCQEgDHy7Om9Cs7/JZ8nuHZ1c7cDAIAyXl+ez6wAAEA1IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgE8tM60AAEAdEeGSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAOCIFhP80BjDCMBEeu9GAOblkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAAAcVctMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgDA7BYTMLsxxpZ+Tu/dOwUAl1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAcFotM60AAEAdEeGSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAACObJnoWccYXhgAwGF67xM9rUsqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAABQS8tMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIBiFhMAsDFjDCPwVe/dCBNxSQUAoByXVP+//Q0FAMpxSQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAp7WYAICN6b0bAWbnkgoAgEgFAIDvtMy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAA/NVMH/MfY3hhv+WL1gDAjFxSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgDA3FpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAALZq2T9eWgH4D2/3T0YA4ADXtw+tXZyv+/fdbl1XgwAAUMIHSNo1JR7DRV4AAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">noexcept<span class="_ _8"> </span><span class="ff1">Keyw<span class="_ _3"></span>o<span class="_ _3"></span>rd</span></div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++03<span class="_ _e"> </span><span class="fc0">allo<span class="_ _3"></span>ws<span class="_ _e"> </span>listing<span class="_ _e"> </span>the<span class="_ _b"> </span>exceptions<span class="_ _e"> </span>that<span class="_ _e"> </span>a<span class="_ _e"> </span>function<span class="_ _b"> </span>might<span class="_ _e"> </span>directly<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>indirectly<span class="_ _e"> </span>thro<span class="_ _3"></span>w,</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">e.g.<span class="_ _5"> </span><span class="ffe">void<span class="_"> </span>f()<span class="_"> </span><span class="fc8">throw</span>(int,<span class="_"> </span>const<span class="_"> </span>char*)<span class="_"> </span>{</span></div><div class="t m0 x1 ha ye0 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">dep<span class="_ _3"></span>recates<span class="_ _18"> </span><span class="ffe">throw<span class="_ _14"> </span></span>and<span class="_ _b"> </span>intro<span class="_ _c"></span>duces<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ffe fc8">noexcept<span class="_ _e"> </span></span>keyw<span class="_ _3"></span>o<span class="_ _3"></span>rd</span></div><div class="t m0 xf hc ye1 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f1<span class="fc0">();<span class="_ _26"> </span><span class="ffd fc7">//<span class="_ _11"> </span>may<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 xf hc ye2 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f2<span class="fc0">()<span class="_ _8"> </span></span></span><span class="fc4">noexcept<span class="ffa fc0">;<span class="_ _27"> </span><span class="ffd fc7">//<span class="_ _11"> </span>does<span class="_ _8"> </span>not<span class="_ _11"> </span>throw</span></span></span></div><div class="t m0 xf hc ye3 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f3<span class="fc0">()<span class="_ _8"> </span></span></span><span class="fc4">noexcept<span class="ffa fc0">(<span class="fc4">true</span>);<span class="_ _16"> </span><span class="ffd fc7">//<span class="_ _11"> </span>does<span class="_ _11"> </span>not<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 xf hc ye4 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f4<span class="fc0">()<span class="_ _8"> </span></span></span><span class="fc4">noexcept<span class="ffa fc0">(<span class="fc4">false</span>);<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>may<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 xf hc ye5 ff6 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6">&lt;</span><span class="fc5">bool<span class="_ _11"> </span><span class="ffa fc0">X<span class="fc6">&gt;</span></span></span></div><div class="t m0 xf hc ye6 ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc0">f5()<span class="_ _8"> </span></span><span class="fc4">noexcept<span class="ffa fc0">(X);<span class="_ _19"> </span><span class="ffd fc7">//<span class="_ _11"> </span>may<span class="_ _11"> </span>throw<span class="_ _8"> </span>if<span class="_ _11"> </span>X<span class="_ _8"> </span>is<span class="_ _11"> </span>false</span></span></span></div><div class="t m0 x1 h5 ye7 ff4 fs3 fc0 sc0 ls0 ws0">If<span class="_ _b"> </span>a<span class="_ _25"> </span><span class="ffe">noexcept<span class="_ _25"> </span></span>function<span class="_ _b"> </span>throw<span class="_ _b"> </span>an<span class="_ _b"> </span>exception,<span class="_ _b"> </span>the<span class="_ _b"> </span>runtime<span class="_ _b"> </span>calls<span class="_ _25"> </span><span class="ffe">std::terminate()</span></div><div class="t m0 xf ha ye8 ffe fs6 fc0 sc0 ls0 ws0">noexcept<span class="_ _18"> </span><span class="ff4">should<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>used<span class="_ _e"> </span>when<span class="_ _e"> </span>thro<span class="_ _3"></span>wing<span class="_ _e"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>is<span class="_ _b"> </span>imp<span class="_ _c"></span>ossible<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>unacceptable.</span></div><div class="t m0 x1 ha ye9 ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _e"> </span>is<span class="_ _b"> </span>also<span class="_ _e"> </span>useful<span class="_ _e"> </span>when<span class="_ _e"> </span>the<span class="_ _b"> </span>function<span class="_ _e"> </span>contains<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>outside<span class="_ _e"> </span>user<span class="_ _e"> </span>control,<span class="_ _e"> </span>e.g.<span class="_ _11"> </span><span class="ffe">std</span></div><div class="t m0 x1 ha yea ff4 fs6 fc0 sc0 ls0 ws0">functions/objects</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">23/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1b" class="pf w0 h0" data-page-no="1b"><div class="pc pc1b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">F<span class="_ _3"></span>unction-try-blo<span class="_ _c"></span>ck</div><div class="t m0 x1 ha yeb ff4 fs6 fc0 sc0 ls0 ws0">Exception<span class="_ _e"> </span>handlers<span class="_ _b"> </span>can<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>defined<span class="_ _b"> </span>around<span class="_ _b"> </span>the<span class="_ _e"> </span>b<span class="_ _c"></span>o<span class="_ _c"></span>dy<span class="_ _b"> </span>of<span class="_ _e"> </span>a<span class="_ _e"> </span>function</div><div class="t m0 xf hc yec ff6 fs7 fc5 sc0 ls0 ws0">void<span class="_ _11"> </span><span class="ffa fc8">f<span class="fc0">()<span class="_ _8"> </span></span></span><span class="fc4">try<span class="_ _11"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc yed ffa fs7 fc0 sc0 ls0 ws0">...<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>do<span class="_ _11"> </span>something</span></div><div class="t m0 xf hc yee ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(<span class="ff6 fc4">const<span class="_ _11"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&amp;<span class="_ _11"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x6 hc yef ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>e.what();</div><div class="t m0 xf hc yf0 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _11"> </span>{<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>other<span class="_ _11"> </span>exception</span></div><div class="t m0 x6 hc yf1 ffa fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 xf hc yf2 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">24/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1c" class="pf w0 h0" data-page-no="1c"><div class="pc pc1c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAItUlEQVR42u3ZvU3EUBCFUT/kEdGIGlZEVIAQMdJ2RhOUQ7BF0AHR6kW8xGSk/AjB2D6nAuvawadxu769nwAAoIyX0/OFFQAAqEakAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADwoY0xrAAAQB0R4ZIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAHs3mwCAOnrvRti5zDQCk0sqAAAiFQAAPud3/zfU+QnlVwgAsG0uqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgCwMbMJvi4zjQAA8AdcUgEAEKkAACBSAQBYnTbGsAIAAHVEhEsqAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAQGXzip61976rd5OZPlAAYJ9cUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDA/2pjDCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIBfNq/oWXvvXhgAwM9k5oqe1iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQCA+toYwwoAANQRES6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADs13x+PFgBWKPXhycjAGzSzd2xtavL5fw2TcuyGAQAgBLeAXAiKSkEb9KaAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>1/4</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _18"> </span><span class="ff6">new<span class="_ _18"> </span></span>op<span class="_ _c"></span>erato<span class="_ _3"></span>r<span class="_ _b"> </span>automatically<span class="_ _e"> </span>thro<span class="_ _3"></span>ws<span class="_ _e"> </span>an<span class="_ _b"> </span>exception<span class="_ _b"> </span>(<span class="_ _b"> </span><span class="ffe">std::bad_alloc<span class="_ _10"> </span></span>)<span class="_ _b"> </span>if<span class="_ _e"> </span>it<span class="_ _b"> </span>cannot</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">allo<span class="_ _c"></span>cate<span class="_ _b"> </span>the<span class="_ _e"> </span>memory</div><div class="t m0 xf ha ye0 ffe fs6 fc0 sc0 ls0 ws0">delete<span class="_ _18"> </span><span class="ff4">never<span class="_ _e"> </span>thro<span class="_ _3"></span>ws<span class="_ _e"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>(unrecoverable<span class="_ _b"> </span>error)</span></div><div class="t m0 xf hc ye1 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x17 hc ye2 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _11"> </span></span><span class="fc4">nullptr<span class="ffa fc0">;</span></span></div><div class="t m0 x17 hc ye3 ff6 fs7 fc4 sc0 ls0 ws0">try<span class="_ _11"> </span><span class="ffa fc0">{</span></div><div class="t m0 x12 hc ye4 ffa fs7 fc0 sc0 ls0 ws0">ptr<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">new<span class="_ _11"> </span><span class="fc5">int</span></span></span>[<span class="fc6">1000</span>];</div><div class="t m0 x17 hc ye5 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x17 hc ye6 ff6 fs7 fc4 sc0 ls0 ws0">catch<span class="_ _11"> </span><span class="ffa fc0">(</span>const<span class="_ _8"> </span><span class="ffa fc0">std<span class="fc6">::</span>bad_alloc<span class="fc6">&amp;<span class="_ _11"> </span></span>e)<span class="_ _11"> </span>{</span></div><div class="t m0 x12 hc yf3 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;bad<span class="_ _11"> </span>allocation:<span class="_ _11"> </span>&quot;<span class="_ _8"> </span></span>&lt;&lt;<span class="_ _11"> </span></span>e.what();</div><div class="t m0 x17 hc yf4 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x17 hc yf5 ff6 fs7 fc4 sc0 ls0 ws0">delete<span class="ffa fc0">[]<span class="_ _11"> </span>ptr;</span></div><div class="t m0 xf hc yf6 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">25/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1d" class="pf w0 h0" data-page-no="1d"><div class="pc pc1d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>2/4</div><div class="t m0 x1 ha yf7 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>also<span class="_ _b"> </span>provides<span class="_ _b"> </span>an<span class="_ _e"> </span>overload<span class="_ _e"> </span>of<span class="_ _e"> </span>the<span class="_ _18"> </span><span class="ff6">new<span class="_ _18"> </span></span>op<span class="_ _c"></span>erator<span class="_ _b"> </span>with<span class="_ _e"> </span>non-thro<span class="_ _3"></span>wing<span class="_ _e"> </span>memo<span class="_ _3"></span>ry</div><div class="t m0 x1 ha yf8 ff4 fs6 fc0 sc0 ls0 ws0">allo<span class="_ _c"></span>cation</div><div class="t m0 xf hc ycb ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;new&gt;<span class="_ _18"> </span>//<span class="_ _11"> </span>std::nothrow</span></div><div class="t m0 xf hc ycd ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yce ff6 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _11"> </span></span><span class="fc4">new<span class="_ _11"> </span><span class="ffa fc0">(std<span class="fc6">::</span>nothrow)<span class="_ _8"> </span></span></span>int<span class="ffa fc0">[<span class="fc6">1000</span>];</span></div><div class="t m0 x6 hc ycf ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _11"> </span><span class="ffa fc0">(ptr<span class="_ _8"> </span><span class="fc6">==<span class="_ _11"> </span></span></span>nullptr<span class="ffa fc0">)</span></div><div class="t m0 x14 hc yd0 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;bad<span class="_ _11"> </span>allocation&quot;</span></span>;</div><div class="t m0 xf hc yd1 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">26/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1e" class="pf w0 h0" data-page-no="1e"><div class="pc pc1e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsU0DQRCG0VvrRo5W1IAcUQFCxJbcGU1QDgFF0IEjayMmOWcklhxYAs+J9ypY/Zt8mrZ7fp0AAKCMr8+PjRUAAKhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8KNlphUAAKgjIlxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAuJ95RW8dY/gwAIDb9N5X9FqXVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARKoJAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAgDVrmWkFAADqiAiXVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQDgd80mgH9ljGGEG/TejQDwl1xSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgDAurXMtAIAAHVEhEsqAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMA18+nt0QoAl477dyMA3MXTy6G1h+1y+p6mZVkMAgBACWcm8iAAeFBcwgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>3/4</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">Thro<span class="_ _3"></span>wing<span class="_ _e"> </span>exceptions<span class="_ _e"> </span>in<span class="_ _e"> </span><span class="ff8">constructo<span class="_ _3"></span>rs<span class="_ _8"> </span><span class="ff4">is<span class="_ _e"> </span>fine<span class="_ _e"> </span>while<span class="_ _b"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>allo<span class="_ _3"></span>wed<span class="_ _b"> </span>in<span class="_ _e"> </span><span class="ff8">destructo<span class="_ _3"></span>rs</span></span></span></div><div class="t m0 xf hc y86 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _11"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc yf9 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _16"> </span>{<span class="_ _11"> </span><span class="ff6 fc4">new<span class="_ _8"> </span><span class="fc5">int</span></span>[<span class="fc6">10</span>];<span class="_ _11"> </span>}</div><div class="t m0 x6 hc y19 ff12 fs7 fc0 sc0 ls0 ws0"><span class="ffa">A()<span class="_ _11"> </span>{<span class="_ _8"> </span><span class="ff6 fc4">throw<span class="_ _11"> </span></span><span class="fc6">-2</span>;<span class="_ _29"> </span>}</span></div><div class="t m0 xf hc yfa ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hc yfb ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yfc ff6 fs7 fc4 sc0 ls0 ws0">try<span class="_ _11"> </span><span class="ffa fc0">{</span></div><div class="t m0 x12 hc yfd ffa fs7 fc0 sc0 ls0 ws0">A<span class="_ _11"> </span>a;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _11"> </span>could<span class="_ _11"> </span>throw<span class="_ _8"> </span>&quot;bad_alloc&quot;</span></div><div class="t m0 x18 hc yfe ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>&quot;a&quot;<span class="_ _8"> </span>is<span class="_ _11"> </span>out-of-scope<span class="_ _11"> </span>-&gt;<span class="_ _8"> </span>throw<span class="_ _11"> </span>2</div><div class="t m0 x6 hc yff ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ff6 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _11"> </span>{</div><div class="t m0 x18 hc y100 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>two<span class="_ _8"> </span>exceptions<span class="_ _11"> </span>at<span class="_ _11"> </span>the<span class="_ _8"> </span>same<span class="_ _11"> </span>time</div><div class="t m0 x6 hc y101 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc y102 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y103 ff8 fs6 fc0 sc0 ls0 ws0">Destructo<span class="_ _3"></span>rs<span class="_ _11"> </span><span class="ff4">should<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>mark<span class="_ _3"></span>ed<span class="_ _18"> </span><span class="ffe">noexcept</span></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">27/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1f" class="pf w0 h0" data-page-no="1f"><div class="pc pc1f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>4/4</div><div class="t m0 xf hc yd3 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _11"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y104 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _11"> </span><span class="fc0">ptr1,<span class="_ _8"> </span></span>*<span class="fc0">ptr2;</span></span></div><div class="t m0 x6 hc yd5 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _11"> </span>{</div><div class="t m0 x14 hc yd6 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">new<span class="_ _11"> </span><span class="fc5">int</span></span></span>[<span class="fc6">10</span>];</div><div class="t m0 x14 hc yd7 ffa fs7 fc0 sc0 ls0 ws0">ptr2<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">new<span class="_ _11"> </span><span class="fc5">int</span></span></span>[<span class="fc6">10</span>];<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>if<span class="_ _11"> </span>bad_alloc<span class="_ _8"> </span>here,<span class="_ _11"> </span>ptr1<span class="_ _11"> </span>is<span class="_ _8"> </span>lost</span></div><div class="t m0 x6 hc yd8 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc y105 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hc y106 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _11"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y107 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;<span class="ff6 fc5">int</span></span>[]<span class="fc6">&gt;<span class="_ _11"> </span></span>ptr1,<span class="_ _8"> </span>ptr2;</div><div class="t m0 x6 hc y108 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _11"> </span>{</div><div class="t m0 x14 hc y109 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6">&lt;<span class="ff6 fc5">int</span></span>[]<span class="fc6">&gt;</span>(<span class="fc6">10</span>);</div><div class="t m0 x14 hc y10a ffa fs7 fc0 sc0 ls0 ws0">ptr2<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6">&lt;<span class="ff6 fc5">int</span></span>[]<span class="fc6">&gt;</span>(<span class="fc6">10</span>);<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>if<span class="_ _8"> </span>bad_alloc<span class="_ _11"> </span>here,</span></div><div class="t m0 x6 hc y10b ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _11"> </span>ptr1<span class="_ _8"> </span>is<span class="_ _11"> </span>deallocated</span></div><div class="t m0 xf hc y10c ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">28/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf20" class="pf w0 h0" data-page-no="20"><div class="pc pc20 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Return<span class="_ _8"> </span>Co<span class="_ _c"></span>de<span class="_ _8"> </span>and<span class="_ _8"> </span>Exception<span class="_ _8"> </span>Summa<span class="_ _3"></span>ry</div><div class="t m0 x19 hb y10d ff1 fs7 fc0 sc0 ls0 ws0">Exception<span class="_ _2b"> </span>Return<span class="_ _b"> </span>Code</div><div class="t m0 x1a hb y10e ff1 fs7 fc0 sc0 ls0 ws0">Pros</div><div class="t m0 x1b hb y10f ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Cannot<span class="_ _b"> </span>be<span class="_ _b"> </span>igno<span class="_ _3"></span>red</span></div><div class="t m0 x1b hb y110 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Wo<span class="_ _3"></span>rk<span class="_ _b"> </span>w<span class="_ _3"></span>ell<span class="_ _10"> </span>with<span class="_ _b"> </span>object-o<span class="_ _3"></span>riented<span class="_ _b"> </span>semantic</span></div><div class="t m0 x1b hb y111 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Information:<span class="_ _6"> </span>Exceptions<span class="_ _10"> </span>can<span class="_ _b"> </span>be<span class="_ _b"> </span>a<span class="_ _3"></span>rbitrarily<span class="_ _10"> </span>rich</span></div><div class="t m0 x1b hb y112 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Clean<span class="_ _b"> </span>code:<span class="_ _8"> </span>Conceptually<span class="_ _7"></span>,<span class="_ _b"> </span>clean<span class="_ _10"> </span>separation</span></div><div class="t m0 xa hb y113 ffb fs7 fc0 sc0 ls0 ws0">b<span class="_ _c"></span>et<span class="_ _3"></span>w<span class="_ _3"></span>een<span class="_ _b"> </span>the<span class="_ _10"> </span>co<span class="_ _c"></span>de<span class="_ _10"> </span>that<span class="_ _10"> </span>detects<span class="_ _b"> </span>erro<span class="_ _3"></span>rs<span class="_ _b"> </span>and<span class="_ _10"> </span>the</div><div class="t m0 xa hb y114 ffb fs7 fc0 sc0 ls0 ws0">co<span class="_"> </span>d<span class="_"> </span>e<span class="_ _b"> </span>that<span class="_ _10"> </span>handles<span class="_ _b"> </span>the<span class="_ _10"> </span>error,<span class="_ _10"> </span>but.<span class="_ _24"> </span>.<span class="_ _2c"> </span>.<span class="_ _24"> </span>*</div><div class="t m0 x1b hb y115 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Non-Intrusive<span class="_ _b"> </span>wrt.<span class="_ _6"> </span>API:<span class="_ _10"> </span>Prop<span class="_ _c"></span>er<span class="_ _10"> </span>communication</span></div><div class="t m0 xa hb y116 ffb fs7 fc0 sc0 ls0 ws0">channel</div><div class="t m0 x1c hb y117 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Visibility:<span class="_ _6"> </span>p<span class="_ _3"></span>rototype<span class="_ _b"> </span>of<span class="_ _10"> </span>the<span class="_ _b"> </span>called<span class="_ _10"> </span>function</span></div><div class="t m0 x1c hb y118 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">No<span class="_ _b"> </span>performance<span class="_ _10"> </span>overhead</span></div><div class="t m0 x1c hb y119 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">No<span class="_ _b"> </span>code<span class="_ _b"> </span>bloat</span></div><div class="t m0 x1c hb y11a ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Easy<span class="_ _b"> </span>to<span class="_ _10"> </span>debug</span></div><div class="t m0 x1a hb y11b ff1 fs7 fc0 sc0 ls0 ws0">Cons</div><div class="t m0 x1b hb y11c ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Visibility:<span class="_ _6"> </span>Not<span class="_ _10"> </span>visible<span class="_ _b"> </span>without<span class="_ _10"> </span>further<span class="_ _10"> </span>analysis<span class="_ _b"> </span>of</span></div><div class="t m0 xa hb y11d ffb fs7 fc0 sc0 ls0 ws0">the<span class="_ _10"> </span>co<span class="_ _c"></span>de<span class="_ _10"> </span>or<span class="_ _10"> </span>do<span class="_ _c"></span>cumentation</div><div class="t m0 x1b hb y11e ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Clean<span class="_ _b"> </span>code:<span class="_ _8"> </span>*...<span class="_ _6"> </span>handling<span class="_ _10"> </span>exception<span class="_ _b"> </span>can<span class="_ _10"> </span>generate</span></div><div class="t m0 xa hb y11f ffb fs7 fc0 sc0 ls0 ws0">mo<span class="_ _3"></span>re<span class="_ _b"> </span>code<span class="_ _b"> </span>than<span class="_ _10"> </span>the<span class="_ _b"> </span>functionalit<span class="_ _3"></span>y<span class="_ _10"> </span>itself</div><div class="t m0 x1b hb y120 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Dynamic<span class="_ _b"> </span>behavior:<span class="_ _6"> </span>memory<span class="_ _10"> </span>and<span class="_ _10"> </span>RTTI</span></div><div class="t m0 x1b hb y121 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Extreme<span class="_ _b"> </span>performance<span class="_ _10"> </span>overhead<span class="_ _b"> </span>in<span class="_ _10"> </span>the<span class="_ _10"> </span>failure<span class="_ _b"> </span>case</span></div><div class="t m0 x1b hb y122 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Co<span class="_ _c"></span>de<span class="_ _10"> </span>bloat</span></div><div class="t m0 x1b hb y123 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Non-trivial<span class="_ _b"> </span>to<span class="_ _10"> </span>debug</span></div><div class="t m0 x1c hb y124 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Easy<span class="_ _b"> </span>to<span class="_ _10"> </span>ignore,<span class="_ _1c"> </span><span class="ffa">[[nodiscard]]<span class="_ _1c"> </span></span>can<span class="_ _b"> </span>help</span></div><div class="t m0 x1c hb y125 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Cannot<span class="_ _10"> </span>b<span class="_ _c"></span>e<span class="_ _2d"> </span>used<span class="_ _2d"> </span>with<span class="_ _10"> </span>object-oriented<span class="_ _2d"> </span>semantic</span></div><div class="t m0 x1c hb y126 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Information:<span class="_ _6"> </span>Histo<span class="_ _3"></span>rically<span class="_ _3"></span>,<span class="_ _10"> </span>a<span class="_ _10"> </span>simple<span class="_ _b"> </span>integer.</span></div><div class="t m0 x1d hb y127 ffb fs7 fc0 sc0 ls0 ws0">No<span class="_ _3"></span>wada<span class="_ _3"></span>ys,<span class="_ _b"> </span>richer<span class="_ _10"> </span>error<span class="_ _2d"> </span>co<span class="_ _c"></span>de</div><div class="t m0 x1c hb y128 ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Clean<span class="_ _b"> </span>code:<span class="_ _8"> </span>A<span class="_ _3"></span>t<span class="_ _b"> </span>least,<span class="_ _10"> </span>an<span class="_ _10"> </span>if<span class="_ _b"> </span>statement<span class="_ _10"> </span>after</span></div><div class="t m0 x1d hb y129 ffb fs7 fc0 sc0 ls0 ws0">each<span class="_ _10"> </span>function<span class="_ _b"> </span>call</div><div class="t m0 x1c hb y12a ff9 fs7 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ffb">Non-Intrusive<span class="_ _b"> </span>wrt.<span class="_ _6"> </span>API:<span class="_ _10"> </span>Monop<span class="_ _c"></span>olization<span class="_ _10"> </span>of</span></div><div class="t m0 x1d hb y12b ffb fs7 fc0 sc0 ls0 ws0">the<span class="_ _10"> </span>return<span class="_ _b"> </span>channel</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">29/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf21" class="pf w0 h0" data-page-no="21"><div class="pc pc21 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::expected<span class="_ _2e"> </span><span class="ff1">1/2</span></div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++23<span class="_ _e"> </span><span class="fc0">introduces<span class="_ _14"> </span><span class="ff6">std::expected<span class="_ _25"> </span></span>to<span class="_ _e"> </span>get<span class="_ _e"> </span>the<span class="_ _e"> </span>b<span class="_ _c"></span>est<span class="_ _b"> </span>properties<span class="_ _e"> </span>of<span class="_ _e"> </span>return<span class="_ _b"> </span>co<span class="_ _c"></span>des<span class="_ _e"> </span>and</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">exceptions</div><div class="t m0 x1 ha ye0 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>class<span class="_ _b"> </span>template<span class="_ _14"> </span><span class="ffe">expected&lt;T,<span class="_"> </span>E&gt;<span class="_ _18"> </span></span>contains<span class="_ _e"> </span>either:</div><div class="t m0 xd ha y12c ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">A<span class="_ _e"> </span>value<span class="_ _e"> </span>of<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _18"> </span><span class="ffe">T<span class="_ _10"> </span></span>,<span class="_ _e"> </span>the<span class="_ _e"> </span>expected<span class="_ _e"> </span>value<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e;<span class="_ _e"> </span>o<span class="_ _3"></span>r</span></div><div class="t m0 xd ha y12d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">A<span class="_ _e"> </span>value<span class="_ _e"> </span>of<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _18"> </span><span class="ffe">E<span class="_ _10"> </span></span>,<span class="_ _e"> </span>an<span class="_ _e"> </span>erro<span class="_ _3"></span>r<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>used<span class="_ _b"> </span>when<span class="_ _e"> </span>an<span class="_ _e"> </span>unexp<span class="_ _c"></span>ected<span class="_ _b"> </span>outcome<span class="_ _e"> </span>o<span class="_ _c"></span>ccured</span></div><div class="t m0 xf hc y12e ff6 fs7 fc4 sc0 ls0 ws0">enum<span class="_ _11"> </span>class<span class="_ _8"> </span><span class="fc8">Error<span class="_ _11"> </span><span class="ffa fc0">{<span class="_ _11"> </span>Invalid<span class="_ _8"> </span>};</span></span></div><div class="t m0 xf hc y12f ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>expected<span class="fc6">&lt;<span class="ff6 fc5">int</span></span>,<span class="_ _11"> </span>Error<span class="fc6">&gt;<span class="_ _8"> </span></span>f(<span class="ff6 fc5">int<span class="_ _11"> </span></span>v)<span class="_ _11"> </span>{</div><div class="t m0 x6 hc y130 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _11"> </span><span class="ffa fc0">(v<span class="_ _8"> </span><span class="fc6">&gt;<span class="_ _11"> </span>0</span>)</span></div><div class="t m0 x14 hc y131 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fc6">3<span class="fc0">;</span></span></div><div class="t m0 x6 hc y132 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fc0">std<span class="fc6">::</span>unexpected(Error<span class="fc6">::</span>Invalid);</span></div><div class="t m0 xf hc y133 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">30/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf22" class="pf w0 h0" data-page-no="22"><div class="pc pc22 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::expected<span class="_ _2e"> </span><span class="ff1">2/2</span></div><div class="t m0 x1 ha y134 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>user<span class="_ _b"> </span>cho<span class="_ _c"></span>oses<span class="_ _e"> </span>ho<span class="_ _3"></span>w<span class="_ _e"> </span>to<span class="_ _e"> </span>handle<span class="_ _b"> </span>the<span class="_ _e"> </span>error<span class="_ _b"> </span>dep<span class="_ _c"></span>ending<span class="_ _e"> </span>on<span class="_ _b"> </span>the<span class="_ _e"> </span>context</div><div class="t m0 xf hc y135 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">ret<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>f(n);</span></div><div class="t m0 xf hc y136 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span><span class="ff13">Return<span class="_ _8"> </span>code<span class="_ _11"> </span>handling</span></div><div class="t m0 xf hc y137 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _11"> </span><span class="ffa fc0">(<span class="fc6">!</span>ret)</span></div><div class="t m0 x6 hc y138 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>error<span class="_ _8"> </span>handling</div><div class="t m0 xf hc y139 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">v<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span>*</span>ret<span class="_ _11"> </span><span class="fc6">+<span class="_ _8"> </span>3</span>;<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>execute<span class="_ _11"> </span>without<span class="_ _11"> </span>checking</span></span></div><div class="t m0 xf hc y13a ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span><span class="ff13">Exception<span class="_ _8"> </span>handling</span></div><div class="t m0 xf hc y13b ffa fs7 fc0 sc0 ls0 ws0">ret.value();<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>throw<span class="_ _11"> </span>an<span class="_ _11"> </span>exception<span class="_ _8"> </span>if<span class="_ _11"> </span>there<span class="_ _8"> </span>is<span class="_ _11"> </span>a<span class="_ _11"> </span>problem</span></div><div class="t m0 xf hc y13c ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span><span class="ff13">Monadic<span class="_ _8"> </span>operations</span></div><div class="t m0 xf hc y13d ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">lambda<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>[](</span><span class="fc5">int<span class="_ _11"> </span><span class="ffa fc0">x)<span class="_ _8"> </span>{<span class="_ _11"> </span></span></span>return<span class="_ _8"> </span><span class="ffa fc0">(x<span class="_ _11"> </span><span class="fc6">&gt;<span class="_ _11"> </span>3</span>)<span class="_ _8"> </span><span class="fc6">?<span class="_ _11"> </span>4<span class="_ _11"> </span>:<span class="_ _8"> </span></span>std<span class="fc6">::</span>unexpected(Error<span class="fc6">::</span>Invalid);<span class="_ _11"> </span>};</span></div><div class="t m0 xf hc y13e ffa fs7 fc0 sc0 ls0 ws0">ret.and_then(lambda)<span class="_ _2f"> </span><span class="ffd fc7">//<span class="_ _11"> </span>pass<span class="_ _8"> </span>the<span class="_ _11"> </span>value<span class="_ _11"> </span>to<span class="_ _8"> </span>another<span class="_ _11"> </span>function</span></div><div class="t m0 x17 hc y13f ffa fs7 fc0 sc0 ls0 ws0">.tranform([](<span class="ff6 fc5">int<span class="_ _11"> </span></span>x)<span class="_ _8"> </span>{<span class="_ _11"> </span><span class="ff6 fc4">return<span class="_ _11"> </span></span>x<span class="_ _8"> </span><span class="fc6">+<span class="_ _11"> </span>4</span>;<span class="_ _8"> </span>};)<span class="_ _30"> </span><span class="ffd fc7">//<span class="_ _11"> </span>transform<span class="_ _8"> </span>the<span class="_ _11"> </span>previous<span class="_ _11"> </span>value</span></div><div class="t m0 x17 hc y140 ffa fs7 fc0 sc0 ls0 ws0">.transform_error([](<span class="ff6 fc4">auto<span class="_ _11"> </span></span>error_code){<span class="_ _8"> </span><span class="ffd fc7">/*error<span class="_ _11"> </span>handling*/<span class="_ _25"> </span></span>};</div><div class="t m0 x10 ha y141 ff7 fs6 fc0 sc0 ls0 ws0"><span class="fcc sc0"></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">31/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf23" class="pf w0 h0" data-page-no="23"><div class="pc pc23 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Alternative<span class="_ _8"> </span>Erro<span class="_ _3"></span>r<span class="_ _8"> </span>Handling<span class="_ _8"> </span>App<span class="_ _3"></span>roaches<span class="_ _31"> </span>1/2</div><div class="t m0 xd ha y142 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Global<span class="_ _6"> </span>state<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _5"> </span><span class="ffe">errno</span></span></span></div><div class="t m0 xc h5 y143 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Easily<span class="_ _b"> </span>forget<span class="_ _b"> </span>to<span class="_ _b"> </span>check<span class="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>failures</div><div class="t m0 xc h5 y144 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Error<span class="_ _b"> </span>p<span class="_ _3"></span>ropagation<span class="_ _b"> </span>using<span class="_ _25"> </span><span class="ffe">if<span class="_ _18"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>ea<span class="_ _3"></span>rly<span class="_ _18"> </span><span class="ffe">return<span class="_ _25"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 xc h5 y145 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>No<span class="_ _b"> </span>compiler<span class="_ _b"> </span>optimizations<span class="_ _b"> </span>due<span class="_ _b"> </span>to<span class="_ _b"> </span>global<span class="_ _b"> </span>state</div><div class="t m0 xd ha y146 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Simple<span class="_ _6"> </span>error<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _5"> </span><span class="ffe">int<span class="_ _10"> </span></span>,<span class="_ _18"> </span><span class="ffe">enum<span class="_ _10"> </span></span>,<span class="_ _e"> </span>etc.</span></span></div><div class="t m0 xc h5 y147 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Easily<span class="_ _b"> </span>forget<span class="_ _b"> </span>to<span class="_ _b"> </span>check<span class="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>failures<span class="_ _b"> </span>(wo<span class="_ _3"></span>rka<span class="_ _3"></span>round<span class="_ _18"> </span><span class="ffe">[[nodiscard]]<span class="_ _10"> </span></span>)</div><div class="t m0 xc h5 y148 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Error<span class="_ _b"> </span>p<span class="_ _3"></span>ropagation<span class="_ _b"> </span>using<span class="_ _25"> </span><span class="ffe">if<span class="_ _18"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>ea<span class="_ _3"></span>rly<span class="_ _18"> </span><span class="ffe">return<span class="_ _25"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 xc h5 y149 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Potential<span class="_ _b"> </span>erro<span class="_ _3"></span>r<span class="_ _b"> </span>propagation<span class="_ _10"> </span>through<span class="_ _b"> </span>different<span class="_ _b"> </span>contexts<span class="_ _b"> </span>and<span class="_ _b"> </span>losing<span class="_ _b"> </span>initial<span class="_ _b"> </span>error</div><div class="t m0 xb h5 y14a ff4 fs3 fc0 sc0 ls0 ws0">info<span class="_ _3"></span>rmation</div><div class="t m0 xc h5 y14b ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Constructor<span class="_ _b"> </span>erro<span class="_ _3"></span>rs<span class="_ _b"> </span>cannot<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>handled</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">32/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf24" class="pf w0 h0" data-page-no="24"><div class="pc pc24 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Alternative<span class="_ _8"> </span>Erro<span class="_ _3"></span>r<span class="_ _8"> </span>Handling<span class="_ _8"> </span>App<span class="_ _3"></span>roaches<span class="_ _31"> </span>2/2</div><div class="t m0 xd ha y14c ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">std::error_code<span class="_ _10"> </span><span class="ff4">,<span class="_ _e"> </span>standa<span class="_ _3"></span>rdized<span class="_ _e"> </span>erro<span class="_ _3"></span>r<span class="_ _e"> </span>co<span class="_ _c"></span>de</span></span></div><div class="t m0 xc h5 y14d ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Easily<span class="_ _b"> </span>forget<span class="_ _b"> </span>to<span class="_ _b"> </span>check<span class="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>failures<span class="_ _b"> </span>(wo<span class="_ _3"></span>rka<span class="_ _3"></span>round<span class="_ _18"> </span><span class="ffe">[[nodiscard]]<span class="_ _10"> </span></span>)</div><div class="t m0 xc h5 y14e ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Error<span class="_ _b"> </span>p<span class="_ _3"></span>ropagation<span class="_ _b"> </span>using<span class="_ _25"> </span><span class="ffe">if<span class="_ _18"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>ea<span class="_ _3"></span>rly<span class="_ _18"> </span><span class="ffe">return<span class="_ _25"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 xc h5 y14f ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Co<span class="_ _c"></span>de<span class="_ _b"> </span>bloating<span class="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>adding<span class="_ _b"> </span>new<span class="_ _b"> </span>enumerators<span class="_ _b"> </span>(see<span class="_ _b"> </span><span class="ffe">Your<span class="_"> </span>own<span class="_"> </span>error<span class="_"> </span>code</span>)</div><div class="t m0 xc h5 y150 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Constructor<span class="_ _b"> </span>erro<span class="_ _3"></span>rs<span class="_ _b"> </span>cannot<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>handled</div><div class="t m0 xd ha y151 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff1">Supp<span class="_ _c"></span>o<span class="_ _3"></span>rting<span class="_ _6"> </span>libra<span class="_ _3"></span>ries<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _11"> </span><span class="ffe">Boost<span class="_"> </span>Outcome</span>,<span class="_ _b"> </span><span class="ffe">STX</span>,<span class="_ _e"> </span>etc.</span></span></div><div class="t m0 xc h5 y152 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Require<span class="_ _b"> </span>external<span class="_ _b"> </span>dep<span class="_ _c"></span>endencies</div><div class="t m0 xc h5 y153 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Constructor<span class="_ _b"> </span>erro<span class="_ _3"></span>rs<span class="_ _b"> </span>cannot<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>handled<span class="_ _b"> </span>in<span class="_ _b"> </span>a<span class="_ _b"> </span>direct<span class="_ _b"> </span>w<span class="_ _3"></span>ay</div><div class="t m0 xc h5 y154 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Extra<span class="_ _b"> </span>logic<span class="_ _b"> </span>for<span class="_ _b"> </span>managing<span class="_ _b"> </span>return<span class="_ _b"> </span>values</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">33/56</div><a class="l" href="https://akrzemi1.wordpress.com/2017/07/12/your-own-error-code/"><div class="d m1" style="border-style:none;position:absolute;left:271.291000px;bottom:137.243000px;width:101.370000px;height:11.821000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://www.boost.org/doc/libs/1_77_0/libs/outcome/doc/html/index.html"><div class="d m1" style="border-style:none;position:absolute;left:173.297000px;bottom:94.335000px;width:76.447000px;height:11.690000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://lamarrr.github.io/STX/"><div class="d m1" style="border-style:none;position:absolute;left:254.418000px;bottom:94.335000px;width:19.175000px;height:11.690000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf25" class="pf w0 h0" data-page-no="25"><div class="pc pc25 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Sma<span class="_ _d"></span>rt<span class="_ _1"> </span>p<span class="_ _0"></span>ointers</div><a class="l" href="#pf25" data-dest-detail='[37,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:170.118000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf26" class="pf w0 h0" data-page-no="26"><div class="pc pc26 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIf0lEQVR42u3ZsQkCMQCG0UQuWDqDWDmBiLVwK1g4j0u4gYUzCBYO4QZWV3mmiZ2lgoXk8L0Jwp/mI4mzxSoAAEA1rpfzyAoAANRGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8BJzzlYAAKAeKSUvqQAAVEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAvNUM5aD3vm83WxcGw3I6HowAwBdiztkKAADUI6Xkux8AgOqIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAPDfmm43tQIAv3Fb740AfDRftjFOxqV7hFBKMQgAAFV4Ap/6HQJCw8l9AAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _6"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span><span class="ff4">is<span class="_ _b"> </span>a<span class="_ _e"> </span>p<span class="_ _c"></span>ointer-lik<span class="_ _3"></span>e<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>with<span class="_ _b"> </span>some<span class="_ _e"> </span>additional<span class="_ _e"> </span>functionalit<span class="_ _3"></span>y<span class="_ _7"></span>,<span class="_ _e"> </span>e.g.<span class="_ _11"> </span><span class="ff8">automatic</span></span></div><div class="t m0 x1 ha y57 ff8 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _e"> </span>deallo<span class="_ _c"></span>cation<span class="_ _e"> </span><span class="ff4">(when<span class="_ _e"> </span>the<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>is<span class="_ _e"> </span>no<span class="_ _b"> </span>longer<span class="_ _e"> </span>in<span class="_ _e"> </span>use,<span class="_ _e"> </span>the<span class="_ _b"> </span>memory<span class="_ _b"> </span>it<span class="_ _e"> </span>p<span class="_ _c"></span>oints<span class="_ _e"> </span>to<span class="_ _b"> </span>is</span></div><div class="t m0 x1 ha ybc ff4 fs6 fc0 sc0 ls0 ws0">deallo<span class="_ _c"></span>cated),<span class="_ _b"> </span>reference<span class="_ _e"> </span>counting,<span class="_ _e"> </span>etc.</div><div class="t m0 x1 ha y155 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">p<span class="_ _3"></span>rovides<span class="_ _e"> </span>three<span class="_ _e"> </span>sma<span class="_ _3"></span>rt<span class="_ _e"> </span>pointer<span class="_ _e"> </span>types:</span></div><div class="t m0 xd ha y156 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff6">std::unique_ptr</span></div><div class="t m0 xd ha y157 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff6">std::shared_ptr</span></div><div class="t m0 xd ha y158 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff6">std::weak_ptr</span></div><div class="t m0 x1 ha y159 ff4 fs6 fc0 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _e"> </span>p<span class="_ _c"></span>ointers<span class="_ _b"> </span>prevent<span class="_ _b"> </span>most<span class="_ _e"> </span>situations<span class="_ _e"> </span>of<span class="_ _e"> </span>memo<span class="_ _3"></span>ry<span class="_ _e"> </span>leaks<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>making<span class="_ _e"> </span>the<span class="_ _b"> </span>memory</div><div class="t m0 x1 ha y15a ff4 fs6 fc0 sc0 ls0 ws0">deallo<span class="_ _c"></span>cation<span class="_ _b"> </span>automatic</div><div class="t m0 xd hc y15b ffa fs7 fc3 sc0 ls0 ws0">C++<span class="_ _11"> </span>Smart<span class="_ _8"> </span>Pointers</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">34/56</div><a class="l" href="http://embeddedartistry.com/blog/2016/9/19/rfr0r76r0ovd0gk574kfsldxfbklgs"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:2.900000px;width:86.725000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf27" class="pf w0 h0" data-page-no="27"><div class="pc pc27 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers<span class="_ _8"> </span>Benefits</div><div class="t m0 xd ha y15c ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">If<span class="_ _e"> </span>a<span class="_ _e"> </span>sma<span class="_ _3"></span>rt<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>go<span class="_ _c"></span>es<span class="_ _e"> </span><span class="ff8">out-of-scop<span class="_ _c"></span>e</span>,<span class="_ _b"> </span>the<span class="_ _e"> </span>app<span class="_ _3"></span>ropriate<span class="_ _b"> </span>metho<span class="_ _c"></span>d<span class="_ _e"> </span>to<span class="_ _e"> </span>release<span class="_ _b"> </span>resources</span></div><div class="t m0 x6 ha y15d ff4 fs6 fc0 sc0 ls0 ws0">is<span class="_ _e"> </span>called<span class="_ _b"> </span>automatically<span class="_ _d"></span>.<span class="_ _11"> </span>The<span class="_ _e"> </span>memo<span class="_ _3"></span>ry<span class="_ _e"> </span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>left<span class="_ _b"> </span>dangling</div><div class="t m0 xd ha y15e ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">Smart<span class="_ _b"> </span>p<span class="_ _c"></span>ointers<span class="_ _e"> </span>will<span class="_ _e"> </span>automatically<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>set<span class="_ _b"> </span>to<span class="_ _14"> </span><span class="ffe">nullptr<span class="_ _18"> </span></span>if<span class="_ _e"> </span>not<span class="_ _b"> </span>initialized<span class="_ _e"> </span>or<span class="_ _b"> </span>when</span></div><div class="t m0 x6 ha y15f ff4 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _e"> </span>has<span class="_ _e"> </span>b<span class="_ _c"></span>een<span class="_ _b"> </span>released</div><div class="t m0 xd ha y160 ff7 fs6 fc0 sc0 ls0 ws0"></div><div class="t m0 xa ha y161 ffe fs6 fc0 sc0 ls0 ws0">std::shared_ptr<span class="_ _18"> </span><span class="ff4">provides<span class="_ _b"> </span>automatic<span class="_ _e"> </span>reference<span class="_ _e"> </span>count</span></div><div class="t m0 xd ha y162 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _a"> </span><span class="ff4">If<span class="_ _e"> </span>a<span class="_ _e"> </span>sp<span class="_ _c"></span>ecial<span class="_ _25"> </span><span class="ffe">delete<span class="_ _14"> </span></span>function<span class="_ _b"> </span>needs<span class="_ _e"> </span>to<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>called,<span class="_ _e"> </span>it<span class="_ _e"> </span>will<span class="_ _e"> </span>be<span class="_ _e"> </span>sp<span class="_ _c"></span>ecified<span class="_ _b"> </span>in<span class="_ _e"> </span>the<span class="_ _e"> </span>p<span class="_ _c"></span>ointer</span></div><div class="t m0 x6 ha y163 ff4 fs6 fc0 sc0 ls0 ws0">t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>and<span class="_ _b"> </span>declaration,<span class="_ _b"> </span>and<span class="_ _e"> </span>will<span class="_ _e"> </span>automatically<span class="_ _e"> </span>be<span class="_ _e"> </span>called<span class="_ _e"> </span>on<span class="_ _e"> </span>delete</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">35/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf28" class="pf w0 h0" data-page-no="28"><div class="pc pc28 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJBElEQVR42u3bsU0DMQCG0TM6i8piAEqqTIAQSpECiTK7ZAIGyAYMkQ1ShIIN0rBBKuQKN0dHQRGJKBH23XsDRNbvFJ/udOHu/rEDAIBqfLy/XVkBAIDaiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAH6EUooVAACoR4zRk1QAAKojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAULu+obPmnF0Yx6WUjAAAI+BJKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAExMbwIAgD+ZzReX+/H9bmvhrutCKaWVs+acXRjHpZSMAACtizF63Q8AQHVEKgAAIhUAAEQqAADNaenDKQAApsCHUwAA1EikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAID/1bdy0Nl80day+93W3wsA4DShlGIFAADqEWP0uh8AgOqIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAD4pW/orDlnFwYAcJqUUkOn9SQVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAjExvAmA6luu1Ec5is1oZAbioUEpp5aw5ZxcGAHCalFIrR40xet0PAEB1RCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAADSmNwEwHcv12ghnsVmtjABcVCiltHLWnLMLAwA4TUqplaPGGL3uBwCgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgGqEw8utFQAYh8PTqxFgBGYPzyHcXA+fX103DINBAACowjcbMz3nh43CywAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _32"> </span>1/4</span></div><div class="t m0 xf ha y164 ff6 fs6 fc0 sc0 ls0 ws0">std::unique_ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _e"> </span>used<span class="_ _e"> </span>to<span class="_ _e"> </span>manage<span class="_ _b"> </span>any<span class="_ _e"> </span>dynamically<span class="_ _e"> </span>allo<span class="_ _c"></span>cated<span class="_ _b"> </span>object<span class="_ _e"> </span>that<span class="_ _e"> </span>is<span class="_ _e"> </span>not</span></div><div class="t m0 x1 ha y165 ff4 fs6 fc0 sc0 ls0 ws0">sha<span class="_ _3"></span>red<span class="_ _e"> </span>by<span class="_ _b"> </span>multiple<span class="_ _e"> </span>objects</div><div class="t m0 xf hd y166 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y167 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hd y168 ff6 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff11 fc0">{</span></span></div><div class="t m0 x15 hd y169 ff11 fs5 fc0 sc0 ls0 ws0">A()<span class="_ _13"> </span>{<span class="_ _6"> </span>std<span class="fc6">::</span>cout<span class="_ _8"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;Constructor<span class="ff6 fcd">\n</span>&quot;</span></span>;<span class="_ _6"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>called<span class="_ _8"> </span>when<span class="_ _6"> </span>A()</span></div><div class="t m0 x15 hd y16a ff14 fs5 fc0 sc0 ls0 ws0"><span class="ff11">A()<span class="_ _6"> </span>{<span class="_ _8"> </span>std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;Destructor<span class="ff6 fcd">\n</span>&quot;</span></span>;<span class="_ _13"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>called<span class="_ _8"> </span>when<span class="_ _6"> </span>u_ptr1,</span></span></div><div class="t m0 xf hd y16b ff11 fs5 fc0 sc0 ls0 ws0">};<span class="_ _33"> </span><span class="ffd fc7">//<span class="_ _6"> </span>u_ptr2<span class="_ _8"> </span>are<span class="_ _6"> </span>out-of-scope</span></div><div class="t m0 xf hd y16c ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y16d ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _34"> </span><span class="ff11 fc0">raw_ptr<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span></span>new<span class="_ _8"> </span><span class="ff11 fc0">A();</span></div><div class="t m0 x15 hd y16e ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>u_ptr1(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y16f ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>u_ptr2(raw_ptr);</div><div class="t m0 xf hd y170 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>std::unique_ptr&lt;A&gt;<span class="_ _6"> </span>u_ptr3(raw_ptr);<span class="_ _6"> </span>//<span class="_ _8"> </span>no<span class="_ _6"> </span>compile<span class="_ _8"> </span>error,<span class="_ _6"> </span>but<span class="_ _8"> </span>wrong!!<span class="_ _6"> </span>(not<span class="_ _6"> </span>unique)</div><div class="t m0 xf hd y171 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>u_ptr1<span class="_ _6"> </span>=<span class="_ _6"> </span>raw_ptr;<span class="_ _26"> </span>//<span class="_ _6"> </span>compile<span class="_ _6"> </span>error<span class="_ _8"> </span>(not<span class="_ _6"> </span>unique)</div><div class="t m0 xf hd y172 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>u_ptr1<span class="_ _6"> </span>=<span class="_ _6"> </span>u_ptr2;<span class="_ _35"> </span>//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error<span class="_ _6"> </span>(not<span class="_ _8"> </span>unique)</div><div class="t m0 x15 hd y173 ff11 fs5 fc0 sc0 ls0 ws0">u_ptr1<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>move(u_ptr2);<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>delete<span class="_ _6"> </span>u_ptr1;</span></div><div class="t m0 xf hd y174 ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _36"> </span><span class="ffd fc7">//<span class="_ _6"> </span>u_ptr1<span class="_ _8"> </span>=<span class="_ _6"> </span>u_ptr2;</span></div><div class="t m0 x1e hd y175 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _6"> </span>u_ptr2<span class="_ _8"> </span>=<span class="_ _6"> </span>nullptr</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">36/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf29" class="pf w0 h0" data-page-no="29"><div class="pc pc29 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _32"> </span>2/4</span></div><div class="t m0 xf ha y21 ff6 fs6 fc0 sc0 ls0 ws0">std::unique_ptr<span class="_ _18"> </span><span class="ff4">metho<span class="_ _c"></span>ds</span></div><div class="t m0 xd ha y176 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">get<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _e"> </span>underlying<span class="_ _e"> </span>pointer</span></span></span></div><div class="t m0 xd ha y177 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">operator*<span class="_ _16"> </span>operator-&gt;<span class="_ _14"> </span></span><span class="ff4">dereferences<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>to<span class="_ _b"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object</span></div><div class="t m0 xd ha y178 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">operator[]<span class="_ _18"> </span></span><span class="ff4">provides<span class="_ _b"> </span>indexed<span class="_ _e"> </span>access<span class="_ _e"> </span>to<span class="_ _e"> </span>the<span class="_ _b"> </span>stored<span class="_ _b"> </span>arra<span class="_ _3"></span>y<span class="_ _e"> </span>(if<span class="_ _e"> </span>it<span class="_ _b"> </span>supp<span class="_ _c"></span>o<span class="_ _3"></span>rts<span class="_ _e"> </span>random</span></div><div class="t m0 x6 ha y179 ff4 fs6 fc0 sc0 ls0 ws0">access<span class="_ _e"> </span>iterato<span class="_ _3"></span>r)</div><div class="t m0 xd ha y17a ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">release<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>a<span class="_ _e"> </span>pointer<span class="_ _e"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object<span class="_ _b"> </span>and<span class="_ _e"> </span>releases<span class="_ _e"> </span>the<span class="_ _e"> </span>o<span class="_ _3"></span>wnership</span></span></span></div><div class="t m0 xd ha y17b ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object<span class="_ _b"> </span>with<span class="_ _e"> </span></span>ptr</span></span></div><div class="t m0 x1 ha y17c ff4 fs6 fc0 sc0 ls0 ws0">Utilit<span class="_ _3"></span>y<span class="_ _e"> </span>method:<span class="_ _5"> </span><span class="ffe fc8">std::make_unique&lt;T&gt;<span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _e"> </span>a<span class="_ _b"> </span>unique<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>to<span class="_ _b"> </span>a<span class="_ _e"> </span>class<span class="_ _18"> </span><span class="ffe">T<span class="_ _18"> </span></span>that</div><div class="t m0 x1 ha y17d ff4 fs6 fc0 sc0 ls0 ws0">manages<span class="_ _e"> </span>a<span class="_ _b"> </span>new<span class="_ _e"> </span>object</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">37/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2a" class="pf w0 h0" data-page-no="2a"><div class="pc pc2a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIeElEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGItuJlLOI6FQ7iB1XGVaWJnKSoI/8nzTBC+NC9/Xm12CQAAwrhezjMrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAp11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAAPChbkJvHcfRhwEAfKfv+wm91iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgpVxrtQIAAHGUUlxSAQAIR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAwJ/phuPSCgDwptv+ZAT4tfX2kPNi3oZ7Sq01gwAAEMIDAVsaAsfD8zUAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _32"> </span>3/4</span></div><div class="t m0 xf hd y17e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y17f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hd y180 ff6 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff11 fc0">{</span></span></div><div class="t m0 x15 hd y181 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf hd y182 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hd y183 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y184 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>u_ptr1(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y185 ff11 fs5 fc0 sc0 ls0 ws0">u_ptr1<span class="fc6">-&gt;</span>value;<span class="_ _37"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 hd y186 ff11 fs5 fc0 sc0 ls0 ws0">(<span class="fc6">*</span>u_ptr1).value;<span class="_ _38"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 hd y187 ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff11 fc0">u_ptr2<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6">&lt;</span>A<span class="fc6">&gt;</span>();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>create<span class="_ _6"> </span>a<span class="_ _8"> </span>new<span class="_ _6"> </span>unique<span class="_ _8"> </span>pointer</span></span></div><div class="t m0 x15 hd y188 ff11 fs5 fc0 sc0 ls0 ws0">u_ptr1.reset(<span class="ff6 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _39"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 hd y189 ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff11 fc0">raw_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>u_ptr1.release();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>release</span></span></div><div class="t m0 x15 hd y18a ff6 fs5 fc4 sc0 ls0 ws0">delete<span class="ff11 fc0">[]<span class="_ _6"> </span>raw_ptr;</span></div><div class="t m0 x15 hd y18b ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;</span>A[]<span class="fc6">&gt;<span class="_ _6"> </span></span>u_ptr3(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A[<span class="fc6">10</span>]);</div><div class="t m0 x15 hd y18c ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="ff11 fc6">&amp;<span class="_ _6"> </span><span class="fc0">obj<span class="_ _8"> </span></span>=<span class="_ _8"> </span><span class="fc0">u_ptr3[</span>3<span class="fc0">];<span class="_ _3a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>access</span></span></span></div><div class="t m0 xf hd y18d ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">38/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2b" class="pf w0 h0" data-page-no="2b"><div class="pc pc2b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdklEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGItuJlLOI6FQ7iB1XGVaWJnr6L+B88zQfjSvPx5tdklAAAI43o5z6wAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgKdca7UCAABxlFJcUgEACEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAPifbkJvHcfRhwEAvKfv+wm91iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAA8BO51moFAADiKKW4pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAB8ohuOSysAwJfc9icjwKvW20POi3kb7im11gwCAEAIDzPiGgIC/KlQAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _32"> </span>4/4</span></div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Implement<span class="_ _6"> </span>a<span class="_ _e"> </span>custom<span class="_ _6"> </span>deleter</div><div class="t m0 xf hc y18e ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hc y18f ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hc y190 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _11"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y191 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">value;</span></div><div class="t m0 xf hc y192 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hc y193 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc y194 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">DeleteLambda<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>[](A<span class="fc6">*<span class="_ _11"> </span></span>x)<span class="_ _8"> </span>{</span></div><div class="t m0 x14 hc y195 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;delete&quot;<span class="_ _11"> </span></span>&lt;&lt;<span class="_ _11"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 x14 hc y196 ff6 fs7 fc4 sc0 ls0 ws0">delete<span class="_ _11"> </span><span class="ffa fc0">x;</span></div><div class="t m0 x6 hc y197 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x6 hc y198 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6">&lt;</span>A,<span class="_ _11"> </span><span class="ff6 fc4">decltype</span>(DeleteLambda)<span class="fc6">&gt;</span></div><div class="t m0 x14 hc y199 ffa fs7 fc0 sc0 ls0 ws0">x(<span class="ff6 fc4">new<span class="_ _11"> </span></span>A(),<span class="_ _8"> </span>DeleteLambda);</div><div class="t m0 xf hc y19a ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _11"> </span>&quot;delete&quot;</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">39/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2c" class="pf w0 h0" data-page-no="2c"><div class="pc pc2c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIyElEQVR42u3ZsU0DQRBA0Vt0I6IVBRASuQKEEAEBEm3RB70QQEAHJHTgCG3EJOfMIZIRyLu+9yoYzV7wNVeurm8nAADoxuf725ktAADQG5EKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMBeyUxbAACgHxHhkgoAQHdEKgAAIhUAAEQqAAAiFQAARCoAACIVAAD+2zzQrK01D8bPaq2WAAAnwCUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAA+FMlM20BAIB+RIRLKgAA3RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAOC45lEG3dzdn/AzfLy++BYBAPZKZtoCAAD9iAi/+wEA6I5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAMDo5oFmba15sHWqtVoCAKyKSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAcJCSmbYAAEA/IsIlFQCA7swDzdpa82DrVGu1BABYFZdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAOAgJTNtAQCAfkSESyoAAN0RqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAADi2eaBZW2seDADgd2qtA03rkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEi1AgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAGBkZft0aQsA0Intw7MlwObmsZSL8+Xre5qWZbEQAAC6sAPnxS7pm9GPeQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Sha<span class="_ _3"></span>red<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _3b"> </span>1/3</span></div><div class="t m0 xf ha y19b ff6 fs6 fc0 sc0 ls0 ws0">std::shared_ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _e"> </span>the<span class="_ _e"> </span>pointer<span class="_ _e"> </span>type<span class="_ _e"> </span>to<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>used<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>memory<span class="_ _b"> </span>that<span class="_ _e"> </span>can<span class="_ _e"> </span>be<span class="_ _e"> </span>owned<span class="_ _b"> </span>by</span></div><div class="t m0 x1 ha y19c ff4 fs6 fc0 sc0 ls0 ws0">multiple<span class="_ _e"> </span>resources<span class="_ _b"> </span>at<span class="_ _e"> </span>one<span class="_ _e"> </span>time</div><div class="t m0 xf h5 y19d ffe fs3 fc0 sc0 ls0 ws0">std::shared_ptr<span class="_ _25"> </span><span class="ff4">maintains<span class="_ _b"> </span>a<span class="_ _b"> </span>reference<span class="_ _b"> </span>count<span class="_ _b"> </span>of<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>objects.<span class="_ _8"> </span>Data<span class="_ _b"> </span>managed<span class="_ _b"> </span>b<span class="_ _3"></span>y</span></div><div class="t m0 xf h5 y19e ffe fs3 fc0 sc0 ls0 ws0">std::shared_ptr<span class="_ _25"> </span><span class="ff4">is<span class="_ _b"> </span>only<span class="_ _b"> </span>freed<span class="_ _b"> </span>when<span class="_ _b"> </span>there<span class="_ _b"> </span>are<span class="_ _10"> </span>no<span class="_ _b"> </span>remaining<span class="_ _b"> </span>objects<span class="_ _b"> </span>p<span class="_ _c"></span>ointing<span class="_ _b"> </span>to<span class="_ _b"> </span>the<span class="_ _b"> </span>data</span></div><div class="t m0 xf hd y19f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y1a0 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hd y1a1 ff6 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff11 fc0">{</span></span></div><div class="t m0 x15 hd y1a2 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf hd y1a3 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hd y1a4 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1a5 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>sh_ptr1(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1a6 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>sh_ptr2(sh_ptr1);</div><div class="t m0 x15 hd y1a7 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>sh_ptr3(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1a8 ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr3<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">nullptr</span></span>;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>allowed,<span class="_ _6"> </span>the<span class="_ _8"> </span>underlying<span class="_ _6"> </span>pointer<span class="_ _8"> </span>is<span class="_ _6"> </span>deallocated</span></div><div class="t m0 x1f hd y1a9 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _3c"> </span>sh_ptr3<span class="_ _6"> </span>:<span class="_ _8"> </span>zero<span class="_ _6"> </span>references</div><div class="t m0 x15 hd y1aa ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr1;<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>allowed.<span class="_ _6"> </span>sh_ptr1,<span class="_ _8"> </span>sh_ptr2:<span class="_ _6"> </span>two<span class="_ _8"> </span>references</span></div><div class="t m0 x15 hd y1ab ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>move(sh_ptr1);<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>allowed<span class="_ _6"> </span>//<span class="_ _8"> </span>sh_ptr1:<span class="_ _6"> </span>zero<span class="_ _8"> </span>references</span></div><div class="t m0 xf hd y1ac ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _3d"> </span><span class="ffd fc7">//<span class="_ _6"> </span>sh_ptr2:<span class="_ _8"> </span>one<span class="_ _6"> </span>references</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">40/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2d" class="pf w0 h0" data-page-no="2d"><div class="pc pc2d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Sha<span class="_ _3"></span>red<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _3b"> </span>2/3</span></div><div class="t m0 xf ha y1ad ff6 fs6 fc0 sc0 ls0 ws0">std::shared_ptr<span class="_ _18"> </span><span class="ff4">metho<span class="_ _c"></span>ds</span></div><div class="t m0 xd ha y1ae ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">get<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _e"> </span>underlying<span class="_ _e"> </span>pointer</span></span></span></div><div class="t m0 xd ha y1af ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">operator*<span class="_ _16"> </span>operator-&gt;<span class="_ _14"> </span></span><span class="ff4">dereferences<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>to<span class="_ _b"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object</span></div><div class="t m0 xd ha y1b0 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">use_count<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _e"> </span>number<span class="_ _e"> </span>of<span class="_ _e"> </span>objects<span class="_ _e"> </span>referring<span class="_ _e"> </span>to<span class="_ _b"> </span>the<span class="_ _e"> </span>same<span class="_ _e"> </span>managed</span></span></span></div><div class="t m0 x6 ha y1b1 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 xd ha y1b2 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object<span class="_ _b"> </span>with<span class="_ _e"> </span></span>ptr</span></span></div><div class="t m0 x1 ha y1b3 ff4 fs6 fc0 sc0 ls0 ws0">Utilit<span class="_ _3"></span>y<span class="_ _e"> </span>metho<span class="_ _c"></span>d:<span class="_ _5"> </span><span class="ffe fc8">std::make_shared<span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _e"> </span>a<span class="_ _e"> </span>sha<span class="_ _3"></span>red<span class="_ _e"> </span>pointer<span class="_ _e"> </span>that<span class="_ _e"> </span>manages<span class="_ _e"> </span>a<span class="_ _e"> </span>new</div><div class="t m0 x1 ha y1b4 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">41/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2e" class="pf w0 h0" data-page-no="2e"><div class="pc pc2e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Sha<span class="_ _3"></span>red<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _3b"> </span>3/3</span></div><div class="t m0 xf hd y1b5 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y1b6 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hd y1b7 ff6 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff11 fc0">{</span></span></div><div class="t m0 x15 hd y1b8 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf hd y1b9 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf hd y1ba ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1bb ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6">&lt;</span>A<span class="fc6">&gt;<span class="_ _6"> </span></span>sh_ptr1(<span class="ff6 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1bc ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff11 fc0">sh_ptr2<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_shared<span class="fc6">&lt;</span>A<span class="fc6">&gt;</span>();<span class="_ _9"> </span><span class="ffd fc7">//<span class="_ _8"> </span>std::make_shared</span></span></div><div class="t m0 x15 hd y1bd ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1</span></div><div class="t m0 x15 hd y1be ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr1<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr2;<span class="_ _3e"> </span><span class="ffd fc7">//<span class="_ _6"> </span>copy</span></div><div class="t m0 xf hd y1bf ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>std::shared_ptr&lt;A&gt;<span class="_ _6"> </span>sh_ptr2(sh_ptr1);<span class="_ _6"> </span>//<span class="_ _8"> </span>copy<span class="_ _6"> </span>(constructor)</div><div class="t m0 x15 hd y1c0 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd y1c1 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr2.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd y1c2 ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff11 fc0">raw_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr1.get();<span class="_ _37"> </span><span class="ffd fc7">//<span class="_ _6"> </span>get</span></span></div><div class="t m0 x15 hd y1c3 ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr1.reset(<span class="ff6 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _39"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 hd y1c4 ff11 fs5 fc0 sc0 ls0 ws0">(<span class="fc6">*</span>sh_ptr1).value<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>3</span>;<span class="_ _3f"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 hd y1c5 ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr1<span class="fc6">-&gt;</span>value<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>2</span>;<span class="_ _40"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 xf hd y1c6 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">42/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2f" class="pf w0 h0" data-page-no="2f"><div class="pc pc2f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::weak_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>W<span class="_ _3"></span>eak<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _41"> </span>1/3</span></div><div class="t m0 x1 ha y1c7 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _18"> </span><span class="ff6">std::weak_ptr<span class="_ _14"> </span></span>is<span class="_ _b"> </span>simply<span class="_ _e"> </span>a<span class="_ _18"> </span><span class="ffe">std::shared_ptr<span class="_ _14"> </span></span>that<span class="_ _b"> </span>is<span class="_ _e"> </span>allo<span class="_ _3"></span>wed<span class="_ _b"> </span>to<span class="_ _e"> </span>dangle<span class="_ _e"> </span>(p<span class="_ _c"></span>ointer</div><div class="t m0 x1 ha y1c8 ff4 fs6 fc0 sc0 ls0 ws0">not<span class="_ _e"> </span>deallocated)</div><div class="t m0 xf hc y1c9 ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hc y1ca ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6">&lt;<span class="ff6 fc5">int</span>&gt;<span class="_ _11"> </span></span>sh_ptr(<span class="ff6 fc4">new<span class="_ _8"> </span><span class="fc5">int</span></span>);</div><div class="t m0 xf hc y1cb ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>weak_ptr<span class="fc6">&lt;<span class="ff6 fc5">int</span>&gt;<span class="_ _1d"> </span></span>w_ptr<span class="_ _11"> </span><span class="fc6">=<span class="_ _11"> </span></span>sh_ptr;</div><div class="t m0 xf hc y1cc ffa fs7 fc0 sc0 ls0 ws0">sh_ptr<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">nullptr</span></span>;</div><div class="t m0 xf hc y1cd ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span><span class="ff10">&apos;</span>true<span class="ff10">&apos;</span></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">43/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf30" class="pf w0 h0" data-page-no="30"><div class="pc pc30 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::weak_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>W<span class="_ _3"></span>eak<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _41"> </span>2/3</span></div><div class="t m0 x1 ha y1ce ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _e"> </span>must<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>converted<span class="_ _e"> </span>to<span class="_ _18"> </span><span class="ffe">std::shared_ptr<span class="_ _18"> </span></span>in<span class="_ _e"> </span>order<span class="_ _b"> </span>to<span class="_ _e"> </span>access<span class="_ _e"> </span>the<span class="_ _b"> </span>referenced<span class="_ _e"> </span>object</div><div class="t m0 xf ha y1cf ff6 fs6 fc0 sc0 ls0 ws0">std::weak_ptr<span class="_ _18"> </span><span class="ff4">metho<span class="_ _c"></span>ds</span></div><div class="t m0 xd ha y1d0 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">use_count<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _e"> </span>number<span class="_ _e"> </span>of<span class="_ _e"> </span>objects<span class="_ _e"> </span>referring<span class="_ _e"> </span>to<span class="_ _b"> </span>the<span class="_ _e"> </span>same<span class="_ _e"> </span>managed</span></span></span></div><div class="t m0 x6 ha y1d1 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 xd ha y1d2 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object<span class="_ _b"> </span>with<span class="_ _14"> </span></span>ptr</span></span></div><div class="t m0 xd ha y1d3 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">expired<span class="fc0">()<span class="_ _18"> </span><span class="ff4">checks<span class="_ _e"> </span>whether<span class="_ _e"> </span>the<span class="_ _e"> </span>referenced<span class="_ _b"> </span>object<span class="_ _e"> </span>was<span class="_ _b"> </span>already<span class="_ _e"> </span>deleted<span class="_ _e"> </span>(</span>true<span class="ff4">,</span></span></span></div><div class="t m0 x6 ha y1d4 ffe fs6 fc0 sc0 ls0 ws0">false<span class="ff4">)</span></div><div class="t m0 xd ha y1d5 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe fc8">lock<span class="fc0">()<span class="_ _18"> </span><span class="ff4">creates<span class="_ _e"> </span>a<span class="_ _18"> </span></span>std::shared_ptr<span class="_ _14"> </span><span class="ff4">that<span class="_ _b"> </span>manages<span class="_ _e"> </span>the<span class="_ _e"> </span>referenced<span class="_ _e"> </span>object</span></span></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">44/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf31" class="pf w0 h0" data-page-no="31"><div class="pc pc31 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSGzGEoxDwRBsQBWlwo3pKCgp4Cc6ZwLrubn6ebM7JAAACON+uy6sAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIC3XGu1AgAAcZRSXFIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAGDuugm9dRxHHwYA8J2+7yf0WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwE/kWqsVAACIo5TikgoAQDgiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAc9UN57UVAIB/eRwvRuDDdn/KebVswzOl1ppBAAAI4QWztRoCby4P9gAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::weak_ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>W<span class="_ _3"></span>eak<span class="_ _8"> </span>P<span class="_ _3"></span>ointer<span class="_ _41"> </span>3/3</span></div><div class="t m0 xf hc y1d6 ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;memory&gt;</span></div><div class="t m0 xf hc y1d7 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">sh_ptr1<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>std<span class="fc6">::</span>make_shared<span class="fc6">&lt;</span></span><span class="fc5">int<span class="ffa fc6">&gt;<span class="fc0">();</span></span></span></div><div class="t m0 xf hc y1d8 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _16"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _11"> </span>1</span></div><div class="t m0 xf hc y1d9 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>weak_ptr<span class="fc6">&lt;<span class="ff6 fc5">int</span>&gt;<span class="_ _11"> </span></span>w_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>sh_ptr1;</div><div class="t m0 xf hc y1da ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>w_ptr.use_count();<span class="_ _29"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _11"> </span>1</span></div><div class="t m0 xf hc y1db ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">sh_ptr2<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>w_ptr.lock();</span></div><div class="t m0 xf hc y1dc ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>w_ptr.use_count();<span class="_ _29"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _11"> </span>2<span class="_ _8"> </span>(sh_ptr1<span class="_ _11"> </span>+<span class="_ _11"> </span>sh_ptr2)</span></div><div class="t m0 xf hc y1dd ffa fs7 fc0 sc0 ls0 ws0">sh_ptr1<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">nullptr</span></span>;</div><div class="t m0 xf hc y1de ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _42"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>false</span></div><div class="t m0 xf hc y1df ffa fs7 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _11"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff6 fc4">nullptr</span></span>;</div><div class="t m0 xf hc y1e0 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _42"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>true</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">45/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf32" class="pf w0 h0" data-page-no="32"><div class="pc pc32 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Concurrency</div><a class="l" href="#pf32" data-dest-detail='[50,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:142.522000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf33" class="pf w0 h0" data-page-no="33"><div class="pc pc33 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIz0lEQVR42u3bMUrEQBSA4YzJYBU8g1hZpxCxFryZl/A4FjaBHMAbWC1bOSHEzkKssiw7L3zfCR5vUvxMknT38NQAAEA1Pj/er2wBAIDaiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAH6lUootAABQj5yzm1QAAKojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAAB2pAs06/F4dGAAANv0fR9oWjepAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVCsAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACcQSql2AIAAPXIObtJBQCgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAwH51gWbNOTswAIBt5nkONK2bVAAARCoAAIhUAABEKgAAiFQAAHanizv6sizTNDlCAIB/DcMgUi+gbdvo2wcAOJNxHEPP73U/AAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQDgkrq4oy/L0jTNOI5OEQDgj2EYQs+fSilRZs05e+AAALaZ5zlQ9XndDwBAdUQqAAAiFQAARCoAAOFE+rs/0Ne+AACcwk0qAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAOAU3eH11hYAgCi+nt8sYffuH19SurleD99Ns66rhQAAUIUfK3Y0+erdVXsAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Overview</div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">introduces<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff6">Concurrency<span class="_ _e"> </span></span>lib<span class="_ _3"></span>rary<span class="_ _b"> </span>to<span class="_ _e"> </span>simplify<span class="_ _e"> </span>managing<span class="_ _b"> </span>OS<span class="_ _e"> </span>threads</span></div><div class="t m0 xf hd y1e1 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y1e2 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;</span></div><div class="t m0 xf hd y1e3 ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1e4 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;first<span class="_ _8"> </span>thread&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 xf hd y1e5 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y1e6 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">(){</span></span></div><div class="t m0 x15 hd y1e7 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff6 fc4">thread<span class="_ _6"> </span></span></span>th(f);</div><div class="t m0 x15 hd y1e8 ff11 fs5 fc0 sc0 ls0 ws0">th.join();<span class="_ _43"> </span><span class="ffd fc7">//<span class="_ _6"> </span>stop<span class="_ _8"> </span>the<span class="_ _6"> </span>main<span class="_ _8"> </span>thread<span class="_ _6"> </span>until<span class="_ _6"> </span>&quot;th&quot;<span class="_ _8"> </span>complete</span></div><div class="t m0 xf hd y1e9 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y1ea ff4 fs6 fc0 sc0 ls0 ws0">Ho<span class="_ _3"></span>w<span class="_ _e"> </span>to<span class="_ _e"> </span>compile:</div><div class="t m0 xd hc y1eb ffa fs7 fce sc0 ls0 ws0">$<span class="fc0">g++<span class="_ _11"> </span>-std=c++<span class="fcf">11<span class="_ _8"> </span></span>main.cpp<span class="_ _11"> </span>-pthread</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">46/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf34" class="pf w0 h0" data-page-no="34"><div class="pc pc34 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Example</div><div class="t m0 xf hd y17e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y17f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;</span></div><div class="t m0 xf hd y180 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;vector&gt;</span></div><div class="t m0 xf hd y181 ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(</span></span>int<span class="_ _8"> </span><span class="ff11 fc0">id)<span class="_ _8"> </span>{</span></div><div class="t m0 x15 hd y182 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;thread<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>id<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 xf hd y183 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y184 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y185 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6">&lt;</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>&gt;<span class="_ _6"> </span></span>thread_vect;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>vector</span></div><div class="t m0 x15 hd y186 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y1ec ff11 fs5 fc0 sc0 ls0 ws0">thread_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff6 fc4">thread</span></span>(<span class="fc6">&amp;</span>f,<span class="_ _8"> </span>i)<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y1ed ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span>auto<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">th<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">thread_vect)</span></span></div><div class="t m0 x16 hd y188 ff11 fs5 fc0 sc0 ls0 ws0">th.join();</div><div class="t m0 x15 hd y18a ff11 fs5 fc0 sc0 ls0 ws0">thread_vect.clear();</div><div class="t m0 x15 hd y1ee ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>+<span class="_ _6"> </span>lambda<span class="_ _8"> </span>expression</span></span></span></div><div class="t m0 x16 hd y18b ff11 fs5 fc0 sc0 ls0 ws0">thread_vect.push_back(</div><div class="t m0 x20 hd y18c ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff6 fc4">thread</span></span>(<span class="_ _6"> </span>[](){<span class="_ _8"> </span>std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;thread<span class="ff6 fcd">\n</span>&quot;</span></span>;<span class="_ _8"> </span>}<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y18d ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y1ef ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">47/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf35" class="pf w0 h0" data-page-no="35"><div class="pc pc35 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Thread<span class="_ _8"> </span>Metho<span class="_ _c"></span>ds<span class="_ _44"> </span>1/2</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Lib<span class="_ _3"></span>rary<span class="_ _e"> </span>metho<span class="_ _c"></span>ds:</div><div class="t m0 x9 h5 y1f0 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">std::this_thread::<span class="ff6">get_id</span>()<span class="_ _25"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>id</span></span></div><div class="t m0 x9 h5 y1f1 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">std::thread::<span class="ff6">sleep_for</span>(<span class="_"> </span>sleep_duration<span class="_"> </span>)</span></div><div class="t m0 x6 h5 y1f2 ff4 fs3 fc0 sc0 ls0 ws0">Blo<span class="_ _c"></span>cks<span class="_ _10"> </span>the<span class="_ _b"> </span>execution<span class="_ _b"> </span>of<span class="_ _b"> </span>the<span class="_ _b"> </span>current<span class="_ _b"> </span>thread<span class="_ _b"> </span>for<span class="_ _b"> </span>at<span class="_ _b"> </span>least<span class="_ _b"> </span>the<span class="_ _b"> </span>specified<span class="_ _e"> </span><span class="ffe">sleep_duration</span></div><div class="t m0 x9 h5 y1f3 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">std::thread::<span class="ff6">hardware_concurrency</span>()<span class="_ _25"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _b"> </span>numb<span class="_ _c"></span>er<span class="_ _b"> </span>of<span class="_ _b"> </span>concurrent<span class="_ _b"> </span>threads</span></span></div><div class="t m0 x6 h5 y1f4 ff4 fs3 fc0 sc0 ls0 ws0">supp<span class="_ _c"></span>o<span class="_ _3"></span>rted<span class="_ _b"> </span>b<span class="_ _3"></span>y<span class="_ _b"> </span>the<span class="_ _b"> </span>implementation</div><div class="t m0 x1 ha y1f5 ff1 fs6 fc0 sc0 ls0 ws0">Thread<span class="_ _6"> </span>object<span class="_ _e"> </span>metho<span class="_ _c"></span>ds:</div><div class="t m0 x9 h5 y1f6 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">get_id<span class="ffe">()<span class="_ _25"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>id</span></span></span></div><div class="t m0 x9 h5 y1f7 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">join<span class="ffe">()<span class="_ _25"> </span><span class="ff4">waits<span class="_ _10"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>thread<span class="_ _b"> </span>to<span class="_ _b"> </span>finish<span class="_ _b"> </span>its<span class="_ _b"> </span>execution</span></span></span></div><div class="t m0 x9 h5 y1f8 ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">detach<span class="ffe">()<span class="_ _25"> </span><span class="ff4">p<span class="_ _c"></span>ermits<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>to<span class="_ _b"> </span>execute<span class="_ _b"> </span>independently<span class="_ _b"> </span>of<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>handle</span></span></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">48/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf36" class="pf w0 h0" data-page-no="36"><div class="pc pc36 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRF0RjFooqYAVExAULUSNmMJRiHgiHYgCpKhRvT0RMovqVzJrCem6ufdodTBwAAYTzut5UVAACIRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPCRSilWAAAgjpyzSyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAAPhS39Bb53n2YQAAywzD0NBrXVIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAH6SSilWAAAgjpyzSyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAaEw/XbZWAABY7Hm+GuG/9scxpc26Tq+uq7UaBACAEN60/xoCd234bAAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Thread<span class="_ _8"> </span>Metho<span class="_ _c"></span>ds<span class="_ _44"> </span>2/2</div><div class="t m0 xf hd y1f9 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;chrono&gt;<span class="_ _1d"> </span>//<span class="_ _6"> </span>the<span class="_ _8"> </span>following<span class="_ _6"> </span>program<span class="_ _8"> </span>could</span></div><div class="t m0 xf hd y1fa ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;<span class="_ _1b"> </span>//<span class="_ _6"> </span>produces<span class="_ _8"> </span>the<span class="_ _6"> </span>output<span class="_ _8"> </span>(not<span class="_ _6"> </span>deterministic):</span></div><div class="t m0 xf hd y1fb ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;<span class="_ _1d"> </span>//<span class="_ _38"> </span>&quot;child<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit&quot;<span class="_ _8"> </span>(t_child<span class="_ _6"> </span>&lt;<span class="_ _8"> </span>t_main)</span></div><div class="t m0 x21 hd y1fc ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _38"> </span>&quot;main<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit&quot;</div><div class="t m0 xf hd y1fd ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1fe ff6 fs5 fc4 sc0 ls0 ws0">using<span class="_ _6"> </span>namespace<span class="_ _8"> </span><span class="fc8">std<span class="ff11 fc6">::</span>chrono_literals<span class="ff11 fc0">;</span></span></div><div class="t m0 x15 hd y1ff ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>this_thread<span class="fc6">::</span>get_id();</div><div class="t m0 x15 hd y200 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::<span class="ff6 fc4">thread</span>::</span>hardware_concurrency();<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>e.g.<span class="_ _6"> </span>print<span class="_ _8"> </span>6</span></div><div class="t m0 x15 hd y201 ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff11 fc0">lambda<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>[]()<span class="_ _6"> </span>{</span></div><div class="t m0 x16 hd y202 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(<span class="fc6">1</span>s);<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>t_child</span></div><div class="t m0 x16 hd y203 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;child<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff6 fcd">\n</span>&quot;</span></span>;</div><div class="t m0 x15 hd y204 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x15 hd y205 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff6 fc4">thread<span class="_ _6"> </span></span><span class="fc8">child</span></span>(lambda);</div><div class="t m0 x15 hd y206 ff11 fs5 fc0 sc0 ls0 ws0">child.detach();<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>without<span class="_ _6"> </span>detach(),<span class="_ _8"> </span>child<span class="_ _6"> </span>must<span class="_ _8"> </span>join()<span class="_ _6"> </span>the</span></div><div class="t m0 x21 hd y207 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _6"> </span>main<span class="_ _8"> </span>thread<span class="_ _6"> </span>(run-time<span class="_ _8"> </span>error<span class="_ _6"> </span>otherwise)</div><div class="t m0 x15 hd y208 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(<span class="fc6">2</span>s);<span class="_ _38"> </span><span class="ffd fc7">//<span class="_ _6"> </span>t_main</span></div><div class="t m0 x15 hd y209 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;main<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff6 fcd">\n</span>&quot;</span></span>;</div><div class="t m0 xf hd y20a ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">49/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf37" class="pf w0 h0" data-page-no="37"><div class="pc pc37 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3YsU0DQRCG0Vt0I6IVNVhErsBCxEh0RhOU44Ai6IDI2siTHBkiIjDYnkPvVbD6N/k07X73OAEAQBnvb/sbKwAAUI1IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgS8tMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAC4oNkEAMB3YwwjnKD3boQ/5JIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAK6rZaYVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQDgt+YVvXWM4cPOofduBACgFJdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAAHBdLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAA1c0reusYw4cBAJym976i17qkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAODfaJlpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACsznx42VgBAOBiPp5ejfCz7cNza3e3y+E4TcuyGAQAgBI+AZ1UJf7FzFnSAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>a<span class="_ _3"></span>rameters<span class="_ _8"> </span>Passing</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>arameters<span class="_ _b"> </span>passing<span class="_ _e"> </span><span class="ff8">by-value<span class="_ _6"> </span></span>o<span class="_ _3"></span>r<span class="_ _e"> </span><span class="ff8">b<span class="_ _3"></span>y-p<span class="_ _c"></span>ointer<span class="_ _11"> </span><span class="ff4">to<span class="_ _e"> </span>a<span class="_ _b"> </span>thread<span class="_ _e"> </span>function<span class="_ _e"> </span>w<span class="_ _3"></span>orks<span class="_ _b"> </span>in<span class="_ _e"> </span>the<span class="_ _e"> </span>same<span class="_ _e"> </span>w<span class="_ _3"></span>a<span class="_ _3"></span>y</span></span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">of<span class="_ _e"> </span>a<span class="_ _b"> </span>standard<span class="_ _b"> </span>function.<span class="_ _11"> </span><span class="ff8">Pass-b<span class="_ _3"></span>y-reference<span class="_ _6"> </span><span class="ff4">requires<span class="_ _e"> </span>a<span class="_ _e"> </span>sp<span class="_ _c"></span>ecial<span class="_ _b"> </span>wrapp<span class="_ _c"></span>er<span class="_ _e"> </span>(<span class="_ _10"> </span><span class="ffe">std::ref<span class="_ _10"> </span></span>,</span></span></div><div class="t m0 xf ha ybc ffe fs6 fc0 sc0 ls0 ws0">std::cref<span class="_ _10"> </span><span class="ff4">)<span class="_ _e"> </span>to<span class="_ _e"> </span>avoid<span class="_ _b"> </span>wrong<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>rs</span></div><div class="t m0 xf hd y20b ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y20c ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;</span></div><div class="t m0 xf hd y20d ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(</span></span>int<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">a,<span class="_ _8"> </span></span></span><span class="fc4">const<span class="_ _6"> </span></span>int<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">b)<span class="_ _6"> </span>{</span></span></div><div class="t m0 x15 hd y20e ff11 fs5 fc0 sc0 ls0 ws0">a<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>7</span>;</div><div class="t m0 x15 hd y20f ff6 fs5 fc4 sc0 ls0 ws0">const_cast<span class="ff11 fc6">&lt;</span><span class="fc5">int<span class="ff11 fc6">&amp;&gt;<span class="fc0">(b)<span class="_ _6"> </span></span>=<span class="_ _8"> </span>8<span class="fc0">;</span></span></span></div><div class="t m0 xf hd y210 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y211 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y212 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">a<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>1</span>,<span class="_ _6"> </span>b<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>2</span>;</span></div><div class="t m0 x15 hd y213 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff6 fc4">thread<span class="_ _6"> </span></span></span>th1(f,<span class="_ _8"> </span>a,<span class="_ _6"> </span>b);<span class="_ _45"> </span><span class="ffd fc7">//<span class="_ _6"> </span><span class="fce">wrong!!!</span></span></div><div class="t m0 x15 hd y214 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6">&lt;&lt;<span class="_ _6"> </span><span class="fca">&quot;,<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;<span class="_ _37"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1,<span class="_ _6"> </span>2!!</span></div><div class="t m0 x15 hd y215 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff6 fc4">thread<span class="_ _6"> </span></span></span>th2(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(a),<span class="_ _6"> </span>std<span class="fc6">::</span>cref(b));<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span><span class="fce">correct</span></span></div><div class="t m0 x15 hd y216 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6">&lt;&lt;<span class="_ _6"> </span><span class="fca">&quot;,<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;<span class="_ _37"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>7,<span class="_ _6"> </span>8!!</span></div><div class="t m0 x15 hd y217 ff11 fs5 fc0 sc0 ls0 ws0">th1.join();<span class="_ _6"> </span>th2.join();</div><div class="t m0 xf hd y218 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">50/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf38" class="pf w0 h0" data-page-no="38"><div class="pc pc38 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIcUlEQVR42u3YsQ3CMBRFURthUUUMQEnFBAhRI2Ut9mAcCoZgg1TIFW5MxwAU6AfOmcB5TnHlvN0fEwAAhHG/XRdWAAAgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMBbbq1ZAQCAOEopXlIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAAD9lOaOz1lpdGADAZ4ZhmNFpvaQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAC+K0/njRUAAMKaTpd/++TdYcx5veqPZ0q9d/8AAAAhvAB+DxbxGdHXNgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Mutex<span class="_ _8"> </span><span class="fs3">(The<span class="_ _e"> </span>Problem)<span class="_ _46"> </span></span>1/3</div><div class="t m0 x1 ha y219 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>follo<span class="_ _3"></span>wing<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>produces<span class="_ _e"> </span>(in<span class="_ _e"> </span>general)<span class="_ _b"> </span>a<span class="_ _e"> </span>value<span class="_ _e"> </span>&lt;<span class="_ _e"> </span>1000:</div><div class="t m0 xf hd y21a ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;chrono&gt;</span></div><div class="t m0 xf hd y21b ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;iostream&gt;</span></div><div class="t m0 xf hd y21c ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;</span></div><div class="t m0 xf hd y21d ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;vector&gt;</span></div><div class="t m0 xf hd y21e ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(</span></span>int<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">value)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y21f ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y220 ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 hd y221 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y222 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y223 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y224 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y225 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>0</span>;</span></div><div class="t m0 x15 hd y226 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6">&lt;</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>&gt;<span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y1f7 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y227 ff11 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff6 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value))<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y228 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span>auto<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y229 ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y22a ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>value;</div><div class="t m0 xf hd y22b ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">51/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf39" class="pf w0 h0" data-page-no="39"><div class="pc pc39 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Mutex<span class="_ _47"> </span>2/3</div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">p<span class="_ _3"></span>rovides<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff6">mutex<span class="_ _b"> </span></span>class<span class="_ _e"> </span>as<span class="_ _e"> </span>synchronization<span class="_ _e"> </span>p<span class="_ _3"></span>rimitive<span class="_ _e"> </span>to<span class="_ _e"> </span>p<span class="_ _3"></span>rotect<span class="_ _e"> </span>sha<span class="_ _3"></span>red<span class="_ _e"> </span>data</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">from<span class="_ _e"> </span>being<span class="_ _e"> </span>simultaneously<span class="_ _e"> </span>accessed<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>multiple<span class="_ _e"> </span>threads</div><div class="t m0 x1 ha y22c ff6 fs6 fc0 sc0 ls0 ws0">mutex<span class="_ _e"> </span><span class="ff4">methods:</span></div><div class="t m0 xd ha y22d ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">lock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">lo<span class="_ _c"></span>cks<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ff8">mutex</span>,<span class="_ _e"> </span>blo<span class="_ _c"></span>cks<span class="_ _e"> </span>if<span class="_ _b"> </span>the<span class="_ _e"> </span><span class="ff8">mutex<span class="_ _11"> </span></span>is<span class="_ _e"> </span>not<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 xd ha y22e ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">try_lock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">tries<span class="_ _e"> </span>to<span class="_ _e"> </span>lock<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff8">mutex</span>,<span class="_ _e"> </span>returns<span class="_ _e"> </span>if<span class="_ _b"> </span>the<span class="_ _e"> </span><span class="ff8">mutex<span class="_ _11"> </span></span>is<span class="_ _e"> </span>not<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 xd ha y22f ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">unlock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">unlo<span class="_ _c"></span>cks<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ff8">mutex</span></span></span></span></div><div class="t m0 x1 hb y230 ffb fs7 fc0 sc0 ls0 ws0">Mo<span class="_ _3"></span>re<span class="_ _b"> </span>advanced<span class="_ _10"> </span>mutex<span class="_ _b"> </span>can<span class="_ _10"> </span>b<span class="_ _c"></span>e<span class="_ _10"> </span>found<span class="_ _10"> </span>here:<span class="_ _6"> </span><span class="ffa">en.cppreference.com/w/cpp/thread</span></div><div class="t m0 x1 ha y231 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>includes<span class="_ _b"> </span>three<span class="_ _e"> </span>mutex<span class="_ _e"> </span>wrapp<span class="_ _c"></span>ers<span class="_ _b"> </span>to<span class="_ _e"> </span>provide<span class="_ _b"> </span>safe<span class="_ _e"> </span>cop<span class="_ _3"></span>yable/movable<span class="_ _b"> </span>objects:</div><div class="t m0 xd ha y232 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">lock_guard<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _e"> </span>implements<span class="_ _e"> </span>a<span class="_ _e"> </span>strictly<span class="_ _b"> </span>scop<span class="_ _c"></span>e-based<span class="_ _e"> </span>mutex<span class="_ _b"> </span>ownership</span></span></div><div class="t m0 x6 ha y233 ff4 fs6 fc0 sc0 ls0 ws0">wrapp<span class="_ _c"></span>er</div><div class="t m0 xd ha y234 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">unique_lock<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _e"> </span>implements<span class="_ _e"> </span>movable<span class="_ _e"> </span>mutex<span class="_ _b"> </span>ownership<span class="_ _b"> </span>wrapp<span class="_ _c"></span>er</span></span></div><div class="t m0 xd ha y235 ff7 fs6 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">shared_lock<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++14</span>)<span class="_ _e"> </span>implements<span class="_ _e"> </span>movable<span class="_ _e"> </span>sha<span class="_ _3"></span>red<span class="_ _e"> </span>mutex<span class="_ _b"> </span>ownership<span class="_ _b"> </span>wrapp<span class="_ _c"></span>er</span></span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">52/56</div><a class="l" href="en.cppreference.com/w/cpp/thread"><div class="d m1" style="border-style:none;position:absolute;left:191.606000px;bottom:98.980000px;width:152.628000px;height:10.211000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf3a" class="pf w0 h0" data-page-no="3a"><div class="pc pc3a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIbklEQVR42u3YoQ1CMRSG0ZbQoF4YAIliAkLQJG8t9mAcBEOwwVOkipriQIO6L5wzwc1f86V5uz8mAAAI4367LqwAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgLfcWrMCAABxlFL8pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAgC8tZ3RrrdWDAQD8ZhiGGV3rJxUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAB95Om+sAADwz6bTJdQ9u8OY83rVH8+Ueu8eCACAEF5sbxbxQB5IDgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Mutex<span class="_ _47"> </span>3/3</div><div class="t m0 xf hd y1f9 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;thread&gt;<span class="_ _1b"> </span>//<span class="_ _6"> </span>iostream,<span class="_ _8"> </span>vector,<span class="_ _6"> </span>chrono</span></div><div class="t m0 xf hd y1fb ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(</span></span>int<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">value,<span class="_ _8"> </span>std</span>::<span class="fc0">mutex</span>&amp;<span class="_ _6"> </span><span class="fc0">m)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1fc ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y1fd ff11 fs5 fc0 sc0 ls0 ws0">m.lock();</div><div class="t m0 x16 hd y1fe ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;<span class="_ _3c"> </span><span class="ffd fc7">//<span class="_ _8"> </span>other<span class="_ _6"> </span>threads<span class="_ _8"> </span>must<span class="_ _6"> </span>wait</span></div><div class="t m0 x16 hd y1ff ff11 fs5 fc0 sc0 ls0 ws0">m.unlock();</div><div class="t m0 x16 hd y200 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y236 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y201 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y202 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y203 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>mutex<span class="_ _6"> </span>m;</div><div class="t m0 x15 hd y204 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>0</span>;</span></div><div class="t m0 x15 hd y205 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6">&lt;</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>&gt;<span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y206 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y207 ff11 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff6 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value),<span class="_ _6"> </span>std<span class="fc6">::</span>ref(m))<span class="_ _8"> </span>);</div><div class="t m0 x15 hd y208 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span>auto<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y209 ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y20a ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>value;</div><div class="t m0 xf hd y237 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">53/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf3b" class="pf w0 h0" data-page-no="3b"><div class="pc pc3b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkElEQVR42u3YsU0DQRCG0VvrRo5W1ICIqAAhYkvuzE1QjgOKoAMiayMmOWfIoUEg5uT3Cjit/ks+TXt4epkAAKCM97fjxgoAAFQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAA+NIy0woAANQRES6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAHDr5hW9dYzhh5XVezcCAPBbXFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwP9qmWkFAADqiAiXVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAABfmFb11jOGHAQD8TO99Ra91SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAADWqWWmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAMA3zafDvRUAALjex+71T7//+Lxv7W67nD6naVkWgwMAUMIZXhwgAFS9p7AAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">A<span class="_ _3"></span>tomic</div><div class="t m0 xf ha y21 ff6 fs6 fc0 sc0 ls0 ws0">std::atomic<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _e"> </span>class<span class="_ _e"> </span>template<span class="_ _e"> </span>defines<span class="_ _b"> </span>an<span class="_ _e"> </span>atomic<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>implemented</span></div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">with<span class="_ _e"> </span>lock-free<span class="_ _e"> </span>op<span class="_ _c"></span>erations<span class="_ _e"> </span>(much<span class="_ _b"> </span>faster<span class="_ _e"> </span>than<span class="_ _e"> </span>lo<span class="_ _c"></span>cks)</div><div class="t m0 xf hd y238 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1b"> </span><span class="fc7">&lt;atomic&gt;<span class="_ _1b"> </span>//<span class="_ _6"> </span>chrono,<span class="_ _8"> </span>iostream,<span class="_ _6"> </span>thread,<span class="_ _8"> </span>vector</span></div><div class="t m0 xf hd y239 ff6 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff11 fc8">f<span class="fc0">(std<span class="fc6">::</span>atomic<span class="fc6">&lt;</span></span></span>int<span class="ff11 fc6">&gt;&amp;<span class="_ _8"> </span><span class="fc0">value)<span class="_ _6"> </span>{</span></span></div><div class="t m0 x15 hd y23a ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y23b ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 hd y23c ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y23d ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y23e ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hd y23f ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y240 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>atomic<span class="fc6">&lt;<span class="ff6 fc5">int</span>&gt;<span class="_ _6"> </span></span>value(<span class="fc6">0</span>);</div><div class="t m0 x15 hd y241 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6">&lt;</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>&gt;<span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y242 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff11 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y243 ff11 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff6 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value))<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y244 ff6 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff11 fc0">(</span>auto<span class="ff11 fc6">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y245 ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y246 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>value;<span class="_ _38"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1000</span></div><div class="t m0 xf hd y247 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">54/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf3c" class="pf w0 h0" data-page-no="3c"><div class="pc pc3c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ask-based<span class="_ _8"> </span>pa<span class="_ _3"></span>rallelism<span class="_ _48"> </span>1/2</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff6">future<span class="_ _b"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _e"> </span>p<span class="_ _3"></span>rovides<span class="_ _e"> </span>facilities<span class="_ _e"> </span>to<span class="_ _b"> </span>obtain<span class="_ _e"> </span>values<span class="_ _e"> </span>that<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>returned<span class="_ _e"> </span>and<span class="_ _b"> </span>to<span class="_ _e"> </span>catch</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">exceptions<span class="_ _e"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>thrown<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span><span class="ff8">asynchronous<span class="_ _8"> </span></span>tasks</div><div class="t m0 x1 ha ye0 ff4 fs6 fc0 sc0 ls0 ws0">Asynchronous<span class="_ _e"> </span>call:<span class="_ _5"> </span><span class="ffe">std::future<span class="_"> </span><span class="ff6">async</span>(function,<span class="_"> </span>args...)</span></div><div class="t m0 x22 ha y248 ff4 fs6 fc0 sc0 ls0 ws0">runs<span class="_ _8"> </span>a<span class="_ _11"> </span>function<span class="_ _8"> </span>asynchronously<span class="_ _11"> </span>(potentially<span class="_ _11"> </span>in<span class="_ _8"> </span>a<span class="_ _11"> </span>new<span class="_ _8"> </span>thread)</div><div class="t m0 x22 ha y249 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>returns<span class="_ _b"> </span>a<span class="_ _14"> </span><span class="ffe">std::future<span class="_ _18"> </span></span>object<span class="_ _e"> </span>that<span class="_ _b"> </span>will<span class="_ _e"> </span>hold<span class="_ _e"> </span>the<span class="_ _e"> </span>result</div><div class="t m0 x1 ha y24a ff6 fs6 fc0 sc0 ls0 ws0">std::future<span class="_ _e"> </span><span class="ff4">methods:</span></div><div class="t m0 x9 h5 y24b ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">T<span class="_"> </span><span class="ff6">get</span>()<span class="_ _25"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _b"> </span>result</span></span></div><div class="t m0 x9 h5 y24c ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ff6">wait<span class="ffe">()<span class="_ _25"> </span><span class="ff4">waits<span class="_ _10"> </span>for<span class="_ _b"> </span>the<span class="_ _b"> </span>result<span class="_ _b"> </span>to<span class="_ _b"> </span>become<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 x1 ha y24d ff6 fs6 fc0 sc0 ls0 ws0">async()<span class="_ _e"> </span><span class="ff4">can<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>called<span class="_ _e"> </span>with<span class="_ _b"> </span>tw<span class="_ _3"></span>o<span class="_ _e"> </span>launch<span class="_ _e"> </span>policies<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>a<span class="_ _e"> </span>task<span class="_ _e"> </span>executed:</span></div><div class="t m0 x9 h5 y24e ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">std::launch::async<span class="_ _25"> </span><span class="ff4">a<span class="_ _b"> </span>new<span class="_ _b"> </span>thread<span class="_ _b"> </span>is<span class="_ _b"> </span>launched<span class="_ _b"> </span>to<span class="_ _b"> </span>execute<span class="_ _b"> </span>the<span class="_ _b"> </span>task<span class="_ _b"> </span>asynchronously</span></span></div><div class="t m0 x9 h5 y24f ff7 fs3 fc0 sc0 ls0 ws0"><span class="_ _13"> </span><span class="ffe">std::launch::deferred<span class="_ _25"> </span><span class="ff4">the<span class="_ _b"> </span>task<span class="_ _b"> </span>is<span class="_ _b"> </span>executed<span class="_ _b"> </span>on<span class="_ _b"> </span>the<span class="_ _b"> </span>calling<span class="_ _b"> </span>thread<span class="_ _b"> </span>the<span class="_ _b"> </span>first<span class="_ _b"> </span>time<span class="_ _b"> </span>its</span></span></div><div class="t m0 x6 h5 y250 ff4 fs3 fc0 sc0 ls0 ws0">result<span class="_ _b"> </span>is<span class="_ _b"> </span>requested<span class="_ _b"> </span>(lazy<span class="_ _b"> </span>evaluation)</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">55/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf3d" class="pf w0 h0" data-page-no="3d"><div class="pc pc3d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIbUlEQVR42u3YoQ1CMRSG0Za8BtVgWIAwBILdsCz2BEMgWeClipriGAB1S86ZoPlrvtx8vlwTAACE8XysOysAABCNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4Cv33q0AAEAcpRSXVAAAwhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA+HfLRG9trfkwAIDf1Foneq1LKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgEhy790KAADEUUpxSQUAIByRCgCASAUAAJEKAMB0lu1+sgIAAHEcb6+cD/uxvVMaYxgEAIAQPjQWGQKIiNXoAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ask-based<span class="_ _8"> </span>pa<span class="_ _3"></span>rallelism<span class="_ _48"> </span>2/2</div><div class="t m0 xf hc yd3 ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _25"> </span><span class="fc7">&lt;future&gt;<span class="_ _18"> </span>//<span class="_ _11"> </span>numeric,<span class="_ _8"> </span>algorithm,<span class="_ _11"> </span>vector,<span class="_ _11"> </span>iostream</span></div><div class="t m0 xf hc y104 ff6 fs7 fc4 sc0 ls0 ws0">template<span class="_ _11"> </span><span class="ffa fc6">&lt;</span>typename<span class="_ _8"> </span><span class="fc8">RandomIt<span class="ffa fc6">&gt;</span></span></div><div class="t m0 xf hc yd4 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">parallel_sum(RandomIt<span class="_ _8"> </span>beg,<span class="_ _11"> </span>RandomIt<span class="_ _11"> </span>end)<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc yd5 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">len<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>end<span class="_ _11"> </span><span class="fc6">-<span class="_ _8"> </span></span>beg;</span></div><div class="t m0 x6 hc yd6 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _11"> </span><span class="ffa fc0">(len<span class="_ _8"> </span><span class="fc6">&lt;<span class="_ _11"> </span>1000</span>)<span class="_ _29"> </span><span class="ffd fc7">//<span class="_ _11"> </span>base<span class="_ _8"> </span>case</span></span></div><div class="t m0 x14 hc yd7 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fc0">std<span class="fc6">::</span>accumulate(beg,<span class="_ _8"> </span>end,<span class="_ _11"> </span><span class="fc6">0</span>);</span></div><div class="t m0 x6 hc y105 ffa fs7 fc0 sc0 ls0 ws0">RandomIt<span class="_ _11"> </span>mid<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>beg<span class="_ _11"> </span><span class="fc6">+<span class="_ _8"> </span></span>len<span class="_ _11"> </span><span class="fc6">/<span class="_ _8"> </span>2</span>;</div><div class="t m0 x6 hc yd9 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _11"> </span><span class="ffa fc0">handle<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>std<span class="fc6">::</span>async(std<span class="fc6">::</span>launch<span class="fc6">::</span>async,<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _8"> </span>right<span class="_ _11"> </span>side</span></span></div><div class="t m0 x23 hc yda ffa fs7 fc0 sc0 ls0 ws0">parallel_sum<span class="fc6">&lt;</span>RandomIt<span class="fc6">&gt;</span>,<span class="_ _11"> </span>mid,<span class="_ _8"> </span>end);</div><div class="t m0 x6 hc ydb ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">sum<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span></span>parallel_sum(beg,<span class="_ _11"> </span>mid);<span class="_ _17"> </span><span class="ffd fc7">//<span class="_ _8"> </span>left<span class="_ _11"> </span>side</span></span></div><div class="t m0 x6 hc ydc ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _11"> </span><span class="ffa fc0">sum<span class="_ _8"> </span><span class="fc6">+<span class="_ _11"> </span></span>handle.get();<span class="_ _49"> </span><span class="ffd fc7">//<span class="_ _11"> </span>left<span class="_ _8"> </span>+<span class="_ _11"> </span>right</span></span></div><div class="t m0 xf hc ydd ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf hc yde ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _11"> </span><span class="ffa fc0">main()<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc ydf ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6">&lt;<span class="ff6 fc5">int</span>&gt;<span class="_ _11"> </span></span>v(<span class="fc6">10000</span>,<span class="_ _8"> </span><span class="fc6">1</span>);<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>init<span class="_ _8"> </span>all<span class="_ _11"> </span>to<span class="_ _8"> </span>1</span></div><div class="t m0 x6 hc y251 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _11"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span><span class="fca">&quot;The<span class="_ _11"> </span>sum<span class="_ _11"> </span>is<span class="_ _8"> </span>&quot;<span class="_ _11"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>parallel_sum(v.begin(),<span class="_ _11"> </span>v.end());</div><div class="t m0 xf hc y252 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">56/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
</div>
<div class="loading-indicator">
<img alt="" src="data:image/png;base64,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"/>
</div>
</body>
</html>