1651 lines
656 KiB
HTML
1651 lines
656 KiB
HTML
<!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,d09GRgABAAAAAA7kAA0AAAAAE7AAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAOyAAAABoAAAAcoqQZRkdERUYAAA6sAAAAHAAAAB4AJwAxT1MvMgAAAagAAABKAAAAVlXpGVBjbWFwAAACiAAAAMkAAAGq7H0gs2dhc3AAAA6kAAAACAAAAAj//wADZ2x5ZgAAA6wAAAjaAAALjJdZUnpoZWFkAAABMAAAADIAAAA2Kc6SqWhoZWEAAAFkAAAAIgAAACQGMQHzaG10eAAAAfQAAACUAAAArE+pDFNsb2NhAAADVAAAAFgAAABYN1Y6IG1heHAAAAGIAAAAHgAAACAAcABNbmFtZQAADIgAAAGtAAAC/RbMrgJwb3N0AAAOOAAAAGkAAACAUs+lC3icY2BkYGBgYmQrrS/Tj+e3+crAzfwCKMLw+ODyVAT9n41Zm+kdkMvBwAQSBQBOkgvGAAB4nGNgZGBgevefjYGBWZqB4b8zszZDCoMoAzLQBgBlugQpAAB4nGNgZGBg0GbwYmBmAAEmIGZkAIk5gPkMAA5BAL4AAHicY2BkfMc4gYGVgYGpi2kPgyxDD4j+P5fxAYMhIxNQlIGVmQEMGhgYGB0YECAgzTUFSCn8ZmR6958NqPIdwy8gnxEkBwCXtQ6bAAB4nGOUYAADRl8g/gKmTYA0K6MYQyJTPUMO0yWGBKZQhjggP47pCJD9AIjrgViHwYxpJcMKpg0MFYwPGTyZWBmCGPcy2ANpOyBtx2jEkAo0hxHID2R4zxDI+JIhBEQzSzMEgsSAchZAWpMxDKivnkGZMZMhFciPYTzLkAPEDEDMyLiZQYbxBsMJID7JJMGQCgC4RCI3eJxjYGBgZoBgGQZGBhBYAuQxgvksDB1AWo5BACjCx6DAoMugz2DF4MrgyRDAEMqQyVDAUMZQpSD7m/H/f6A6mLwzUN6PIZghkSGboYihQkEGJP//8f/r/6/9P/P/yP+D//f+3/1/w//1/9f9X/uAh1UTai8ewMjGAFfEyAQkmNAVQLwABywMrAgOG4zBzsEJJLlATG4eXgYGPn4BJD2CQsIiomLiEpIMUtIysnLyDAqKSsoqDKpq6oScRybQ0ESwtQiqBgAKHykfAAAAAAAAAAAAAAAAAAAOAC4AQgB2AJgAugDGAOIBDAEwAXIBkAGyAeoCFgI+AmwCmALAAy4DTgNgA3gDhAO8A94ECAQ2BE4EmAS6BNwE+AUQBToFWgV2BZIFxnicdVYJcBPnFd73y9bKOixrJeu2rMOWbMsH1spay8KSL9my1Mq2ZBvLGF8iuGZcIKXlSAkwgDmcmDTgmYYE2mlm0tLSNiRMyLTjHjDtBKbk6BXSgyGdFDrJtGmmGcqkreW+3bUx6UxndrW/pP3f+9733vveTwHlp65AN/VvSkJR5Q7OAc25+0oouNJEUUDlL0vJEPmQUuMXKQ1Sl9PNBTgIsD49GQTZ0ntytUxOQEZKhMXv81X/SemUsnyV5Ps6JUWoCdzHwCLapnHl4lgJ3gBpTXo0zaRhOp3rSPN+ZpbvkTfIVaoUMUhpdONxMxx6MegNtNvjdjnpQjDoWR86JwPt7oq22e5Yyxd3HQl4vNWlZZ4y/9jQoN/HjrW5PZGasgLF9DRUbJ2WyXSpEpVycOgfGwaVCjfiGacoCZDLlIzSoNtCcDm0Dp+eDri9IGF9AfIn260DuU8WQHrw2C7rlq1n9p3ZegEGTr5GLr956vA3l374dcQ6SlHkRXKJ0lJUJWgdNHLiBdpBO3gLISBVOf9p+HHhq1KjdM4HcVXuMvdLXO8nl1rhb825JRBtQAJxIOesS8u+mlnI4Dfg8ZH7uFJRlMMl8bgk+KfWwGpZkt130g1Hkgv75t0wm4S7J5aeJpdz5hNkO8XHtfyBRENuUArKIMaFeQoDK4TmciKjej66j+x/OfD4vMN55+D+J3ZZJzdmzltsm0aGvwOZ537z67PPvfPOk4ee/8bhJ1+6SFEiV+SniEXOR4o2kSJE8zBbLzLPj36rObPwySPbJgt7++bD8+lH4a/9u3O3yeU9qda+3K00xhRY/oCMIbYKzC2PzMPxYLiApxb4iwfqwywLMA024C89sTDPTuwds/fsbp1UKJ0aZ9gXNFSpNV+91m1vGWkbk8utjL0mFjRV/mhgf7Svr9cfLGPURSpLabAzudvX2xKrY62MWqG1uoQ6Po9515OLQh0L+cJQ0KEXOIdEdlRqkGZmM7PDUpP0aCEZJ9th6StkB7QiDbh3D+K/gzxoVvC7OS0rEQjFBTlseGnL1C7jZCarS7R3PKbLJt+fOX16Bl7P+camPjcKbwhcdi/fg7vwOmWknHxmOazwWoKBR4DPD82Xul4NnJgoLgBnErKu6dKqQml+4YU9BUp3eW+frD/VGS/arnpTLV3nrnO5y+osbm9RpJ14G5p9bd6JxLmwPGpzabW8vxT2UxliLqRMq6zTmDxJYLUk1CBUhLp47jPd9fLkQqJlIBNtyWpbGjr8dcURbuZ29liwFivs7dCJsQ39oVstAzwXEYzjY4zDwPfpgyIz0LWwWmUcnB/IjIzpdM9ka9d7zM5gZfeIWt0Y3tBXwc6NjT7NmFrNzHQ0Ph7gcYYRZ6eA07LKi2jTgGC5B6WLjLycVCTTsVhx8ZF4DxdJ/KzKHOJmtEwkUOnx+CPHJieOc+Be+u01rj8zOGC1ibbhPcTKCBw4BDv0moPV1sBM/ULVsj6NBA8OTxTrFtLDdktHPlftHTT+oXu8sdU/l52Y625uaAl3NvIcPIIffydXhE5DC4VEDSzNdypKm2ga3nVVqSzl1nzzo8ptqUQqrozrinZ2OavJTk2+2mXe3ZTbD4eahuMTClQAWPaRELxG1VAc1S3alLo8elrIGsYfAp+N0Ks9zfECvBJCgJXyMRTyudQGaokXEA1dLDZ7YwWj9CvyjMrCL7SzDnWeomnIWpN0yZWnNo3sUOZXVujkBW78d2dro72v/1fGqnJnm7HaVT6Ub2ko0Qyb3UwB0D2RcBaOS/KgurF9vERd3CDVR9YFe3oaTcFie3V1ZTXXMWa3/27G79vhy+WMpQoJY9ZIwVldLfZOHyZZi/kt4rOrDWBkalipQxouJcOGSX9U6cfya48NHneAa2o4dA+L7nrsHCX0De6HOvKUOD94peSQ5LOJ0YQzo83A4mMZ9NGPL5aiDwXvwyPa51gabqZmJm3Rhdjk/eEb76bn0Wzgre+KmGDdmvaeTSwkBO3F3yVezIPQodowCDXNm3toydIBgXcfTa4nw3kgdzvYqMr/8HI8VpQYyirim+ZcuMFapsOQ1hZXY59Npc6tcYP+mE9zQ4fJp8kZj6kL7L0Vq/TA1S6Fxb3CTyP2jwlrXND98v+n+3nF5zZmthQXf21kODvBtDU1TjFMSzA09ceJo7OT2ZPzw+kNg/0DI5tEm5XLYeJCXEJPrmkH/ZB2SA2r6pGI17PJYwl5erQzNKluCraz3jza6G/6/O3NR4Mfkf316+dGo9mm69qiukmMOYWBn0fbcmGirDDKwZn4l4pqEuOduv4dcIRMJN6GqxvH+Dnpwh5+GeOrf3Au4AQ5qCUevDDWfFacHbTURnBylIJNAofVjfXdPb3m1t5RdZ7SZmAcphJVjZK2VblrdMp4xMz1DKjy5DaTqdKrz5PQNBzsKrNXd9RHtRY1nUdLVYrKUOk6i0ZK7K3uMGNUy/JljBG12Gjm+x8xPUtCfN54DeSEvmdp1ABaivKXSsVS5mC/coMlaplXzjdoNqNQHwJF04EDTf9KO8S+GMG8afBcxKyp3kNDBS4l5L3TIaeyK9kp09ezKUVzcl2oOQQ9uVfK7cEGcApnJkyWFW1g3ReAS8Jq9TQbiACx5v45lExWFRHQ9n4ZFnMdeC9lvL7Zt0TffJJN4j7sF9rFeVgD3y830tt+kPr4qfTUt1N/Xly8c/OFF24K78MyK/jR834eDHB+dklYA+9Tiy5f8UbsZU5ZmUeuLGG4zT3WKhkwP4fFpfejNbLWojyLZRgWH/9JVxTCvE0rfnyINjX8GYqDlVFMg3CCglO5uQLoT+Kh6QklbJHlvjeAy9OVkIGQJ3cesEavwV0ix66V8iclcEVQgVmD+ABLmolW+k0XxQfcTe1/PI23UNvXcZ/iwT6MHXNnEB/A8a8z6Yvig2wWt+HxFJUCNZ9sQs3ndahk9SSr/R/ZF84wOAxIAs+2z6BIXdi1Kv4TjSaH2lRqrCkw7yWb00vdsCjOgI3xcUUHU+bdi27+C7ICbgAAAHicnVLBTuNADH0T2gokQNz2wsHHIpEoTekBDnsAQaWKtqihqNcE0jZqyUBSVPUr9kdWfAHfwi/wC7xMZvfQvW1GsZ/tZ4/tBMAh3qFQPQ9/scKu+mGxg4byLN7BqfplcQ1H6tPiOg6dA4sbOHJ+kqlqe7R+m6wSK/LrFjvYV2LxDiaqY3ENoj4sruNYfVncgDjHuILGCzbIkWKGOVYQBPB52nB5KnxOb0yW4BIeZQ8RHrFg7hoFdUpfhAxPJuahb1gDE6+YJaNJOzOVEt4UYYkpLW3kPX0T6jFCXGNEKehSD+m5o3XCirjSL5s8nc1XEvh+23UpzyXeyKUnvehxodfFIpUoe5Ke1/dkoNd0ptLUmcTJPFpORU/lPpnIOLwehdIdDcd34Qnr3rLh0AxQoMVxcdsPo6xoEZUz5Hg23WKg8+eI+sYMsjI659oSszSPmYILvtv1XI4Rs0CKV7wZdslqm0jLLjlAh4V1trrR+SyRwPPlQv704Q7jZfr6ltDV9t0WBw86/7a9fQ2208vfMWHHBSnVp6i69nFGjIckL1Iui3f7Z/I/9b8B6uJ+LgAAAHicbco7DgFRAEDRM0+hFb0WCYUhQS2Mb4xP/IIFaHQ2YE3sTM9bgJuc7gp8P9FT3b8aUSIoKCmrqKrFsynV1tHV0zc0khmbmJqZW1jKraxtbO3sHRydnF1cvbyTUHzcb9mglf4AfF8QxQAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEItIGYB8xgABWwAWXicY2BgYGQAgtsKp6pB9OODy1NhNABOlAeiAAA=')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,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')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,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"/><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"><</span><span class="fc5">int<span class="ffa fc6">&><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"><</span><span class="fc5">uint64_t<span class="ffa fc6">*><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"><</span><span class="fc5">unsigned<span class="ffa fc6">&><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">&<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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIp0lEQVR42u3YMUoEQRCG0WqZwqjxDIuRJxAxFryZl/A4G3gIb2C0dGQlYyCYmKyBbM/w3gmafxj4qHZ7/xgAADCN97fjlRUAAJiNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4EerKisAADCPzHRJBQBgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAHZmMQEQEWOMrTy19+574Q/1D7J7LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4LJaVVkBAIB5ZKZLKgAA0xGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAEBERCwmON8YwwgAwEb13jf0WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgDAf2hVZQUAAOaRmS6pAABMR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA2K/FBOcbYxgBANio3vuGXuuSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAD8SasqKwAAMI/MdEkFAGA6IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMBvy+nlYIWL+3h6NQIAwLe7h+fWbq7X02fEuq4GAQBgCl9Nhyj+Kndx4QAAAABJRU5ErkJggg=="/><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><<<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">'</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"><=<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>-><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"><<<span class="_ _8"> </span><span class="fca">"Hello<span class="_ _11"> </span>world!"<span class="_ _8"> </span></span><<<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>esn’t<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><<<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><<<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"><</span><span class="fc5">float<span class="ff11 fc6">&><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>don’t<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,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"/><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"><<<span class="_ _8"> </span></span>x;<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>"3"</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"><stdexcept></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"><stdexcept></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">"runtime<span class="_ _8"> </span>error"</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">"logic<span class="_ _8"> </span>error"</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">&<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"><<<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">&<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"><<<span class="_ _8"> </span></span>e.what();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print:<span class="_ _8"> </span>"logic<span class="_ _6"> </span>error"</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">"runtime<span class="_ _8"> </span>error"<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"><<<span class="_ _8"> </span><span class="fca">"exception"</span></span>;<span class="_ _1f"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _6"> </span>"exception"</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">&<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">&<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"><exception><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><stdexcept></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>"constexpr"</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">"C++<span class="_ _8"> </span>Exception"<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">&<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"><<<span class="_ _8"> </span></span>e.what();<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _8"> </span>"C++<span class="_ _11"> </span>Exception"</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,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"/><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"><</span><span class="fc5">bool<span class="_ _11"> </span><span class="ffa fc0">X<span class="fc6">></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">&<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"><<<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">&<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"><<<span class="_ _8"> </span><span class="fca">"bad<span class="_ _11"> </span>allocation:<span class="_ _11"> </span>"<span class="_ _8"> </span></span><<<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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjUlEQVR42u3YsU0DQRCG0VvrRkQrarCIqAAhYkt0RhOU48BFuAMiayMmOTICQkhmufcqWP2bfJr28PSyAABAGdfL+WAFAACqEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAHxrmWkFAADqiAiXVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAATGM1ATC7MUadx/Te/QjA37mkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAMA/0zLTCgAA1BERLqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAe7ZO9NYxhg8DAPid3vtEr3VJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBANiTlplWAACgjohwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICf1tvb0QrAHnyc3o0AMIXH59fW7u+22+eybNtmEAAASvgCMIAgABgDRGAAAAAASUVORK5CYII="/><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"><new><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"><<<span class="_ _8"> </span><span class="fca">"bad<span class="_ _11"> </span>allocation"</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>"bad_alloc"</span></div><div class="t m0 x18 hc yfe ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _11"> </span>"a"<span class="_ _8"> </span>is<span class="_ _11"> </span>out-of-scope<span class="_ _11"> </span>-><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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjklEQVR42u3YsU0DQRCG0VvrRkQrarCIqMBCji25MzdBOQ4ogg6IThsxyZFRgO1gznqvgtW/yadpb4fjBAAAZXx/XXdWAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMC/lplWAACgjohwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgGc3b+itYwwfBgBwm977hl7rkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAABVtMy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAADy7eUNvHWP4MACA2/TeN/Ral1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAACoomWmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAoLp5ueytAPAQP6dPIwDc7/3j3Nrry7r8TtO6rgYBAKCEP24fIACPZmJ0AAAAAElFTkSuQmCC"/><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"><<span class="ff6 fc5">int</span></span>[]<span class="fc6">><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"><<span class="ff6 fc5">int</span></span>[]<span class="fc6">></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"><<span class="ff6 fc5">int</span></span>[]<span class="fc6">></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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJpUlEQVR42u3dsY4SQQDH4VvZick0PoOxorCiIBdzBYneGS651/IlfA0KKgosbKhpfAOra4Y4YYOFyRVnsoZd4Eb4vn4K/lD8wrChejf+cAUAAMX48f3bKysAAFAakQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwJMq52wFAADKEULwTSoAAMURqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAHhpdbdjabMZ3U7NBwBAu/Vy0eGUv0UFAKAs/hYVAIASiVQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAECbutuxtNmMbqfmAwCg3Xq56HCqyjnbDgCAcoQQXPcDAFAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgBAMWoTANBuu23eTz6ewQtZLxfeTfhfVDlnKwAAUI4Qgut+AACKI1IBABCpAADwLx6c6mV4MzHCE08kAACH4sEpAADK4sEpAABKJFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgBAP7UJ+hjeTC58gfVy4WMAABxclXO2AgAA5QghuO4HAKA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAi1GboI/hzcQIPLNeLowAAD1VOWcrAABQjhCC634AAIojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDAeas7n0wpmQ8AgHYxxpNGKgBwDE3TGKEog8HACKfnuh8AAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAuTG2CPkZ39+fxQlbzmXcTAChHlXPudjKlZD4AOLimaYxQlMFgYIQ+Yoz7Hgkh+CYVACQRFMdvUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAJatNAEC7bdOMpw92+GM1nxkBTqDKOXc7mVIyHwAA7WKM+x4JIbjuBwCgOK77exnd3V/4Aq69AIBjcN0PAMARue4HAOBMiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIA91CYAoN22acbTh0teYDWf+RjAiVU5524nU0rmAwCgXYxx3yMhBNf9AAAUR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAABxQbQIA2m2bZjx9sAPPrOYzI3A8Vc6528mUkvkAAGgXY9z3SAjBdT8AAMURqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgvNWPX95aAeBF/Pz01QgAfxtef66qN693j7+urna7nUEAACjCbwh7f/078G9ZAAAAAElFTkSuQmCC"/><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<T,<span class="_"> </span>E><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"><<span class="ff6 fc5">int</span></span>,<span class="_ _11"> </span>Error<span class="fc6">><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">><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">><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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoklEQVR42u3YsU0DQRCG0Vt0I6IVNSAiKkCIGMmd0QTlOKAIOiCyNmKSIyMgsQUHDNx7Hey/yadpVzd3EwAAlPH8tD+zAgAA1YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAADetcy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARKoJAAAQqQAAcMRsAoD/ZIxhhA9670aAP8clFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAAFhVy0wrAABQR0S4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAwHeZTXC6MYYROKr3bgQA+CKXVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAGBVLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDYlNkE/Iwxxtae3Hv37wDwOS6pAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAOB3tcy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIAVzIeHSysAUNPL/aMRYIOub3etXZwvh9dpWpbFIAAAlPAG7xAl/pMvvFwAAAAASUVORK5CYII="/><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"><iostream></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"><memory></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"><<<span class="_ _8"> </span><span class="fca">"Constructor<span class="ff6 fcd">\n</span>"</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"><<<span class="_ _8"> </span><span class="fca">"Destructor<span class="ff6 fcd">\n</span>"</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"><</span>A<span class="fc6">><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"><</span>A<span class="fc6">><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<A><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-><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<T><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"><iostream></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"><memory></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"><</span>A<span class="fc6">><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">-></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"><</span>A<span class="fc6">></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"><</span>A[]<span class="fc6">><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">&<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"><iostream></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"><memory></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"><<<span class="_ _8"> </span><span class="fca">"delete"<span class="_ _11"> </span></span><<<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"><</span>A,<span class="_ _11"> </span><span class="ff6 fc4">decltype</span>(DeleteLambda)<span class="fc6">></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>"delete"</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"><iostream></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"><memory></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"><</span>A<span class="fc6">><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"><</span>A<span class="fc6">><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"><</span>A<span class="fc6">><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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI3klEQVR42u3YsW0UYRCG4fvRjohGrgERUQFCjpHcmZugHAKKoAMiayImOWcOrQuOY3bveSrY/f7k1azPXx9PAAAwxu9fPz9YAQCAaUQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAABvVndbAQCAOSLCJRUAgHFEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgBwV7YdfWtVeTDel5lGAIADcEkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAArmp1txUAAJgjIlxSAQAYR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAMJsJLldVB/ujzPSsAMBALqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMBNre62AgAAc0SESyoAAOOIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAABzdZoLLVZUR/oXMNPguXgQAbsYlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAA7NvqbisAADBHRLikAgAwjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDA0W0muFxVGWGszDQCAByGSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAABwVau7rQAAwBwR4ZIKAMA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgCwZ5sJLldVRvhfMtMIAHA/XFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAICbWt1tBQAA5ogIl1QAAMYRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAADDMZgJuoKqMwBCZaQSA+VxSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAgKta3W0FAADmiAiXVAAAxhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAPdpenj9ZAQB26s/3H0bgeL58e1rr4eP55e/pdD6fDQIAwAivbPc6+ARKduwAAAAASUVORK5CYII="/><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-><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"><iostream></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"><memory></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"><</span>A<span class="fc6">><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"><</span>A<span class="fc6">></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"><<<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<A><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"><<<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"><<<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">-></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"><memory></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"><<span class="ff6 fc5">int</span>><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"><<span class="ff6 fc5">int</span>><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"><<<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">'</span>true<span class="ff10">'</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"><memory></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"><</span></span><span class="fc5">int<span class="ffa fc6">><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"><<<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"><<span class="ff6 fc5">int</span>><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"><<<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"><<<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"><<<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"><<<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"><iostream></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"><thread></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"><<<span class="_ _8"> </span><span class="fca">"first<span class="_ _8"> </span>thread"<span class="_ _6"> </span></span><<<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>"th"<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"><iostream></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"><thread></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"><vector></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"><<<span class="_ _8"> </span><span class="fca">"thread<span class="_ _8"> </span>"<span class="_ _6"> </span></span><<<span class="_ _8"> </span></span>id<span class="_ _6"> </span><span class="fc6"><<<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"><</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>><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"><<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">&</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">&<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"><<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"><<<span class="_ _8"> </span><span class="fca">"thread<span class="ff6 fcd">\n</span>"</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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI2klEQVR42u3YsU1cURCG0b3WGxGNqMFy5Aosy7ElOqMJyiFwEXTgCE3kSZaMyEIP6WEP7Dkd3P8mn2Z9+fbjBAAAYzz8uv9kBQAAphGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAA8W91tBQAA5ogIl1QAAMYRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAABdkM8F+VWUEOFBmGgGAv3JJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAA61utsKAADMEREuqQAAjCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAw3WaC/arKCACZaQTgrbmkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAICPbXW3FQAAmCMiXFIBABhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAIDLtplgv6oyAvAPZKYRgAvnkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAAAcanW3FQAAmCMiXFIBABhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgUm0m2K+qjPCCzDQCAHAIl1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQDgUKu7rQAAwBwR4ZIKAMA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAANNtJtivqj72AzPTLwMAE7ikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAAIda3W0FAADmiAiXVAAAxhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQCYbjPBflVlhBdkphEAgEO4pAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAr7K62woAAMwRES6pAACMI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAALxf2+PtZysAADz7/fPOCP/X1+83a11fnR//nE7n89kgAACM8AT8mzf4OrXcnwAAAABJRU5ErkJggg=="/><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"><chrono><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"><iostream><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"><thread><span class="_ _1d"> </span>//<span class="_ _38"> </span>"child<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit"<span class="_ _8"> </span>(t_child<span class="_ _6"> </span><<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>"main<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit"</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"><<<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"><<<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"><<<span class="_ _8"> </span><span class="fca">"child<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff6 fcd">\n</span>"</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"><<<span class="_ _8"> </span><span class="fca">"main<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff6 fcd">\n</span>"</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"><iostream></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"><thread></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">&<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">&<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"><</span><span class="fc5">int<span class="ff11 fc6">&><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"><<<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6"><<<span class="_ _6"> </span><span class="fca">",<span class="_ _8"> </span>"<span class="_ _6"> </span></span><<<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6"><<<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"><<<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6"><<<span class="_ _6"> </span><span class="fca">",<span class="_ _8"> </span>"<span class="_ _6"> </span></span><<<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6"><<<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><<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"><chrono></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"><iostream></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"><thread></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"><vector></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">&<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"><<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"><</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>><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"><<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">&<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"><<<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"><thread><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">&<span class="_ _8"> </span><span class="fc0">value,<span class="_ _8"> </span>std</span>::<span class="fc0">mutex</span>&<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"><<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"><</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>><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"><<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">&<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"><<<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"><atomic><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"><</span></span></span>int<span class="ff11 fc6">>&<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"><<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"><<span class="ff6 fc5">int</span>><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"><</span>std<span class="fc6">::<span class="ff6 fc4">thread</span>><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"><<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">&<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"><<<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"><future><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"><</span>typename<span class="_ _8"> </span><span class="fc8">RandomIt<span class="ffa fc6">></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"><<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"><</span>RandomIt<span class="fc6">></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"><<span class="ff6 fc5">int</span>><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"><<<span class="_ _8"> </span><span class="fca">"The<span class="_ _11"> </span>sum<span class="_ _11"> </span>is<span class="_ _8"> </span>"<span class="_ _11"> </span></span><<<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>
|