1666 lines
671 KiB
HTML
1666 lines
671 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.738000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff3;src:url('data:application/font-woff;base64,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')format("woff");}.ff3{font-family:ff3;line-height:0.704000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff4;src:url('data:application/font-woff;base64,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')format("woff");}.ff4{font-family:ff4;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff5;src:url('data:application/font-woff;base64,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')format("woff");}.ff5{font-family:ff5;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff6;src:url('data:application/font-woff;base64,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')format("woff");}.ff6{font-family:ff6;line-height:0.915000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff7;src:url('data:application/font-woff;base64,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')format("woff");}.ff7{font-family:ff7;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff8;src:url('data:application/font-woff;base64,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')format("woff");}.ff8{font-family:ff8;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff9;src:url('data:application/font-woff;base64,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')format("woff");}.ff9{font-family:ff9;line-height:0.956000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffa;src:url('data:application/font-woff;base64,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')format("woff");}.ffa{font-family:ffa;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffb;src:url('data:application/font-woff;base64,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')format("woff");}.ffb{font-family:ffb;line-height:0.956000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffc;src:url('data:application/font-woff;base64,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')format("woff");}.ffc{font-family:ffc;line-height:0.716000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffd;src:url('data:application/font-woff;base64,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')format("woff");}.ffd{font-family:ffd;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffe;src:url('data:application/font-woff;base64,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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,d09GRgABAAAAAAWoAA4AAAAACFgAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFjAAAABoAAAAcn3rSHEdERUYAAAVwAAAAHAAAAB4AJwAMT1MvMgAAAbgAAABGAAAAVlU7gxBjbWFwAAACFAAAAEcAAAFSIaspXmN2dCAAAAJcAAAABAAAAAQAIQJ5Z2FzcAAABWgAAAAIAAAACP//AANnbHlmAAACcAAAAQAAAAFAHQf6TGhlYWQAAAFEAAAAMwAAADYnXkuhaGhlYQAAAXgAAAAgAAAAJAZkBA5obXR4AAACAAAAABQAAAAUC+8AWWxvY2EAAAJgAAAADgAAAA4A9ACqbWF4cAAAAZgAAAAfAAAAIABKAF1uYW1lAAADcAAAAcAAAANR14uq03Bvc3QAAAUwAAAAOAAAAEEDmIDMeJxjYGRgYGBiOLJz5d8d8fw2XxnkmV8ARRge6TJfgNOK//cxr2eaBeRyANUCAQCdaA2CAHicY2BkYGCa9X8fAwPzCwYgYF7PkMIgyYAMWABy4wR5eJxjYGRgYGBj0GFgYgABEMnIABJzYNADCQAACDsAqAB4nGNgZH7BOIGBlYGBqYtpD4MiQw+I/t/D+IDBkJEJKMrAyskAA4xAnADjBKS5pgApBaUspln/9wFVzmJwgqphAAB0YQ0YAAAD6AAhAAAAAAPoAAAD6AAAADcAOHicY2BgYGaAYBkGRgYQ8AHyGMF8FgYDIM0BhExAWkFxklLW//8I1v/H94ruzobqAgNGNgY4lxGkh4kBFTBCrBrOAACh9AxMAAAhAnkAAAAqACoAKgAqAFYAoAAAeJxtz0Fqg0AUxvH33lTHcWraGE0IJaVjIJYGUqpGC/USgQR6gi6zzLKQE2SfS4geoNtcogfoxk3BXdUme3cfv8UHfyBQAPhER2DAYZEjPKcFv4IyyHXtOy0YnSfk7MLahQuu419a4MXDvur7YX+qUPycTnSsPxS9n+8gaSuWYQt3AODwHnJ9jt4yTpQXhWrmR28YjO5xxDJjte2RsOV4V0vXpWo3lrag3naFdEuT/VpYh83j5mCJ9X4CBK/tF8soBhfmAJoz9XycLaM4wTgMhq7DBQ67lT4dw6x/bS7p5lrj1qCRWA3wpUsXjo4PwjLOoUqXQppN2ZSm7NR/4o9BO3icrVLLattAFD2j2IZCSXftppS7KSQLDYqULpxlTBIwlhOsuAS6GieyLfyYICkYf0N/pXTRj+p39Gg07cKLdlMNmnvmvs+dAXCM71Bov89/sMIb9dHjAD018PgIifrhcQfvgrced3EcjDzuUf+VnqrziqdvLqrBCh9U1+MAr9Unj48wV0OPO9Dqp8ddvA+0xz3o4AsGsHjGHiUKLLBEDUGMiCtByNXiPrUzegkuobkPYfCIFWN3qCgL6gy2eHI2jdR5jZ299Ww8Tnjeukw5KxmsMefJuv2eugfKKTJcYcJdcEN5S80dT6fMiIF93pfFYllLHEVJGHLvy2wvl1qG5nFld9WqELN9kqFOtYztjspCTuxWZvnSrOdi53KfP8g0u5pkcjO5nd5lp8w7YsMpG6rZVkaaG7Zo2V6FM5LHKE1Nvcz2m5ldV2dUNMRKejUUMLblxlBeO3a1kyVnmbtJaiYQXPD/e5GQXHNGvVBjGN/GxJx86G6iuYcY5yxjt/W1LRe5xDqSCzloLpzki5e1KWmJ+2HCEcXn/yJ4WPuQ8O+czWvOaa94m+1NtvyatyI05mVVcNbsK0rkvxX9BfZnlWZ4nGNgYmD4//Hb7v9NDBoMDAyMDOiADSzKxMDMyMTIzJVYVJRfXpSZnlHCXpqXaWRk5ggAfYcL4gAAAAH//wACeJxjYGRgYOABYjEgZmJgBEJWIGYB8xgAA9UANHicY2BgYGQAgtsKp6pB9CNd5gswGgBC6gYGAAA=')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,d09GRgABAAAAAAUcAA0AAAAAB0AAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFAAAAABoAAAAcn3rSNEdERUYAAATkAAAAHAAAAB4AJwAMT1MvMgAAAaQAAABDAAAAVlSnX5ljbWFwAAACAAAAAE4AAAFSBVULMmdhc3AAAATcAAAACAAAAAj//wADZ2x5ZgAAAmAAAACEAAAAmFneDwhoZWFkAAABMAAAADMAAAA2JoRLFGhoZWEAAAFkAAAAIAAAACQE7QNLaG10eAAAAegAAAAWAAAAFgafAFNsb2NhAAACUAAAAA4AAAAOAEwAJm1heHAAAAGEAAAAHQAAACAASQAYbmFtZQAAAuQAAAHRAAADBsJLjaNwb3N0AAAEuAAAACMAAAAu/9P2FXicY2BkYGBgZmhW0NQziee3+crAzfwCKMLwSJf5DpwO/n+DaRuTDJDLwcAEEgUAJOsKrgB4nGNgZGBgkvl/g4GBmYsBCJi2MaQwSDIgA1YAUVcDPnicY2BkYGBgYxBlANEMDExAzAhmO4D5DAAE/wBiAAAAeJxjYGRiZ/zCwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGNmgAFGBiQQkOaaAqQUGOyYZP7fAKqUYdCAqQEAKMgK6wAB9AAAAAAAAAFNAAAAAQAAAwoAUwBTAAB4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMQFqBwYbB7v9/BOv/4/8n/h+H6gIDRjYGOJcRpIeJARUwQqzCBVgYWPHIDg0AAMF3C5AAAAAAAAAAAAAAAAAAJgBMAAB4nGNgZAj+f4NpG5MMgwgDAyMvo5ioCJuykjqjmok5o5mxEZDLtPjvZyZeYR4OVt6/14SFmbR4WTl4GD/9+MHFw8HDzsjKKcXJyMoOZDOgmKXKCDRHzdTEXJcRSAKNEmcUA5l1DaRdmIn372ewkUxawk/+/QZp54Ka+O83pxQDAMK8IDd4nG2RwWrbQBRFrxTHEAhtvqA8urLBlsdyIMiEQFAxZKFAE+heyIMliCQjjSO86Bd01w/p93RR+iPd9M54ugjUgzVn3ry5774ZAO/wAwFOvwa/PQd4H9SeQ4yDb57P8DH46XmEcXjh+RxXYex5zPhnZgajC65+uVOWA3wIMs8hLoOvns/wKfjuecT4H8/nkPDK8xiXYYoULfY4okOFHUoYCCYoMOW8RMJxgxk5huJISPeooV1+gZz9CTLOhmc1dyyddl6480z1gmvN6NEp37oahjXXWHAMbkTMr9Fzbqm8wx3r26oDz1plwRM1elf3ld8tIxvmNs7vozutSSm9ZHigc0UtpO3+2FW70sikmMoySW5mEiuVyH2tu6rIG8lyU+o6N1y8yHNbVNocZXJbGrNfLxbDMER53Udtt7ubzmSoTClPutfdq97Kpm2MPOa1ljTLHpbK1qOlmq0daMtatVfT0qzlxtqp9wejO8nare4YyFwrFfNrLvS2OnD+19fG34V2tx+xI+Gdve3xFIn5LnOs+LevFOOaIjS3oW0tcaRk7S0S4mS+mscqvsYbIZwSgC/ObE9TrXtb++orV90qCxN011dtI0qtIqVi+b/OX9H8gdMAAAB4nGNgYmD4//Hrof9bGYwYsAE2IGZkYGJgZpBnUAQA3JgF3AAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCViBmAfMYAAPVADR4nGNgYGBkAILbCqeqQfQjXeY7MBoAQ2IGHgAA')format("woff");}.ff12{font-family:ff12;line-height:0.580000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff13;src:url('data:application/font-woff;base64,d09GRgABAAAAAAUwAA0AAAAABzgAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFFAAAABoAAAAcn3rSPkdERUYAAAT4AAAAGwAAAB4AJwALT1MvMgAAAaQAAABDAAAAVlZLXsljbWFwAAAB/AAAAEwAAAFKAO8GhGdhc3AAAATwAAAACAAAAAj//wADZ2x5ZgAAAlQAAAChAAAApEjmZ71oZWFkAAABMAAAADMAAAA2JW5LHmhoZWEAAAFkAAAAIAAAACQEtAFjaG10eAAAAegAAAAUAAAAFAU2AEhsb2NhAAACSAAAAAwAAAAMAAAAUm1heHAAAAGEAAAAHQAAACAASAA7bmFtZQAAAvgAAAHSAAADBuh5ycNwb3N0AAAEzAAAACEAAAAs/7H2VHicY2BkYGBgZmhm7BPKiee3+crAzfwCKMLwSJf5IZz2+M/GuJrpHZDLwcAEEgUAMfgLAwB4nGNgZGBgevefjYGB8QsDEDCuZkhhkGRABqwAaLwEGnicY2BkYGBgZbBgANEMDExAzAhmO4D5DAAITwCEAAAAeJxjYGT4xfiFgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMbMAAOMDEggIM01BUgpMFQzvfvPBlT5juEXTA0AjXwNvQAB9AAAAAAAAAFNAAAAAQAAAfQASHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUGKr//wfywfT/x/87oeqBgJGNAc5hZAISTAyogBFiBY0AC+2MJh4AAE1mCXMAAAAAAAAAAAAAAFJ4nGNgZPD4z8a4mukdgzkDA6OoCLuYuByjLKMIkBQXM5IDiigrqanrMdoymgBJdTUlPUZTE3MzczugiB2jsRFQBx8jo3SZubiEADOXswErCyuTsHKQtIIAM4eLIYjHaaMszctY5CvM6WnHlPkhTlFAXEJV6ZIap5oeMyMTCwu3iKiUvvoxNW5VQzCfk4lZVkxX9YmZOzcnE6szAwMALP4WRAAAAHicbZHBattAFEWvFMcQCG2+oDy6ssGWx3IgyIRAcPFOgcZQyFLIgyWIJCONI7zoF3TXD+n3dFHyI9n0zni6CNSDNWfevLnvvhkAH/ALAU6/Gq+eA3wMKs8hhsEPz2f4HPz2PMAwvPB8jqsw9jxk/Cszg8EFV3/cKcsBPgWp5xCXwXfPZ/gS/PQ8YPzN8zkkvPI8xGW4wgoN9jiiRYkdChgIRsgx5jxHwnGDCTmG4khI96igXX6OjP0JUs6GZzV3LJ12nrmzoXrOtWb06JRvXQ3DmkvMOHo3IuZX6Dg3VN7hjvVt1Z5nrbLgkRqdq/vC75aRNXNr5/fBndakFb1s8ETnilpYNftjW+4KI6N8LPMkuZlIrFQi95VuyzyrJc1MoavMcPEsmyYvtTnK6LYwZr+czfq+j7Kqi5p2dzeeSF+aQh51p9sXvZV1Uxt5yCotq3TzNFe2Hi1VbO1AW9aqvZqGZi3X1k61PxjdStpsdctA6lopmV9xobflgfO/vtb+LrS7/YgdCe/sfY+nSMx3mWLBv32lGNcUobk1bWuJIyVLb5EQJ9PFNFbxNd4J4ZQAfHNmO5pq3NvaV1+46lZZmKDbrmxqUWoRKRXL/3X+AjF1goMAAHicY2BiYPj/8euh/1sZjBiwAVYgZmRgYmBmiAMA0TUF+QAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9CNd5ocwGgBDlAYoAAA=')format("woff");}.ff13{font-family:ff13;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff14;src:url('data:application/font-woff;base64,d09GRgABAAAAAATQAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcn3rSSEdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADIAAAA2JpdLaWhoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG1AAADRagRBI5wb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjhSuXOBbTy/zVcGbuYXQBGGR7rMz+C0JUMD01PGEiCXA6gWCABgKwt7AAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUstq20AUPaPYhkLxsqssLpRCApEQUjbOqsQkBhM5QYpLtuNYtoVtTZAUjHf9oLbf1E/p0WgotJSsqkH3nvt+zAAY4gcUuu/Lb6wwVB8d9jBQnx0+QaS+O9zDB2/ocB9Db+zwgPqv9FS9d5S+2agWK5yqvsMe3qvI4RMs1cThHi7UT4f7OPU+OTzAhZdiDIMXHFGhwBobNBBECHli+DwdHlG7oJfgGgHpFBrP2DL2gJq8oE6jxNLaAiTWa2btnWfrcUa5tJlyVtLYYUXJWPpI3RP5HBlukJIKJuT31DxQOmdGjM3LsSrWm0aiMIx9n3Qki6NcBzLVz1tzqLeF6HIp0yAJZGYOVBZyZkpZ5Bu9W4lZyWP+JPPsJs1kkt7PH7Jz5r1jwwkbathWxjH3bNGwvZqD4y5JdLPJjvuF2dWU26kqurT9Y2aqvSa/taM1lldcZG7XGHB1giv+b1XwOWbOmFfKmtFdRGQtsbuCCJcsYsrm1lTrXKIglCv5szM/zdevO13REI38mMuJLt8e7e/C+HfC9hHnNNe8xO4Cu8naJyI05lVdcMXsKYzl/1T8BT/ck9YAAAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9CNd5mcwGgBDxgYyAAA=')format("woff");}.ff14{font-family:ff14;line-height:0.244000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff15;src:url('data:application/font-woff;base64,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')format("woff");}.ff15{font-family:ff15;line-height:0.834000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff16;src:url('data:application/font-woff;base64,d09GRgABAAAAAATcAA0AAAAAB0gAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcn3rSXEdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlO4f7NjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABnAAAAbDQU7jxoZWFkAAABMAAAADIAAAA2JrJLfWhoZWEAAAFkAAAAHgAAACQEkgOjaG10eAAAAegAAAAUAAAAFAWgADtsb2NhAAACRAAAAAwAAAAMAAAANm1heHAAAAGEAAAAHQAAACAASAAnbmFtZQAAArgAAAG4AAADRaYPAoxwb3N0AAAEcAAAACkAAAA0cHnCwnicY2BkYGBgYjji2fF9fjy/zVcGbuYXQBGGR7rMH+C0NUMV0z/GKiCXA6gWCABxcwwCAAB4nGNgZGBgrGIAAmYrEMn0jyGFQZIBGbACADBHAjwAAHicY2BkYGBgZVBhANEMDExAzAhmO4D5DAAGWwBwAAAAeJxjYGScyziBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YqsGQVXA0DADEqCjYAAAABGAAAAAAAAAFNAAAAAQAAAzoAO3icY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAANnicY2BksGaoYvrHWMWgzMDAKMKmrKSmrseorMTHxC7CB6RNTcyMjcTE5RiNjczMgUymfwlBBsGmBr5aYnp6ckxMHGwCMAHbIGYmPgHG0OAOYyNdPQEVFz1mLh4VCC/aVp0BAKK+EmYAeJytUstq20AUPaPYhkLwsqssLpRCApEQchZ1ViUmMZjKCVJcsh3Hsi1sa4KkYLzrBzX5pn5Kj0ZDoaFkVQ2699zX3NcA6OMVCu33/Q9W6KtPDnvoqa8OHyFSLw538NHrO9xF3xs53KP+Bz1V5wOlnzaqwQonquuwh2MVOXyEhRo73MG5+uVwFyfeZ4d7OPcSjGDwhANK5FhhjRqCCCHPAD5Pi4fUzukluEJAOoHGIzaM3aMiz6nTKLCwtgCx9Zpae+vZeJxSLuxNGTNpbLGkZCy9p+6BfIYU10hIBWPyW2ruKJ3xRozM06HMV+taojAc+D7pUOYHuQpkoh83Zl9tctHFQiZBHMjU7KnM5dQUMs/WersUs5T77EFm6XWSyji5nd2lZ7z3GwuOWVDNslK2uWOJhuVV+EJjHOt6nR52c7OtKDddlXRp6sfUlDtNfmNbqy0vOcjMjjHg6ASX/N/L4LPNjDHPlDWj24iIQ/ftEpoVRLhgElPUN6ZcZRIFoVzK35X5SbZ63uqShmjoDzic6OL91t4mxr8vbB5xRnPFJbYLbDtrnojQmJVVzhGzpnAg/yfjbznQk854nGNgYmD4//Hb7v9zGVQYsAFWIGZkYGJgZmRiL87MzcxJLAIAApcIagAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9CNd5g8wGgBEKgZGAAA=')format("woff");}.ff16{font-family:ff16;line-height:0.256000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff17;src:url('data:application/font-woff;base64,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')format("woff");}.ff17{font-family:ff17;line-height:0.922000;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;}
|
||
._e{margin-left:-3.307583px;}
|
||
._3{margin-left:-1.818300px;}
|
||
._c{width:1.818300px;}
|
||
._0{width:3.073600px;}
|
||
._f{width:4.450802px;}
|
||
._24{width:5.547190px;}
|
||
._2d{width:6.626231px;}
|
||
._2e{width:10.563907px;}
|
||
._10{width:11.651385px;}
|
||
._b{width:13.270183px;}
|
||
._d{width:15.063940px;}
|
||
._6{width:16.116719px;}
|
||
._8{width:17.550234px;}
|
||
._2a{width:18.571216px;}
|
||
._11{width:19.586258px;}
|
||
._a{width:21.060222px;}
|
||
._1c{width:22.317611px;}
|
||
._19{width:23.503329px;}
|
||
._25{width:24.591917px;}
|
||
._18{width:26.205751px;}
|
||
._30{width:27.239796px;}
|
||
._14{width:28.333291px;}
|
||
._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:42.364543px;}
|
||
._22{width:46.574886px;}
|
||
._3e{width:50.211630px;}
|
||
._1f{width:51.628761px;}
|
||
._1d{width:55.729902px;}
|
||
._32{width:57.276364px;}
|
||
._3a{width:67.719096px;}
|
||
._29{width:75.079090px;}
|
||
._4b{width:76.089071px;}
|
||
._1a{width:94.146240px;}
|
||
._39{width:101.595209px;}
|
||
._44{width:113.489887px;}
|
||
._20{width:135.887473px;}
|
||
._15{width:149.878222px;}
|
||
._27{width:151.155029px;}
|
||
._45{width:169.347435px;}
|
||
._21{width:185.984810px;}
|
||
._3c{width:202.807126px;}
|
||
._3b{width:204.026633px;}
|
||
._17{width:225.955040px;}
|
||
._41{width:237.285973px;}
|
||
._36{width:254.047160px;}
|
||
._42{width:271.162086px;}
|
||
._40{width:288.100143px;}
|
||
._26{width:319.340782px;}
|
||
._37{width:335.687994px;}
|
||
._4c{width:358.529231px;}
|
||
._47{width:373.604164px;}
|
||
._31{width:470.731200px;}
|
||
._38{width:525.029943px;}
|
||
._2c{width:622.662682px;}
|
||
._35{width:694.395887px;}
|
||
._2b{width:734.342560px;}
|
||
._3f{width:745.205943px;}
|
||
._33{width:785.219755px;}
|
||
._34{width:878.976749px;}
|
||
._3d{width:885.671661px;}
|
||
._23{width:899.174502px;}
|
||
._43{width:961.515290px;}
|
||
._28{width:1070.086042px;}
|
||
._4a{width:1144.687599px;}
|
||
._1b{width:1173.474611px;}
|
||
._48{width:1200.263102px;}
|
||
._46{width:1266.293674px;}
|
||
._12{width:1296.662102px;}
|
||
._2f{width:1306.023040px;}
|
||
._49{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;}
|
||
.y20c{bottom:-6.888000px;}
|
||
.y0{bottom:-0.500000px;}
|
||
.y22e{bottom:2.139000px;}
|
||
.y1ac{bottom:2.622000px;}
|
||
.y175{bottom:3.629000px;}
|
||
.y20b{bottom:3.996000px;}
|
||
.y1ef{bottom:4.605000px;}
|
||
.y6a{bottom:5.666000px;}
|
||
.ya2{bottom:6.370000px;}
|
||
.y12b{bottom:6.665000px;}
|
||
.y254{bottom:6.742000px;}
|
||
.y21a{bottom:6.827000px;}
|
||
.y77{bottom:7.005000px;}
|
||
.y123{bottom:7.163000px;}
|
||
.y15b{bottom:7.678000px;}
|
||
.y2c{bottom:8.256000px;}
|
||
.y1c6{bottom:9.587000px;}
|
||
.y39{bottom:9.907000px;}
|
||
.ybb{bottom:10.021000px;}
|
||
.y10c{bottom:10.750000px;}
|
||
.y249{bottom:10.915000px;}
|
||
.y42{bottom:11.169000px;}
|
||
.yc{bottom:13.018000px;}
|
||
.y22d{bottom:13.024000px;}
|
||
.y1ab{bottom:13.507000px;}
|
||
.y8f{bottom:13.586000px;}
|
||
.y140{bottom:13.890000px;}
|
||
.y174{bottom:14.513000px;}
|
||
.yea{bottom:14.682000px;}
|
||
.y20a{bottom:14.880000px;}
|
||
.y18d{bottom:15.489000px;}
|
||
.y238{bottom:15.642000px;}
|
||
.yc7{bottom:16.148000px;}
|
||
.y98{bottom:17.511000px;}
|
||
.y219{bottom:17.711000px;}
|
||
.y122{bottom:18.770000px;}
|
||
.y12a{bottom:19.268000px;}
|
||
.y253{bottom:19.344000px;}
|
||
.y2b{bottom:19.862000px;}
|
||
.y1c5{bottom:20.471000px;}
|
||
.yba{bottom:20.905000px;}
|
||
.y248{bottom:21.799000px;}
|
||
.y252{bottom:22.459000px;}
|
||
.y10b{bottom:23.353000px;}
|
||
.y103{bottom:23.832000px;}
|
||
.y22c{bottom:23.908000px;}
|
||
.y19a{bottom:24.199000px;}
|
||
.y1aa{bottom:24.391000px;}
|
||
.y4c{bottom:24.489000px;}
|
||
.yac{bottom:25.361000px;}
|
||
.y173{bottom:25.397000px;}
|
||
.y38{bottom:25.489000px;}
|
||
.y209{bottom:25.764000px;}
|
||
.y18c{bottom:26.373000px;}
|
||
.y13f{bottom:26.492000px;}
|
||
.y17d{bottom:26.651000px;}
|
||
.y41{bottom:26.751000px;}
|
||
.yc6{bottom:27.032000px;}
|
||
.y8e{bottom:27.334000px;}
|
||
.y133{bottom:27.538000px;}
|
||
.y218{bottom:28.595000px;}
|
||
.ya1{bottom:29.222000px;}
|
||
.y1eb{bottom:29.918000px;}
|
||
.y69{bottom:29.997000px;}
|
||
.ye9{bottom:30.263000px;}
|
||
.y16{bottom:30.313000px;}
|
||
.y121{bottom:30.376000px;}
|
||
.y129{bottom:30.874000px;}
|
||
.y1c4{bottom:31.355000px;}
|
||
.yb9{bottom:31.790000px;}
|
||
.ydf{bottom:31.947000px;}
|
||
.y76{bottom:32.188000px;}
|
||
.y237{bottom:32.220000px;}
|
||
.y2a{bottom:32.465000px;}
|
||
.y247{bottom:32.683000px;}
|
||
.y56{bottom:33.564000px;}
|
||
.y22b{bottom:34.792000px;}
|
||
.y1a9{bottom:35.275000px;}
|
||
.y1f{bottom:35.478000px;}
|
||
.y1f8{bottom:35.680000px;}
|
||
.y10a{bottom:35.956000px;}
|
||
.y251{bottom:36.208000px;}
|
||
.y172{bottom:36.281000px;}
|
||
.y208{bottom:36.649000px;}
|
||
.y199{bottom:36.801000px;}
|
||
.y18b{bottom:37.258000px;}
|
||
.yf6{bottom:37.307000px;}
|
||
.yc5{bottom:37.917000px;}
|
||
.yab{bottom:37.964000px;}
|
||
.y13e{bottom:39.095000px;}
|
||
.y217{bottom:39.479000px;}
|
||
.y97{bottom:40.066000px;}
|
||
.y4b{bottom:40.071000px;}
|
||
.y132{bottom:40.141000px;}
|
||
.y7f{bottom:40.648000px;}
|
||
.y8d{bottom:41.082000px;}
|
||
.y120{bottom:41.983000px;}
|
||
.y17c{bottom:42.232000px;}
|
||
.y1c3{bottom:42.239000px;}
|
||
.yb8{bottom:42.674000px;}
|
||
.y11b{bottom:42.805000px;}
|
||
.y75{bottom:43.072000px;}
|
||
.y128{bottom:43.477000px;}
|
||
.y163{bottom:43.490000px;}
|
||
.y246{bottom:43.568000px;}
|
||
.y29{bottom:44.071000px;}
|
||
.yde{bottom:44.550000px;}
|
||
.y1b4{bottom:44.626000px;}
|
||
.y1e0{bottom:45.235000px;}
|
||
.y22a{bottom:45.676000px;}
|
||
.ye8{bottom:45.845000px;}
|
||
.y1a8{bottom:46.159000px;}
|
||
.y171{bottom:47.165000px;}
|
||
.y14b{bottom:47.311000px;}
|
||
.y207{bottom:47.533000px;}
|
||
.y68{bottom:47.781000px;}
|
||
.y1ee{bottom:48.142000px;}
|
||
.y5e{bottom:48.220000px;}
|
||
.y109{bottom:48.558000px;}
|
||
.y102{bottom:48.719000px;}
|
||
.y236{bottom:48.798000px;}
|
||
.yc4{bottom:48.801000px;}
|
||
.y198{bottom:49.404000px;}
|
||
.y15{bottom:49.516000px;}
|
||
.yf5{bottom:49.909000px;}
|
||
.y1d5{bottom:49.957000px;}
|
||
.yaa{bottom:50.567000px;}
|
||
.y37{bottom:50.674000px;}
|
||
.y250{bottom:51.363000px;}
|
||
.y13d{bottom:51.698000px;}
|
||
.y131{bottom:52.744000px;}
|
||
.y1c2{bottom:53.123000px;}
|
||
.yb7{bottom:53.558000px;}
|
||
.y11f{bottom:53.589000px;}
|
||
.y74{bottom:53.956000px;}
|
||
.y5{bottom:53.958000px;}
|
||
.y245{bottom:54.452000px;}
|
||
.y1e{bottom:54.681000px;}
|
||
.y127{bottom:55.083000px;}
|
||
.y154{bottom:55.154000px;}
|
||
.y15a{bottom:55.199000px;}
|
||
.y96{bottom:55.648000px;}
|
||
.y4a{bottom:55.652000px;}
|
||
.y229{bottom:56.560000px;}
|
||
.y1f7{bottom:56.711000px;}
|
||
.y1ea{bottom:56.723000px;}
|
||
.ya0{bottom:56.758000px;}
|
||
.y8c{bottom:56.798000px;}
|
||
.y1a7{bottom:57.043000px;}
|
||
.ydd{bottom:57.152000px;}
|
||
.yd2{bottom:57.536000px;}
|
||
.y1df{bottom:57.837000px;}
|
||
.y206{bottom:58.417000px;}
|
||
.y18a{bottom:59.026000px;}
|
||
.y162{bottom:59.072000px;}
|
||
.y7e{bottom:59.219000px;}
|
||
.yc3{bottom:59.685000px;}
|
||
.y1b3{bottom:60.207000px;}
|
||
.y67{bottom:60.384000px;}
|
||
.y14a{bottom:61.060000px;}
|
||
.y108{bottom:61.161000px;}
|
||
.y216{bottom:61.247000px;}
|
||
.y40{bottom:61.261000px;}
|
||
.y101{bottom:61.322000px;}
|
||
.y85{bottom:61.395000px;}
|
||
.yf4{bottom:62.512000px;}
|
||
.ya9{bottom:63.170000px;}
|
||
.y36{bottom:63.277000px;}
|
||
.ye7{bottom:63.419000px;}
|
||
.y55{bottom:63.431000px;}
|
||
.y13c{bottom:64.300000px;}
|
||
.y235{bottom:64.379000px;}
|
||
.yb6{bottom:64.442000px;}
|
||
.y73{bottom:64.840000px;}
|
||
.y17b{bottom:65.159000px;}
|
||
.y244{bottom:65.336000px;}
|
||
.y130{bottom:65.346000px;}
|
||
.y5d{bottom:66.054000px;}
|
||
.y24f{bottom:66.083000px;}
|
||
.y11e{bottom:66.192000px;}
|
||
.y228{bottom:67.444000px;}
|
||
.y126{bottom:67.686000px;}
|
||
.y1a6{bottom:67.927000px;}
|
||
.y14{bottom:68.719000px;}
|
||
.y153{bottom:68.903000px;}
|
||
.y170{bottom:68.934000px;}
|
||
.y205{bottom:69.301000px;}
|
||
.ydc{bottom:69.755000px;}
|
||
.y189{bottom:69.910000px;}
|
||
.yd1{bottom:70.138000px;}
|
||
.y1de{bottom:70.440000px;}
|
||
.yc2{bottom:70.569000px;}
|
||
.y4{bottom:70.633000px;}
|
||
.y159{bottom:70.781000px;}
|
||
.y1cd{bottom:71.103000px;}
|
||
.y215{bottom:72.132000px;}
|
||
.y9f{bottom:72.340000px;}
|
||
.y1d4{bottom:72.512000px;}
|
||
.y66{bottom:72.987000px;}
|
||
.y3f{bottom:73.864000px;}
|
||
.y1d{bottom:73.884000px;}
|
||
.y100{bottom:73.924000px;}
|
||
.y197{bottom:74.609000px;}
|
||
.y149{bottom:74.808000px;}
|
||
.y1c1{bottom:74.891000px;}
|
||
.yf3{bottom:75.115000px;}
|
||
.yb5{bottom:75.326000px;}
|
||
.y72{bottom:75.724000px;}
|
||
.ya8{bottom:75.772000px;}
|
||
.y243{bottom:76.220000px;}
|
||
.yb{bottom:77.117000px;}
|
||
.y1f6{bottom:77.742000px;}
|
||
.y11d{bottom:77.798000px;}
|
||
.yf2{bottom:77.929000px;}
|
||
.y12f{bottom:77.949000px;}
|
||
.y35{bottom:78.121000px;}
|
||
.y95{bottom:78.203000px;}
|
||
.y227{bottom:78.328000px;}
|
||
.y1a5{bottom:78.811000px;}
|
||
.y125{bottom:79.293000px;}
|
||
.y16f{bottom:79.818000px;}
|
||
.y54{bottom:79.968000px;}
|
||
.y204{bottom:80.185000px;}
|
||
.y188{bottom:80.794000px;}
|
||
.y234{bottom:80.932000px;}
|
||
.y28{bottom:81.281000px;}
|
||
.yc1{bottom:81.453000px;}
|
||
.y1e9{bottom:81.526000px;}
|
||
.ydb{bottom:82.358000px;}
|
||
.y152{bottom:82.651000px;}
|
||
.yd0{bottom:82.741000px;}
|
||
.y214{bottom:83.016000px;}
|
||
.y1dd{bottom:83.043000px;}
|
||
.y7d{bottom:83.244000px;}
|
||
.y1cc{bottom:83.706000px;}
|
||
.y8b{bottom:83.812000px;}
|
||
.y84{bottom:84.947000px;}
|
||
.y65{bottom:85.589000px;}
|
||
.y1b2{bottom:85.624000px;}
|
||
.y1c0{bottom:85.775000px;}
|
||
.yb4{bottom:86.210000px;}
|
||
.y107{bottom:86.367000px;}
|
||
.y3e{bottom:86.467000px;}
|
||
.yff{bottom:86.527000px;}
|
||
.y71{bottom:86.609000px;}
|
||
.y242{bottom:87.104000px;}
|
||
.y196{bottom:87.212000px;}
|
||
.y24e{bottom:87.617000px;}
|
||
.ye6{bottom:87.717000px;}
|
||
.y13{bottom:87.921000px;}
|
||
.y1d3{bottom:88.093000px;}
|
||
.ya7{bottom:88.375000px;}
|
||
.y148{bottom:88.557000px;}
|
||
.y226{bottom:89.212000px;}
|
||
.y13b{bottom:89.506000px;}
|
||
.y1a4{bottom:89.695000px;}
|
||
.y49{bottom:90.163000px;}
|
||
.y11c{bottom:90.401000px;}
|
||
.yf1{bottom:90.532000px;}
|
||
.y16e{bottom:90.702000px;}
|
||
.y17a{bottom:90.703000px;}
|
||
.y124{bottom:90.899000px;}
|
||
.y203{bottom:91.069000px;}
|
||
.y1ed{bottom:91.678000px;}
|
||
.y1e8{bottom:92.410000px;}
|
||
.y1c{bottom:93.086000px;}
|
||
.y5c{bottom:93.590000px;}
|
||
.y94{bottom:93.785000px;}
|
||
.y213{bottom:93.900000px;}
|
||
.y161{bottom:94.578000px;}
|
||
.y160{bottom:94.579000px;}
|
||
.yda{bottom:94.960000px;}
|
||
.ycf{bottom:95.344000px;}
|
||
.ya{bottom:96.320000px;}
|
||
.y1bf{bottom:96.660000px;}
|
||
.y27{bottom:97.022000px;}
|
||
.yb3{bottom:97.094000px;}
|
||
.y158{bottom:97.296000px;}
|
||
.y70{bottom:97.493000px;}
|
||
.y1f5{bottom:97.856000px;}
|
||
.y241{bottom:97.988000px;}
|
||
.y64{bottom:98.192000px;}
|
||
.y151{bottom:98.392000px;}
|
||
.y106{bottom:98.969000px;}
|
||
.y3d{bottom:99.069000px;}
|
||
.yfe{bottom:99.130000px;}
|
||
.y89{bottom:99.393000px;}
|
||
.y8a{bottom:99.394000px;}
|
||
.y195{bottom:99.815000px;}
|
||
.y9e{bottom:99.877000px;}
|
||
.y225{bottom:100.097000px;}
|
||
.ye5{bottom:100.320000px;}
|
||
.y1a3{bottom:100.580000px;}
|
||
.ya6{bottom:100.978000px;}
|
||
.y16d{bottom:101.586000px;}
|
||
.y202{bottom:101.953000px;}
|
||
.y233{bottom:101.968000px;}
|
||
.y13a{bottom:102.108000px;}
|
||
.y147{bottom:102.305000px;}
|
||
.y187{bottom:102.562000px;}
|
||
.y48{bottom:102.765000px;}
|
||
.yc0{bottom:102.776000px;}
|
||
.yf0{bottom:103.134000px;}
|
||
.y12e{bottom:103.154000px;}
|
||
.y1e7{bottom:103.295000px;}
|
||
.y34{bottom:103.306000px;}
|
||
.y24d{bottom:103.667000px;}
|
||
.y212{bottom:104.784000px;}
|
||
.y116{bottom:106.789000px;}
|
||
.y12{bottom:107.124000px;}
|
||
.y1be{bottom:107.544000px;}
|
||
.yd9{bottom:107.563000px;}
|
||
.yce{bottom:107.946000px;}
|
||
.yb2{bottom:107.979000px;}
|
||
.y1b1{bottom:108.180000px;}
|
||
.y1dc{bottom:108.248000px;}
|
||
.y83{bottom:108.498000px;}
|
||
.y240{bottom:108.872000px;}
|
||
.y1cb{bottom:108.911000px;}
|
||
.y53{bottom:109.089000px;}
|
||
.y224{bottom:110.981000px;}
|
||
.y1a2{bottom:111.464000px;}
|
||
.y3c{bottom:111.672000px;}
|
||
.yfd{bottom:111.732000px;}
|
||
.y1d2{bottom:112.041000px;}
|
||
.y1b{bottom:112.289000px;}
|
||
.y194{bottom:112.417000px;}
|
||
.y16c{bottom:112.470000px;}
|
||
.y26{bottom:112.763000px;}
|
||
.y201{bottom:112.838000px;}
|
||
.y157{bottom:112.878000px;}
|
||
.ye4{bottom:112.923000px;}
|
||
.y1ec{bottom:113.446000px;}
|
||
.y63{bottom:114.033000px;}
|
||
.y1e6{bottom:114.179000px;}
|
||
.y47{bottom:115.368000px;}
|
||
.y9d{bottom:115.458000px;}
|
||
.y9{bottom:115.523000px;}
|
||
.y211{bottom:115.668000px;}
|
||
.yef{bottom:115.737000px;}
|
||
.y33{bottom:115.909000px;}
|
||
.y179{bottom:116.247000px;}
|
||
.y93{bottom:116.340000px;}
|
||
.y146{bottom:118.046000px;}
|
||
.y24c{bottom:118.387000px;}
|
||
.yb1{bottom:118.863000px;}
|
||
.y115{bottom:119.392000px;}
|
||
.y23f{bottom:119.756000px;}
|
||
.y1f4{bottom:119.803000px;}
|
||
.y7c{bottom:119.861000px;}
|
||
.y105{bottom:120.166000px;}
|
||
.y88{bottom:120.430000px;}
|
||
.ycd{bottom:120.549000px;}
|
||
.y1db{bottom:120.851000px;}
|
||
.y5b{bottom:121.127000px;}
|
||
.y1ca{bottom:121.514000px;}
|
||
.y6f{bottom:121.680000px;}
|
||
.y52{bottom:121.692000px;}
|
||
.y223{bottom:121.865000px;}
|
||
.y1a1{bottom:122.348000px;}
|
||
.y16b{bottom:123.354000px;}
|
||
.y232{bottom:123.502000px;}
|
||
.y239{bottom:123.722000px;}
|
||
.y1b0{bottom:123.761000px;}
|
||
.ybf{bottom:123.812000px;}
|
||
.y3b{bottom:124.275000px;}
|
||
.y186{bottom:124.331000px;}
|
||
.yfc{bottom:124.335000px;}
|
||
.y193{bottom:125.020000px;}
|
||
.ye3{bottom:125.525000px;}
|
||
.ya5{bottom:126.183000px;}
|
||
.y11{bottom:126.327000px;}
|
||
.y210{bottom:126.552000px;}
|
||
.y139{bottom:127.314000px;}
|
||
.y150{bottom:127.921000px;}
|
||
.y3{bottom:128.033000px;}
|
||
.yee{bottom:128.340000px;}
|
||
.y156{bottom:128.459000px;}
|
||
.y25{bottom:128.479000px;}
|
||
.y32{bottom:128.512000px;}
|
||
.y1bd{bottom:129.312000px;}
|
||
.yb0{bottom:129.747000px;}
|
||
.y15f{bottom:130.085000px;}
|
||
.y23e{bottom:130.641000px;}
|
||
.y114{bottom:130.998000px;}
|
||
.y178{bottom:131.828000px;}
|
||
.y92{bottom:131.921000px;}
|
||
.y82{bottom:132.050000px;}
|
||
.y222{bottom:132.749000px;}
|
||
.yd8{bottom:132.768000px;}
|
||
.ycc{bottom:133.152000px;}
|
||
.y1a0{bottom:133.232000px;}
|
||
.y12d{bottom:133.441000px;}
|
||
.y1f3{bottom:133.551000px;}
|
||
.y16a{bottom:134.238000px;}
|
||
.y51{bottom:134.294000px;}
|
||
.y46{bottom:134.347000px;}
|
||
.y1d1{bottom:134.596000px;}
|
||
.y200{bottom:134.606000px;}
|
||
.y8{bottom:134.725000px;}
|
||
.y185{bottom:135.215000px;}
|
||
.y7b{bottom:135.443000px;}
|
||
.y11a{bottom:135.481000px;}
|
||
.y1e5{bottom:135.947000px;}
|
||
.y87{bottom:136.011000px;}
|
||
.y5a{bottom:136.708000px;}
|
||
.yfb{bottom:136.938000px;}
|
||
.y20f{bottom:137.436000px;}
|
||
.y192{bottom:137.623000px;}
|
||
.ye2{bottom:138.128000px;}
|
||
.y20{bottom:138.248000px;}
|
||
.y6e{bottom:138.417000px;}
|
||
.y3a{bottom:139.119000px;}
|
||
.ybe{bottom:139.393000px;}
|
||
.y138{bottom:139.916000px;}
|
||
.y1bc{bottom:140.196000px;}
|
||
.y24b{bottom:140.384000px;}
|
||
.y231{bottom:140.414000px;}
|
||
.yaf{bottom:140.631000px;}
|
||
.yed{bottom:140.942000px;}
|
||
.y23d{bottom:141.525000px;}
|
||
.y14f{bottom:141.669000px;}
|
||
.y1a{bottom:142.940000px;}
|
||
.y9c{bottom:142.995000px;}
|
||
.y31{bottom:143.356000px;}
|
||
.y113{bottom:143.601000px;}
|
||
.y221{bottom:143.633000px;}
|
||
.y19f{bottom:144.116000px;}
|
||
.y155{bottom:145.012000px;}
|
||
.y169{bottom:145.122000px;}
|
||
.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.056000px;}
|
||
.y184{bottom:146.099000px;}
|
||
.y1c9{bottom:146.719000px;}
|
||
.y1e4{bottom:146.831000px;}
|
||
.y50{bottom:146.897000px;}
|
||
.y10e{bottom:146.913000px;}
|
||
.y119{bottom:147.088000px;}
|
||
.y145{bottom:147.575000px;}
|
||
.y1af{bottom:147.709000px;}
|
||
.y20e{bottom:148.320000px;}
|
||
.y12c{bottom:149.022000px;}
|
||
.yfa{bottom:149.540000px;}
|
||
.y1d0{bottom:150.178000px;}
|
||
.y191{bottom:150.225000px;}
|
||
.ye1{bottom:150.731000px;}
|
||
.y1bb{bottom:151.080000px;}
|
||
.ya4{bottom:151.488000px;}
|
||
.yae{bottom:151.515000px;}
|
||
.y1f2{bottom:152.281000px;}
|
||
.y23c{bottom:152.409000px;}
|
||
.y137{bottom:152.519000px;}
|
||
.yec{bottom:153.545000px;}
|
||
.y7{bottom:153.928000px;}
|
||
.y91{bottom:154.477000px;}
|
||
.y220{bottom:154.517000px;}
|
||
.y6d{bottom:155.154000px;}
|
||
.y14e{bottom:155.418000px;}
|
||
.y81{bottom:155.602000px;}
|
||
.y24a{bottom:155.965000px;}
|
||
.y230{bottom:155.996000px;}
|
||
.y168{bottom:156.007000px;}
|
||
.y112{bottom:156.204000px;}
|
||
.y1fe{bottom:156.374000px;}
|
||
.y7a{bottom:156.479000px;}
|
||
.y183{bottom:156.983000px;}
|
||
.y1e3{bottom:157.715000px;}
|
||
.yd6{bottom:157.974000px;}
|
||
.yca{bottom:158.357000px;}
|
||
.y9b{bottom:158.576000px;}
|
||
.y1d9{bottom:158.659000px;}
|
||
.y118{bottom:158.694000px;}
|
||
.y177{bottom:158.765000px;}
|
||
.y20d{bottom:159.205000px;}
|
||
.y61{bottom:159.303000px;}
|
||
.y24{bottom:159.976000px;}
|
||
.ybd{bottom:160.429000px;}
|
||
.y144{bottom:161.323000px;}
|
||
.y1ba{bottom:161.964000px;}
|
||
.y19{bottom:162.143000px;}
|
||
.y19e{bottom:162.215000px;}
|
||
.y190{bottom:162.828000px;}
|
||
.y23b{bottom:163.293000px;}
|
||
.y4f{bottom:163.434000px;}
|
||
.y59{bottom:164.245000px;}
|
||
.y45{bottom:164.634000px;}
|
||
.yf{bottom:164.733000px;}
|
||
.y136{bottom:165.122000px;}
|
||
.y21f{bottom:165.401000px;}
|
||
.y1f1{bottom:166.029000px;}
|
||
.y2{bottom:166.158000px;}
|
||
.y167{bottom:166.891000px;}
|
||
.y1fd{bottom:167.258000px;}
|
||
.y30{bottom:167.293000px;}
|
||
.yf8{bottom:167.572000px;}
|
||
.y111{bottom:167.810000px;}
|
||
.y1c8{bottom:167.853000px;}
|
||
.y182{bottom:167.867000px;}
|
||
.y14d{bottom:169.166000px;}
|
||
.y90{bottom:170.058000px;}
|
||
.y1ae{bottom:170.264000px;}
|
||
.y117{bottom:170.301000px;}
|
||
.ye0{bottom:170.556000px;}
|
||
.yd5{bottom:170.576000px;}
|
||
.y1d8{bottom:171.261000px;}
|
||
.y6c{bottom:171.891000px;}
|
||
.y79{bottom:172.060000px;}
|
||
.y22f{bottom:172.549000px;}
|
||
.y1b9{bottom:172.848000px;}
|
||
.y60{bottom:173.051000px;}
|
||
.yad{bottom:173.283000px;}
|
||
.y23a{bottom:174.177000px;}
|
||
.yf9{bottom:174.746000px;}
|
||
.y143{bottom:175.072000px;}
|
||
.yeb{bottom:175.363000px;}
|
||
.y18f{bottom:175.431000px;}
|
||
.y1cf{bottom:175.533000px;}
|
||
.y23{bottom:175.717000px;}
|
||
.ybc{bottom:176.011000px;}
|
||
.y21e{bottom:176.285000px;}
|
||
.y44{bottom:177.236000px;}
|
||
.y19d{bottom:177.371000px;}
|
||
.y166{bottom:177.775000px;}
|
||
.y1fc{bottom:178.142000px;}
|
||
.y181{bottom:178.751000px;}
|
||
.y80{bottom:179.153000px;}
|
||
.y110{bottom:179.416000px;}
|
||
.y1e2{bottom:179.483000px;}
|
||
.y2f{bottom:179.896000px;}
|
||
.yc9{bottom:180.175000px;}
|
||
.y15d{bottom:181.174000px;}
|
||
.y18{bottom:181.346000px;}
|
||
.yf7{bottom:183.154000px;}
|
||
.yd4{bottom:183.179000px;}
|
||
.y1c7{bottom:183.434000px;}
|
||
.y1b8{bottom:183.733000px;}
|
||
.y1d7{bottom:183.864000px;}
|
||
.ye{bottom:183.936000px;}
|
||
.y176{bottom:184.309000px;}
|
||
.y14c{bottom:184.907000px;}
|
||
.y9a{bottom:186.113000px;}
|
||
.y1{bottom:186.781000px;}
|
||
.y1f0{bottom:187.060000px;}
|
||
.y21d{bottom:187.170000px;}
|
||
.y86{bottom:187.348000px;}
|
||
.y78{bottom:187.642000px;}
|
||
.y18e{bottom:188.033000px;}
|
||
.y58{bottom:188.270000px;}
|
||
.ya3{bottom:188.628000px;}
|
||
.y4e{bottom:188.978000px;}
|
||
.y1fb{bottom:189.026000px;}
|
||
.y180{bottom:189.635000px;}
|
||
.y43{bottom:189.839000px;}
|
||
.y135{bottom:190.327000px;}
|
||
.y1e1{bottom:190.368000px;}
|
||
.y142{bottom:190.813000px;}
|
||
.y5f{bottom:190.835000px;}
|
||
.y10f{bottom:191.023000px;}
|
||
.y22{bottom:191.458000px;}
|
||
.y6b{bottom:191.592000px;}
|
||
.y2e{bottom:192.499000px;}
|
||
.y165{bottom:194.581000px;}
|
||
.y1b7{bottom:194.617000px;}
|
||
.y1ad{bottom:195.620000px;}
|
||
.yc8{bottom:195.757000px;}
|
||
.y104{bottom:195.782000px;}
|
||
.y1ce{bottom:196.569000px;}
|
||
.y19c{bottom:196.574000px;}
|
||
.y15c{bottom:196.755000px;}
|
||
.y21c{bottom:198.054000px;}
|
||
.y1fa{bottom:199.911000px;}
|
||
.y17f{bottom:200.519000px;}
|
||
.y17{bottom:200.549000px;}
|
||
.y99{bottom:201.694000px;}
|
||
.yd{bottom:203.139000px;}
|
||
.y57{bottom:203.851000px;}
|
||
.y4d{bottom:204.560000px;}
|
||
.y1b6{bottom:205.501000px;}
|
||
.y2d{bottom:206.676000px;}
|
||
.y21{bottom:207.174000px;}
|
||
.y10d{bottom:207.917000px;}
|
||
.yd3{bottom:208.384000px;}
|
||
.y1d6{bottom:209.069000px;}
|
||
.y134{bottom:210.153000px;}
|
||
.y164{bottom:210.163000px;}
|
||
.y1f9{bottom:210.795000px;}
|
||
.y17e{bottom:211.404000px;}
|
||
.y21b{bottom:211.871000px;}
|
||
.y19b{bottom:212.155000px;}
|
||
.y1b5{bottom:216.385000px;}
|
||
.y6{bottom:236.149000px;}
|
||
.he{height:22.124998px;}
|
||
.h8{height:23.910300px;}
|
||
.hc{height:24.890726px;}
|
||
.hb{height:26.899200px;}
|
||
.h9{height:27.576477px;}
|
||
.h5{height:29.887800px;}
|
||
.hd{height:30.283662px;}
|
||
.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;}
|
||
._e{margin-left:-4.410111pt;}
|
||
._3{margin-left:-2.424400pt;}
|
||
._c{width:2.424400pt;}
|
||
._0{width:4.098134pt;}
|
||
._f{width:5.934403pt;}
|
||
._24{width:7.396253pt;}
|
||
._2d{width:8.834974pt;}
|
||
._2e{width:14.085209pt;}
|
||
._10{width:15.535180pt;}
|
||
._b{width:17.693578pt;}
|
||
._d{width:20.085253pt;}
|
||
._6{width:21.488959pt;}
|
||
._8{width:23.400311pt;}
|
||
._2a{width:24.761622pt;}
|
||
._11{width:26.115010pt;}
|
||
._a{width:28.080295pt;}
|
||
._1c{width:29.756815pt;}
|
||
._19{width:31.337772pt;}
|
||
._25{width:32.789222pt;}
|
||
._18{width:34.941002pt;}
|
||
._30{width:36.319728pt;}
|
||
._14{width:37.777721pt;}
|
||
._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:56.486057pt;}
|
||
._22{width:62.099849pt;}
|
||
._3e{width:66.948840pt;}
|
||
._1f{width:68.838348pt;}
|
||
._1d{width:74.306536pt;}
|
||
._32{width:76.368485pt;}
|
||
._3a{width:90.292128pt;}
|
||
._29{width:100.105454pt;}
|
||
._4b{width:101.452095pt;}
|
||
._1a{width:125.528320pt;}
|
||
._39{width:135.460278pt;}
|
||
._44{width:151.319850pt;}
|
||
._20{width:181.183297pt;}
|
||
._15{width:199.837630pt;}
|
||
._27{width:201.540038pt;}
|
||
._45{width:225.796580pt;}
|
||
._21{width:247.979747pt;}
|
||
._3c{width:270.409501pt;}
|
||
._3b{width:272.035511pt;}
|
||
._17{width:301.273387pt;}
|
||
._41{width:316.381298pt;}
|
||
._36{width:338.729547pt;}
|
||
._42{width:361.549448pt;}
|
||
._40{width:384.133524pt;}
|
||
._26{width:425.787710pt;}
|
||
._37{width:447.583991pt;}
|
||
._4c{width:478.038975pt;}
|
||
._47{width:498.138885pt;}
|
||
._31{width:627.641600pt;}
|
||
._38{width:700.039925pt;}
|
||
._2c{width:830.216909pt;}
|
||
._35{width:925.861183pt;}
|
||
._2b{width:979.123413pt;}
|
||
._3f{width:993.607925pt;}
|
||
._33{width:1046.959674pt;}
|
||
._34{width:1171.968998pt;}
|
||
._3d{width:1180.895548pt;}
|
||
._23{width:1198.899337pt;}
|
||
._43{width:1282.020386pt;}
|
||
._28{width:1426.781389pt;}
|
||
._4a{width:1526.250132pt;}
|
||
._1b{width:1564.632815pt;}
|
||
._48{width:1600.350802pt;}
|
||
._46{width:1688.391566pt;}
|
||
._12{width:1728.882802pt;}
|
||
._2f{width:1741.364053pt;}
|
||
._49{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;}
|
||
.y20c{bottom:-9.184000pt;}
|
||
.y0{bottom:-0.666667pt;}
|
||
.y22e{bottom:2.852000pt;}
|
||
.y1ac{bottom:3.496000pt;}
|
||
.y175{bottom:4.838667pt;}
|
||
.y20b{bottom:5.328000pt;}
|
||
.y1ef{bottom:6.140000pt;}
|
||
.y6a{bottom:7.554667pt;}
|
||
.ya2{bottom:8.493333pt;}
|
||
.y12b{bottom:8.886667pt;}
|
||
.y254{bottom:8.989333pt;}
|
||
.y21a{bottom:9.102667pt;}
|
||
.y77{bottom:9.340000pt;}
|
||
.y123{bottom:9.550667pt;}
|
||
.y15b{bottom:10.237333pt;}
|
||
.y2c{bottom:11.008000pt;}
|
||
.y1c6{bottom:12.782667pt;}
|
||
.y39{bottom:13.209333pt;}
|
||
.ybb{bottom:13.361333pt;}
|
||
.y10c{bottom:14.333333pt;}
|
||
.y249{bottom:14.553333pt;}
|
||
.y42{bottom:14.892000pt;}
|
||
.yc{bottom:17.357333pt;}
|
||
.y22d{bottom:17.365333pt;}
|
||
.y1ab{bottom:18.009333pt;}
|
||
.y8f{bottom:18.114667pt;}
|
||
.y140{bottom:18.520000pt;}
|
||
.y174{bottom:19.350667pt;}
|
||
.yea{bottom:19.576000pt;}
|
||
.y20a{bottom:19.840000pt;}
|
||
.y18d{bottom:20.652000pt;}
|
||
.y238{bottom:20.856000pt;}
|
||
.yc7{bottom:21.530667pt;}
|
||
.y98{bottom:23.348000pt;}
|
||
.y219{bottom:23.614667pt;}
|
||
.y122{bottom:25.026667pt;}
|
||
.y12a{bottom:25.690667pt;}
|
||
.y253{bottom:25.792000pt;}
|
||
.y2b{bottom:26.482667pt;}
|
||
.y1c5{bottom:27.294667pt;}
|
||
.yba{bottom:27.873333pt;}
|
||
.y248{bottom:29.065333pt;}
|
||
.y252{bottom:29.945333pt;}
|
||
.y10b{bottom:31.137333pt;}
|
||
.y103{bottom:31.776000pt;}
|
||
.y22c{bottom:31.877333pt;}
|
||
.y19a{bottom:32.265333pt;}
|
||
.y1aa{bottom:32.521333pt;}
|
||
.y4c{bottom:32.652000pt;}
|
||
.yac{bottom:33.814667pt;}
|
||
.y173{bottom:33.862667pt;}
|
||
.y38{bottom:33.985333pt;}
|
||
.y209{bottom:34.352000pt;}
|
||
.y18c{bottom:35.164000pt;}
|
||
.y13f{bottom:35.322667pt;}
|
||
.y17d{bottom:35.534667pt;}
|
||
.y41{bottom:35.668000pt;}
|
||
.yc6{bottom:36.042667pt;}
|
||
.y8e{bottom:36.445333pt;}
|
||
.y133{bottom:36.717333pt;}
|
||
.y218{bottom:38.126667pt;}
|
||
.ya1{bottom:38.962667pt;}
|
||
.y1eb{bottom:39.890667pt;}
|
||
.y69{bottom:39.996000pt;}
|
||
.ye9{bottom:40.350667pt;}
|
||
.y16{bottom:40.417333pt;}
|
||
.y121{bottom:40.501333pt;}
|
||
.y129{bottom:41.165333pt;}
|
||
.y1c4{bottom:41.806667pt;}
|
||
.yb9{bottom:42.386667pt;}
|
||
.ydf{bottom:42.596000pt;}
|
||
.y76{bottom:42.917333pt;}
|
||
.y237{bottom:42.960000pt;}
|
||
.y2a{bottom:43.286667pt;}
|
||
.y247{bottom:43.577333pt;}
|
||
.y56{bottom:44.752000pt;}
|
||
.y22b{bottom:46.389333pt;}
|
||
.y1a9{bottom:47.033333pt;}
|
||
.y1f{bottom:47.304000pt;}
|
||
.y1f8{bottom:47.573333pt;}
|
||
.y10a{bottom:47.941333pt;}
|
||
.y251{bottom:48.277333pt;}
|
||
.y172{bottom:48.374667pt;}
|
||
.y208{bottom:48.865333pt;}
|
||
.y199{bottom:49.068000pt;}
|
||
.y18b{bottom:49.677333pt;}
|
||
.yf6{bottom:49.742667pt;}
|
||
.yc5{bottom:50.556000pt;}
|
||
.yab{bottom:50.618667pt;}
|
||
.y13e{bottom:52.126667pt;}
|
||
.y217{bottom:52.638667pt;}
|
||
.y97{bottom:53.421333pt;}
|
||
.y4b{bottom:53.428000pt;}
|
||
.y132{bottom:53.521333pt;}
|
||
.y7f{bottom:54.197333pt;}
|
||
.y8d{bottom:54.776000pt;}
|
||
.y120{bottom:55.977333pt;}
|
||
.y17c{bottom:56.309333pt;}
|
||
.y1c3{bottom:56.318667pt;}
|
||
.yb8{bottom:56.898667pt;}
|
||
.y11b{bottom:57.073333pt;}
|
||
.y75{bottom:57.429333pt;}
|
||
.y128{bottom:57.969333pt;}
|
||
.y163{bottom:57.986667pt;}
|
||
.y246{bottom:58.090667pt;}
|
||
.y29{bottom:58.761333pt;}
|
||
.yde{bottom:59.400000pt;}
|
||
.y1b4{bottom:59.501333pt;}
|
||
.y1e0{bottom:60.313333pt;}
|
||
.y22a{bottom:60.901333pt;}
|
||
.ye8{bottom:61.126667pt;}
|
||
.y1a8{bottom:61.545333pt;}
|
||
.y171{bottom:62.886667pt;}
|
||
.y14b{bottom:63.081333pt;}
|
||
.y207{bottom:63.377333pt;}
|
||
.y68{bottom:63.708000pt;}
|
||
.y1ee{bottom:64.189333pt;}
|
||
.y5e{bottom:64.293333pt;}
|
||
.y109{bottom:64.744000pt;}
|
||
.y102{bottom:64.958667pt;}
|
||
.y236{bottom:65.064000pt;}
|
||
.yc4{bottom:65.068000pt;}
|
||
.y198{bottom:65.872000pt;}
|
||
.y15{bottom:66.021333pt;}
|
||
.yf5{bottom:66.545333pt;}
|
||
.y1d5{bottom:66.609333pt;}
|
||
.yaa{bottom:67.422667pt;}
|
||
.y37{bottom:67.565333pt;}
|
||
.y250{bottom:68.484000pt;}
|
||
.y13d{bottom:68.930667pt;}
|
||
.y131{bottom:70.325333pt;}
|
||
.y1c2{bottom:70.830667pt;}
|
||
.yb7{bottom:71.410667pt;}
|
||
.y11f{bottom:71.452000pt;}
|
||
.y74{bottom:71.941333pt;}
|
||
.y5{bottom:71.944000pt;}
|
||
.y245{bottom:72.602667pt;}
|
||
.y1e{bottom:72.908000pt;}
|
||
.y127{bottom:73.444000pt;}
|
||
.y154{bottom:73.538667pt;}
|
||
.y15a{bottom:73.598667pt;}
|
||
.y96{bottom:74.197333pt;}
|
||
.y4a{bottom:74.202667pt;}
|
||
.y229{bottom:75.413333pt;}
|
||
.y1f7{bottom:75.614667pt;}
|
||
.y1ea{bottom:75.630667pt;}
|
||
.ya0{bottom:75.677333pt;}
|
||
.y8c{bottom:75.730667pt;}
|
||
.y1a7{bottom:76.057333pt;}
|
||
.ydd{bottom:76.202667pt;}
|
||
.yd2{bottom:76.714667pt;}
|
||
.y1df{bottom:77.116000pt;}
|
||
.y206{bottom:77.889333pt;}
|
||
.y18a{bottom:78.701333pt;}
|
||
.y162{bottom:78.762667pt;}
|
||
.y7e{bottom:78.958667pt;}
|
||
.yc3{bottom:79.580000pt;}
|
||
.y1b3{bottom:80.276000pt;}
|
||
.y67{bottom:80.512000pt;}
|
||
.y14a{bottom:81.413333pt;}
|
||
.y108{bottom:81.548000pt;}
|
||
.y216{bottom:81.662667pt;}
|
||
.y40{bottom:81.681333pt;}
|
||
.y101{bottom:81.762667pt;}
|
||
.y85{bottom:81.860000pt;}
|
||
.yf4{bottom:83.349333pt;}
|
||
.ya9{bottom:84.226667pt;}
|
||
.y36{bottom:84.369333pt;}
|
||
.ye7{bottom:84.558667pt;}
|
||
.y55{bottom:84.574667pt;}
|
||
.y13c{bottom:85.733333pt;}
|
||
.y235{bottom:85.838667pt;}
|
||
.yb6{bottom:85.922667pt;}
|
||
.y73{bottom:86.453333pt;}
|
||
.y17b{bottom:86.878667pt;}
|
||
.y244{bottom:87.114667pt;}
|
||
.y130{bottom:87.128000pt;}
|
||
.y5d{bottom:88.072000pt;}
|
||
.y24f{bottom:88.110667pt;}
|
||
.y11e{bottom:88.256000pt;}
|
||
.y228{bottom:89.925333pt;}
|
||
.y126{bottom:90.248000pt;}
|
||
.y1a6{bottom:90.569333pt;}
|
||
.y14{bottom:91.625333pt;}
|
||
.y153{bottom:91.870667pt;}
|
||
.y170{bottom:91.912000pt;}
|
||
.y205{bottom:92.401333pt;}
|
||
.ydc{bottom:93.006667pt;}
|
||
.y189{bottom:93.213333pt;}
|
||
.yd1{bottom:93.517333pt;}
|
||
.y1de{bottom:93.920000pt;}
|
||
.yc2{bottom:94.092000pt;}
|
||
.y4{bottom:94.177333pt;}
|
||
.y159{bottom:94.374667pt;}
|
||
.y1cd{bottom:94.804000pt;}
|
||
.y215{bottom:96.176000pt;}
|
||
.y9f{bottom:96.453333pt;}
|
||
.y1d4{bottom:96.682667pt;}
|
||
.y66{bottom:97.316000pt;}
|
||
.y3f{bottom:98.485333pt;}
|
||
.y1d{bottom:98.512000pt;}
|
||
.y100{bottom:98.565333pt;}
|
||
.y197{bottom:99.478667pt;}
|
||
.y149{bottom:99.744000pt;}
|
||
.y1c1{bottom:99.854667pt;}
|
||
.yf3{bottom:100.153333pt;}
|
||
.yb5{bottom:100.434667pt;}
|
||
.y72{bottom:100.965333pt;}
|
||
.ya8{bottom:101.029333pt;}
|
||
.y243{bottom:101.626667pt;}
|
||
.yb{bottom:102.822667pt;}
|
||
.y1f6{bottom:103.656000pt;}
|
||
.y11d{bottom:103.730667pt;}
|
||
.yf2{bottom:103.905333pt;}
|
||
.y12f{bottom:103.932000pt;}
|
||
.y35{bottom:104.161333pt;}
|
||
.y95{bottom:104.270667pt;}
|
||
.y227{bottom:104.437333pt;}
|
||
.y1a5{bottom:105.081333pt;}
|
||
.y125{bottom:105.724000pt;}
|
||
.y16f{bottom:106.424000pt;}
|
||
.y54{bottom:106.624000pt;}
|
||
.y204{bottom:106.913333pt;}
|
||
.y188{bottom:107.725333pt;}
|
||
.y234{bottom:107.909333pt;}
|
||
.y28{bottom:108.374667pt;}
|
||
.yc1{bottom:108.604000pt;}
|
||
.y1e9{bottom:108.701333pt;}
|
||
.ydb{bottom:109.810667pt;}
|
||
.y152{bottom:110.201333pt;}
|
||
.yd0{bottom:110.321333pt;}
|
||
.y214{bottom:110.688000pt;}
|
||
.y1dd{bottom:110.724000pt;}
|
||
.y7d{bottom:110.992000pt;}
|
||
.y1cc{bottom:111.608000pt;}
|
||
.y8b{bottom:111.749333pt;}
|
||
.y84{bottom:113.262667pt;}
|
||
.y65{bottom:114.118667pt;}
|
||
.y1b2{bottom:114.165333pt;}
|
||
.y1c0{bottom:114.366667pt;}
|
||
.yb4{bottom:114.946667pt;}
|
||
.y107{bottom:115.156000pt;}
|
||
.y3e{bottom:115.289333pt;}
|
||
.yff{bottom:115.369333pt;}
|
||
.y71{bottom:115.478667pt;}
|
||
.y242{bottom:116.138667pt;}
|
||
.y196{bottom:116.282667pt;}
|
||
.y24e{bottom:116.822667pt;}
|
||
.ye6{bottom:116.956000pt;}
|
||
.y13{bottom:117.228000pt;}
|
||
.y1d3{bottom:117.457333pt;}
|
||
.ya7{bottom:117.833333pt;}
|
||
.y148{bottom:118.076000pt;}
|
||
.y226{bottom:118.949333pt;}
|
||
.y13b{bottom:119.341333pt;}
|
||
.y1a4{bottom:119.593333pt;}
|
||
.y49{bottom:120.217333pt;}
|
||
.y11c{bottom:120.534667pt;}
|
||
.yf1{bottom:120.709333pt;}
|
||
.y16e{bottom:120.936000pt;}
|
||
.y17a{bottom:120.937333pt;}
|
||
.y124{bottom:121.198667pt;}
|
||
.y203{bottom:121.425333pt;}
|
||
.y1ed{bottom:122.237333pt;}
|
||
.y1e8{bottom:123.213333pt;}
|
||
.y1c{bottom:124.114667pt;}
|
||
.y5c{bottom:124.786667pt;}
|
||
.y94{bottom:125.046667pt;}
|
||
.y213{bottom:125.200000pt;}
|
||
.y161{bottom:126.104000pt;}
|
||
.y160{bottom:126.105333pt;}
|
||
.yda{bottom:126.613333pt;}
|
||
.ycf{bottom:127.125333pt;}
|
||
.ya{bottom:128.426667pt;}
|
||
.y1bf{bottom:128.880000pt;}
|
||
.y27{bottom:129.362667pt;}
|
||
.yb3{bottom:129.458667pt;}
|
||
.y158{bottom:129.728000pt;}
|
||
.y70{bottom:129.990667pt;}
|
||
.y1f5{bottom:130.474667pt;}
|
||
.y241{bottom:130.650667pt;}
|
||
.y64{bottom:130.922667pt;}
|
||
.y151{bottom:131.189333pt;}
|
||
.y106{bottom:131.958667pt;}
|
||
.y3d{bottom:132.092000pt;}
|
||
.yfe{bottom:132.173333pt;}
|
||
.y89{bottom:132.524000pt;}
|
||
.y8a{bottom:132.525333pt;}
|
||
.y195{bottom:133.086667pt;}
|
||
.y9e{bottom:133.169333pt;}
|
||
.y225{bottom:133.462667pt;}
|
||
.ye5{bottom:133.760000pt;}
|
||
.y1a3{bottom:134.106667pt;}
|
||
.ya6{bottom:134.637333pt;}
|
||
.y16d{bottom:135.448000pt;}
|
||
.y202{bottom:135.937333pt;}
|
||
.y233{bottom:135.957333pt;}
|
||
.y13a{bottom:136.144000pt;}
|
||
.y147{bottom:136.406667pt;}
|
||
.y187{bottom:136.749333pt;}
|
||
.y48{bottom:137.020000pt;}
|
||
.yc0{bottom:137.034667pt;}
|
||
.yf0{bottom:137.512000pt;}
|
||
.y12e{bottom:137.538667pt;}
|
||
.y1e7{bottom:137.726667pt;}
|
||
.y34{bottom:137.741333pt;}
|
||
.y24d{bottom:138.222667pt;}
|
||
.y212{bottom:139.712000pt;}
|
||
.y116{bottom:142.385333pt;}
|
||
.y12{bottom:142.832000pt;}
|
||
.y1be{bottom:143.392000pt;}
|
||
.yd9{bottom:143.417333pt;}
|
||
.yce{bottom:143.928000pt;}
|
||
.yb2{bottom:143.972000pt;}
|
||
.y1b1{bottom:144.240000pt;}
|
||
.y1dc{bottom:144.330667pt;}
|
||
.y83{bottom:144.664000pt;}
|
||
.y240{bottom:145.162667pt;}
|
||
.y1cb{bottom:145.214667pt;}
|
||
.y53{bottom:145.452000pt;}
|
||
.y224{bottom:147.974667pt;}
|
||
.y1a2{bottom:148.618667pt;}
|
||
.y3c{bottom:148.896000pt;}
|
||
.yfd{bottom:148.976000pt;}
|
||
.y1d2{bottom:149.388000pt;}
|
||
.y1b{bottom:149.718667pt;}
|
||
.y194{bottom:149.889333pt;}
|
||
.y16c{bottom:149.960000pt;}
|
||
.y26{bottom:150.350667pt;}
|
||
.y201{bottom:150.450667pt;}
|
||
.y157{bottom:150.504000pt;}
|
||
.ye4{bottom:150.564000pt;}
|
||
.y1ec{bottom:151.261333pt;}
|
||
.y63{bottom:152.044000pt;}
|
||
.y1e6{bottom:152.238667pt;}
|
||
.y47{bottom:153.824000pt;}
|
||
.y9d{bottom:153.944000pt;}
|
||
.y9{bottom:154.030667pt;}
|
||
.y211{bottom:154.224000pt;}
|
||
.yef{bottom:154.316000pt;}
|
||
.y33{bottom:154.545333pt;}
|
||
.y179{bottom:154.996000pt;}
|
||
.y93{bottom:155.120000pt;}
|
||
.y146{bottom:157.394667pt;}
|
||
.y24c{bottom:157.849333pt;}
|
||
.yb1{bottom:158.484000pt;}
|
||
.y115{bottom:159.189333pt;}
|
||
.y23f{bottom:159.674667pt;}
|
||
.y1f4{bottom:159.737333pt;}
|
||
.y7c{bottom:159.814667pt;}
|
||
.y105{bottom:160.221333pt;}
|
||
.y88{bottom:160.573333pt;}
|
||
.ycd{bottom:160.732000pt;}
|
||
.y1db{bottom:161.134667pt;}
|
||
.y5b{bottom:161.502667pt;}
|
||
.y1ca{bottom:162.018667pt;}
|
||
.y6f{bottom:162.240000pt;}
|
||
.y52{bottom:162.256000pt;}
|
||
.y223{bottom:162.486667pt;}
|
||
.y1a1{bottom:163.130667pt;}
|
||
.y16b{bottom:164.472000pt;}
|
||
.y232{bottom:164.669333pt;}
|
||
.y239{bottom:164.962667pt;}
|
||
.y1b0{bottom:165.014667pt;}
|
||
.ybf{bottom:165.082667pt;}
|
||
.y3b{bottom:165.700000pt;}
|
||
.y186{bottom:165.774667pt;}
|
||
.yfc{bottom:165.780000pt;}
|
||
.y193{bottom:166.693333pt;}
|
||
.ye3{bottom:167.366667pt;}
|
||
.ya5{bottom:168.244000pt;}
|
||
.y11{bottom:168.436000pt;}
|
||
.y210{bottom:168.736000pt;}
|
||
.y139{bottom:169.752000pt;}
|
||
.y150{bottom:170.561333pt;}
|
||
.y3{bottom:170.710667pt;}
|
||
.yee{bottom:171.120000pt;}
|
||
.y156{bottom:171.278667pt;}
|
||
.y25{bottom:171.305333pt;}
|
||
.y32{bottom:171.349333pt;}
|
||
.y1bd{bottom:172.416000pt;}
|
||
.yb0{bottom:172.996000pt;}
|
||
.y15f{bottom:173.446667pt;}
|
||
.y23e{bottom:174.188000pt;}
|
||
.y114{bottom:174.664000pt;}
|
||
.y178{bottom:175.770667pt;}
|
||
.y92{bottom:175.894667pt;}
|
||
.y82{bottom:176.066667pt;}
|
||
.y222{bottom:176.998667pt;}
|
||
.yd8{bottom:177.024000pt;}
|
||
.ycc{bottom:177.536000pt;}
|
||
.y1a0{bottom:177.642667pt;}
|
||
.y12d{bottom:177.921333pt;}
|
||
.y1f3{bottom:178.068000pt;}
|
||
.y16a{bottom:178.984000pt;}
|
||
.y51{bottom:179.058667pt;}
|
||
.y46{bottom:179.129333pt;}
|
||
.y1d1{bottom:179.461333pt;}
|
||
.y200{bottom:179.474667pt;}
|
||
.y8{bottom:179.633333pt;}
|
||
.y185{bottom:180.286667pt;}
|
||
.y7b{bottom:180.590667pt;}
|
||
.y11a{bottom:180.641333pt;}
|
||
.y1e5{bottom:181.262667pt;}
|
||
.y87{bottom:181.348000pt;}
|
||
.y5a{bottom:182.277333pt;}
|
||
.yfb{bottom:182.584000pt;}
|
||
.y20f{bottom:183.248000pt;}
|
||
.y192{bottom:183.497333pt;}
|
||
.ye2{bottom:184.170667pt;}
|
||
.y20{bottom:184.330667pt;}
|
||
.y6e{bottom:184.556000pt;}
|
||
.y3a{bottom:185.492000pt;}
|
||
.ybe{bottom:185.857333pt;}
|
||
.y138{bottom:186.554667pt;}
|
||
.y1bc{bottom:186.928000pt;}
|
||
.y24b{bottom:187.178667pt;}
|
||
.y231{bottom:187.218667pt;}
|
||
.yaf{bottom:187.508000pt;}
|
||
.yed{bottom:187.922667pt;}
|
||
.y23d{bottom:188.700000pt;}
|
||
.y14f{bottom:188.892000pt;}
|
||
.y1a{bottom:190.586667pt;}
|
||
.y9c{bottom:190.660000pt;}
|
||
.y31{bottom:191.141333pt;}
|
||
.y113{bottom:191.468000pt;}
|
||
.y221{bottom:191.510667pt;}
|
||
.y19f{bottom:192.154667pt;}
|
||
.y155{bottom:193.349333pt;}
|
||
.y169{bottom:193.496000pt;}
|
||
.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.741333pt;}
|
||
.y184{bottom:194.798667pt;}
|
||
.y1c9{bottom:195.625333pt;}
|
||
.y1e4{bottom:195.774667pt;}
|
||
.y50{bottom:195.862667pt;}
|
||
.y10e{bottom:195.884000pt;}
|
||
.y119{bottom:196.117333pt;}
|
||
.y145{bottom:196.766667pt;}
|
||
.y1af{bottom:196.945333pt;}
|
||
.y20e{bottom:197.760000pt;}
|
||
.y12c{bottom:198.696000pt;}
|
||
.yfa{bottom:199.386667pt;}
|
||
.y1d0{bottom:200.237333pt;}
|
||
.y191{bottom:200.300000pt;}
|
||
.ye1{bottom:200.974667pt;}
|
||
.y1bb{bottom:201.440000pt;}
|
||
.ya4{bottom:201.984000pt;}
|
||
.yae{bottom:202.020000pt;}
|
||
.y1f2{bottom:203.041333pt;}
|
||
.y23c{bottom:203.212000pt;}
|
||
.y137{bottom:203.358667pt;}
|
||
.yec{bottom:204.726667pt;}
|
||
.y7{bottom:205.237333pt;}
|
||
.y91{bottom:205.969333pt;}
|
||
.y220{bottom:206.022667pt;}
|
||
.y6d{bottom:206.872000pt;}
|
||
.y14e{bottom:207.224000pt;}
|
||
.y81{bottom:207.469333pt;}
|
||
.y24a{bottom:207.953333pt;}
|
||
.y230{bottom:207.994667pt;}
|
||
.y168{bottom:208.009333pt;}
|
||
.y112{bottom:208.272000pt;}
|
||
.y1fe{bottom:208.498667pt;}
|
||
.y7a{bottom:208.638667pt;}
|
||
.y183{bottom:209.310667pt;}
|
||
.y1e3{bottom:210.286667pt;}
|
||
.yd6{bottom:210.632000pt;}
|
||
.yca{bottom:211.142667pt;}
|
||
.y9b{bottom:211.434667pt;}
|
||
.y1d9{bottom:211.545333pt;}
|
||
.y118{bottom:211.592000pt;}
|
||
.y177{bottom:211.686667pt;}
|
||
.y20d{bottom:212.273333pt;}
|
||
.y61{bottom:212.404000pt;}
|
||
.y24{bottom:213.301333pt;}
|
||
.ybd{bottom:213.905333pt;}
|
||
.y144{bottom:215.097333pt;}
|
||
.y1ba{bottom:215.952000pt;}
|
||
.y19{bottom:216.190667pt;}
|
||
.y19e{bottom:216.286667pt;}
|
||
.y190{bottom:217.104000pt;}
|
||
.y23b{bottom:217.724000pt;}
|
||
.y4f{bottom:217.912000pt;}
|
||
.y59{bottom:218.993333pt;}
|
||
.y45{bottom:219.512000pt;}
|
||
.yf{bottom:219.644000pt;}
|
||
.y136{bottom:220.162667pt;}
|
||
.y21f{bottom:220.534667pt;}
|
||
.y1f1{bottom:221.372000pt;}
|
||
.y2{bottom:221.544000pt;}
|
||
.y167{bottom:222.521333pt;}
|
||
.y1fd{bottom:223.010667pt;}
|
||
.y30{bottom:223.057333pt;}
|
||
.yf8{bottom:223.429333pt;}
|
||
.y111{bottom:223.746667pt;}
|
||
.y1c8{bottom:223.804000pt;}
|
||
.y182{bottom:223.822667pt;}
|
||
.y14d{bottom:225.554667pt;}
|
||
.y90{bottom:226.744000pt;}
|
||
.y1ae{bottom:227.018667pt;}
|
||
.y117{bottom:227.068000pt;}
|
||
.ye0{bottom:227.408000pt;}
|
||
.yd5{bottom:227.434667pt;}
|
||
.y1d8{bottom:228.348000pt;}
|
||
.y6c{bottom:229.188000pt;}
|
||
.y79{bottom:229.413333pt;}
|
||
.y22f{bottom:230.065333pt;}
|
||
.y1b9{bottom:230.464000pt;}
|
||
.y60{bottom:230.734667pt;}
|
||
.yad{bottom:231.044000pt;}
|
||
.y23a{bottom:232.236000pt;}
|
||
.yf9{bottom:232.994667pt;}
|
||
.y143{bottom:233.429333pt;}
|
||
.yeb{bottom:233.817333pt;}
|
||
.y18f{bottom:233.908000pt;}
|
||
.y1cf{bottom:234.044000pt;}
|
||
.y23{bottom:234.289333pt;}
|
||
.ybc{bottom:234.681333pt;}
|
||
.y21e{bottom:235.046667pt;}
|
||
.y44{bottom:236.314667pt;}
|
||
.y19d{bottom:236.494667pt;}
|
||
.y166{bottom:237.033333pt;}
|
||
.y1fc{bottom:237.522667pt;}
|
||
.y181{bottom:238.334667pt;}
|
||
.y80{bottom:238.870667pt;}
|
||
.y110{bottom:239.221333pt;}
|
||
.y1e2{bottom:239.310667pt;}
|
||
.y2f{bottom:239.861333pt;}
|
||
.yc9{bottom:240.233333pt;}
|
||
.y15d{bottom:241.565333pt;}
|
||
.y18{bottom:241.794667pt;}
|
||
.yf7{bottom:244.205333pt;}
|
||
.yd4{bottom:244.238667pt;}
|
||
.y1c7{bottom:244.578667pt;}
|
||
.y1b8{bottom:244.977333pt;}
|
||
.y1d7{bottom:245.152000pt;}
|
||
.ye{bottom:245.248000pt;}
|
||
.y176{bottom:245.745333pt;}
|
||
.y14c{bottom:246.542667pt;}
|
||
.y9a{bottom:248.150667pt;}
|
||
.y1{bottom:249.041333pt;}
|
||
.y1f0{bottom:249.413333pt;}
|
||
.y21d{bottom:249.560000pt;}
|
||
.y86{bottom:249.797333pt;}
|
||
.y78{bottom:250.189333pt;}
|
||
.y18e{bottom:250.710667pt;}
|
||
.y58{bottom:251.026667pt;}
|
||
.ya3{bottom:251.504000pt;}
|
||
.y4e{bottom:251.970667pt;}
|
||
.y1fb{bottom:252.034667pt;}
|
||
.y180{bottom:252.846667pt;}
|
||
.y43{bottom:253.118667pt;}
|
||
.y135{bottom:253.769333pt;}
|
||
.y1e1{bottom:253.824000pt;}
|
||
.y142{bottom:254.417333pt;}
|
||
.y5f{bottom:254.446667pt;}
|
||
.y10f{bottom:254.697333pt;}
|
||
.y22{bottom:255.277333pt;}
|
||
.y6b{bottom:255.456000pt;}
|
||
.y2e{bottom:256.665333pt;}
|
||
.y165{bottom:259.441333pt;}
|
||
.y1b7{bottom:259.489333pt;}
|
||
.y1ad{bottom:260.826667pt;}
|
||
.yc8{bottom:261.009333pt;}
|
||
.y104{bottom:261.042667pt;}
|
||
.y1ce{bottom:262.092000pt;}
|
||
.y19c{bottom:262.098667pt;}
|
||
.y15c{bottom:262.340000pt;}
|
||
.y21c{bottom:264.072000pt;}
|
||
.y1fa{bottom:266.548000pt;}
|
||
.y17f{bottom:267.358667pt;}
|
||
.y17{bottom:267.398667pt;}
|
||
.y99{bottom:268.925333pt;}
|
||
.yd{bottom:270.852000pt;}
|
||
.y57{bottom:271.801333pt;}
|
||
.y4d{bottom:272.746667pt;}
|
||
.y1b6{bottom:274.001333pt;}
|
||
.y2d{bottom:275.568000pt;}
|
||
.y21{bottom:276.232000pt;}
|
||
.y10d{bottom:277.222667pt;}
|
||
.yd3{bottom:277.845333pt;}
|
||
.y1d6{bottom:278.758667pt;}
|
||
.y134{bottom:280.204000pt;}
|
||
.y164{bottom:280.217333pt;}
|
||
.y1f9{bottom:281.060000pt;}
|
||
.y17e{bottom:281.872000pt;}
|
||
.y21b{bottom:282.494667pt;}
|
||
.y19b{bottom:282.873333pt;}
|
||
.y1b5{bottom:288.513333pt;}
|
||
.y6{bottom:314.865333pt;}
|
||
.he{height:29.499997pt;}
|
||
.h8{height:31.880400pt;}
|
||
.hc{height:33.187635pt;}
|
||
.hb{height:35.865600pt;}
|
||
.h9{height:36.768636pt;}
|
||
.h5{height:39.850400pt;}
|
||
.hd{height:40.378215pt;}
|
||
.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,224.887,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.47,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">19.<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">2024-03-29</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.327000px;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<span class="_ _d"> </span>ptr</div><div class="t m0 x6 h9 y19 ff6 fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _d"> </span>ptr</div><div class="t m0 x6 h9 y1a ff6 fs3 fc0 sc0 ls0 ws0">std::weak<span class="_ _d"> </span>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="_ _e"></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:78.983000px;height:10.327000px;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:78.983000px;height:10.327000px;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:68.523000px;height:10.328000px;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="_ _e"></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="_ _d"> </span>b<span class="_ _c"></span>ehavior<span class="_ _b"> </span><span class="ff4">means<span class="_ _d"> </span>that<span class="_ _d"> </span>the<span class="_ _d"> </span>semantic<span class="_ _b"> </span>of<span class="_ _d"> </span>certain<span class="_ _d"> </span>operations<span class="_ _d"> </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="_ _d"> </span>behind<span class="_ _d"> </span>undefined<span class="_ _d"> </span>behavior:</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="_ _d"> </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<span class="_ _6"> </span>cast<span class="_ _14"> </span><span class="ff1">applied<span class="_ _d"> </span>to<span class="_ _6"> </span>a<span class="_ _14"> </span></span>const<span class="_ _14"> </span><span class="ff1">va<span class="_ _3"></span>riables</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="_ _d"> </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="_ _d"> </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="_ _d"> </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="_ _a"> </span></span>the<span class="_ _d"> </span>code<span class="_ _d"> </span>could<span class="_ _d"> </span>crash<span class="_ _d"> </span>o<span class="_ _3"></span>r<span class="_ _d"> </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="_ _d"> </span>the<span class="_ _d"> </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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoklEQVR42u3YsU0DQRCG0Vt0I6IVNSAiV4AQMRKd0QTlELgId0BkbeRJjowQXWDZc/i9Cvb+Sz5Ne3p+nQAAoIzD/uvOCgAAVCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAD41TLTCgAA1BERLqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAAuaDbBemMMIwAAG9V739BrXVIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEA4ExaZloBAIA6IsIlFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDADZlNsN4YwwgAwEb13jf0WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQCglpaZVgAAoI6IcEkFAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAwL8xmwBYY4xxa5/ce/ffAa7FJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAXFfLTCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIAzm48fj1b42/fbpxEAAC5m9/Le2sP9cjxN07IsBgEAoIQfS+El/qqVRycAAAAASUVORK5CYII="/><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="_ _d"> </span>violation</span></div><div class="t m0 xc ha y42 ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Different<span class="_ _d"> </span>definitions<span class="_ _d"> </span>of<span class="_ _18"> </span><span class="ffe">inline<span class="_ _18"> </span></span>functions<span class="_ _d"> </span>in<span class="_ _d"> </span>distinct<span class="_ _b"> </span>translation<span class="_ _d"> </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 ffa fs7 fc0 sc0 ls0 ws0">iint<span class="_ _11"> </span>n<span class="_ _8"> </span><span class="fc6">=<span class="_ _11"> </span>1</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="_ _d"> </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="_ _a"> </span>Division<span class="_ _d"> </span>by<span class="_ _b"> </span>zero<span class="_ _18"> </span><span class="ffe">0<span class="_ _19"> </span>/<span class="_ _19"> </span>0<span class="_ _10"> </span></span>,<span class="_ _18"> </span><span class="ffe">fp<span class="_ _6"> </span>value<span class="_ _19"> </span>/<span class="_ _19"> </span>0.0</span></div><div class="t m0 xc ha y4c ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>Floating-p<span class="_ _c"></span>oint<span class="_ _d"> </span>to<span class="_ _b"> </span>integer<span class="_ _d"> </span>conversion</div><div class="t m0 x7 h8 yc ff5 fs5 fc0 sc0 ls0 ws0">7/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfa" class="pf w0 h0" data-page-no="a"><div class="pc pca w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Platfo<span class="_ _3"></span>rm<span class="_ _8"> </span>Sp<span class="_ _c"></span>ecific<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x9 ha y4d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Memory<span class="_ _d"> </span>access-related<span class="ff4">:<span class="_ _5"> </span><span class="ffe">NULL<span class="_ _18"> </span><span class="ff8">p<span class="_ _c"></span>ointer<span class="_ _d"> </span>dereferencing<span class="_ _0"></span></span></span>:<span class="_ _11"> </span>the<span class="_ _18"> </span><span class="ffe">0x0<span class="_ _14"> </span></span>address<span class="_ _b"> </span>is<span class="_ _d"> </span>valid</span></span></div><div class="t m0 x6 ha y4e ff4 fs6 fc0 sc0 ls0 ws0">in<span class="_ _d"> </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="_ _1a"> </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="_ _e"></span>yp<span class="_ _c"></span>e<span class="_ _d"> </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="_ _1b"> </span>1/2</div><div class="t m0 x1 ha y57 ff4 fs6 fc0 sc0 ls0 ws0">Legal<span class="_ _d"> </span>operations<span class="_ _d"> </span>but<span class="_ _d"> </span>the<span class="_ _b"> </span>C++<span class="_ _d"> </span>standard<span class="_ _b"> </span>do<span class="_ _c"></span>es<span class="_ _d"> </span>not<span class="_ _b"> </span>do<span class="_ _c"></span>cument<span class="_ _d"> </span>the<span class="_ _b"> </span>result<span class="_ _d"> </span><span class="fff">→<span class="_ _d"> </span></span>different</div><div class="t m0 x1 ha y58 ff4 fs6 fc0 sc0 ls0 ws0">compilers/platfo<span class="_ _3"></span>rms<span class="_ _d"> </span>can<span class="_ _d"> </span>sho<span class="_ _3"></span>w<span class="_ _d"> </span>different<span class="_ _b"> </span>b<span class="_ _c"></span>ehavior</div><div class="t m0 x9 ha y59 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Signed<span class="_ _d"> </span>shift<span class="_ _18"> </span><span class="ffe">-2<span class="_ _19"> </span><span class="fff">≪<span class="_ _19"> </span></span>x<span class="_ _18"> </span></span>(before<span class="_ _b"> </span><span class="fc9">C++20</span>),<span class="_ _d"> </span>large-than-t<span class="_ _3"></span>ype<span class="_ _d"> </span>shift<span class="_ _18"> </span><span class="ffe">3u<span class="_ _19"> </span><span class="fff">≪<span class="_ _19"> </span></span>32<span class="_ _10"> </span></span>,<span class="_ _d"> </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="_ _d"> </span>na<span class="_ _3"></span>rrowing<span class="_ _b"> </span>conversion<span class="_ _d"> </span>betw<span class="_ _3"></span>een<span class="_ _d"> </span>floating-p<span class="_ _c"></span>oint<span class="_ _b"> </span>types</span></div><div class="t m0 xa hd y5b ffe fs6 fc0 sc0 ls0 ws0">double<span class="_ _19"> </span><span class="fff">→<span class="_ _1c"> </span></span>float</div><div class="t m0 x9 ha y5c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Arithmetic<span class="_ _d"> </span>op<span class="_ _c"></span>eration<span class="_ _b"> </span>ordering<span class="_ _18"> </span><span class="ffe">f(i++,<span class="_ _1c"> </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="_ _d"> </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="_ _1b"> </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="_ _d"> </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="_ _19"> </span></span>is<span class="_ _18"> </span><span class="ffe">INT<span class="_ _d"> </span>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="_ _19"> </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="_ _e"></span>rivial<span class="_ _d"> </span>infinite<span class="_ _d"> </span>loops,<span class="_ _d"> </span>until<span class="_ _d"> </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="_ _a"> </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="_ _d"> </span>a<span class="_ _3"></span>re<span class="_ _d"> </span>several<span class="_ _b"> </span>wa<span class="_ _3"></span>ys<span class="_ _d"> </span>to<span class="_ _b"> </span>detect<span class="_ _d"> </span>or<span class="_ _b"> </span>prevent<span class="_ _b"> </span>undefined<span class="_ _d"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _d"> </span>at<span class="_ _b"> </span>compile-time<span class="_ _d"> </span>and<span class="_ _d"> </span>at</div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">run-time:</div><div class="t m0 x9 h5 y6c 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="_ _a"> </span>and<span class="_ _a"> </span>Testing:<span class="_ _2"> </span>Hardening<span class="_ _a"> </span>Techniques</span></span></div><div class="t m0 x9 h5 y6d 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="_ _a"> </span>and<span class="_ _a"> </span>Testing:<span class="_ _1e"> </span>Sanitizer</span></span></div><div class="t m0 x9 h5 y6e 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 y6f 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>doesn’t<span class="_ _b"> </span>allow<span class="_ _b"> </span>undefined<span class="_ _b"> </span>behavior</span></span></div><div class="t m0 xf he y70 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 he y71 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 he y72 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 he y73 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 he y74 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 he y75 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 he y76 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 y77 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="_ _e"></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 y78 ff1 fs6 fc0 sc0 ls0 ws0">Recoverable<span class="_ _d"> </span><span class="ff8">Conditions<span class="_ _b"> </span>that<span class="_ _d"> </span>are<span class="_ _b"> </span>not<span class="_ _d"> </span>under<span class="_ _d"> </span>the<span class="_ _b"> </span>control<span class="_ _d"> </span>of<span class="_ _d"> </span>the<span class="_ _b"> </span>program<span class="ff4">.<span class="_ _11"> </span>They<span class="_ _b"> </span>indicate</span></span></div><div class="t m0 x1 ha y79 ff8 fs6 fc0 sc0 ls0 ws0">“exceptional”<span class="_ _8"> </span><span class="ff4">run-time<span class="_ _d"> </span>conditions.<span class="_ _11"> </span>e.g.<span class="_ _11"> </span>file<span class="_ _b"> </span>not<span class="_ _d"> </span>found,<span class="_ _d"> </span>bad<span class="_ _b"> </span>allo<span class="_ _c"></span>cation,<span class="_ _d"> </span>wrong<span class="_ _d"> </span>user</span></div><div class="t m0 x1 ha y7a ff4 fs6 fc0 sc0 ls0 ws0">input,<span class="_ _d"> </span>etc.</div><div class="t m0 x1 ha y7b ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _d"> </span><span class="ff8">recoverable<span class="_ _6"> </span></span>should<span class="_ _d"> </span>be<span class="_ _d"> </span>considered<span class="_ _d"> </span><span class="ff8">unrecoverable<span class="_ _6"> </span></span>if<span class="_ _d"> </span>it<span class="_ _d"> </span>is<span class="_ _b"> </span>extremely<span class="_ _d"> </span>rare<span class="_ _b"> </span>and<span class="_ _d"> </span>difficult<span class="_ _d"> </span>to</div><div class="t m0 x1 ha y7c ff4 fs6 fc0 sc0 ls0 ws0">handle,<span class="_ _d"> </span>e.g.<span class="_ _11"> </span>bad<span class="_ _b"> </span>allo<span class="_ _c"></span>cation<span class="_ _d"> </span>due<span class="_ _b"> </span>to<span class="_ _d"> </span>out-of-memo<span class="_ _3"></span>ry<span class="_ _d"> </span>error</div><div class="t m0 x1 ha y7d ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>common<span class="_ _b"> </span>wa<span class="_ _3"></span>ys<span class="_ _d"> </span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>handling<span class="_ _b"> </span>recoverable<span class="_ _d"> </span>errors<span class="_ _b"> </span>are:</div><div class="t m0 x10 ha y7e ff1 fs6 fc0 sc0 ls0 ws0">Exceptions<span class="_ _a"> </span><span class="ff4">Robust<span class="_ _d"> </span>but<span class="_ _d"> </span>slo<span class="_ _3"></span>wer<span class="_ _b"> </span>and<span class="_ _d"> </span>requires<span class="_ _d"> </span>mo<span class="_ _3"></span>re<span class="_ _d"> </span>resources</span></div><div class="t m0 xf ha y7f ff1 fs6 fc0 sc0 ls0 ws0">Return<span class="_ _d"> </span>co<span class="_ _c"></span>de<span class="_ _1c"> </span><span class="ff4">F<span class="_ _3"></span>ast<span class="_ _d"> </span>but<span class="_ _d"> </span>difficult<span class="_ _b"> </span>to<span class="_ _d"> </span>handle<span class="_ _d"> </span>in<span class="_ _d"> </span>complex<span class="_ _b"> </span>programs</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 y80 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">Modern<span class="_ _19"> </span>C++<span class="_ _1c"> </span>best<span class="_ _19"> </span>practices<span class="_ _1c"> </span>for<span class="_ _19"> </span>exceptions<span class="_ _1c"> </span>and<span class="_ _19"> </span>error<span class="_ _1c"> </span>handling</span></div><div class="t m0 xd ha y81 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">Back<span class="_ _19"> </span>to<span class="_ _1c"> </span>Basics:<span class="_ _22"> </span>Exceptions<span class="_ _1c"> </span>-<span class="_ _19"> </span>CppCon2020</span></div><div class="t m0 xd ha y82 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">ISO<span class="_ _19"> </span>C++<span class="_ _1c"> </span>FAQ:<span class="_ _19"> </span>Exceptions<span class="_ _1c"> </span>and<span class="_ _19"> </span>Error<span class="_ _1c"> </span>Handling</span></div><div class="t m0 xd ha y83 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">Zero-overhead<span class="_ _19"> </span>deterministic<span class="_ _1c"> </span>exceptions:<span class="_ _22"> </span>Throwing<span class="_ _1c"> </span>values,<span class="_ _19"> </span>P0709</span></div><div class="t m0 xd ha y84 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">C++<span class="_ _19"> </span>exceptions<span class="_ _1c"> </span>are<span class="_ _19"> </span>becoming<span class="_ _1c"> </span>more<span class="_ _19"> </span>and<span class="_ _1c"> </span>more<span class="_ _19"> </span>problematic,<span class="_ _1c"> </span>P2544</span></div><div class="t m0 xd ha y85 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffe">std::expected</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:175.733000px;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:152.181000px;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:128.629000px;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:105.078000px;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:81.526000px;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:57.975000px;width:76.447000px;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="_ _e"></span>,<span class="_ _d"> </span>C<span class="_ _b"> </span>programs<span class="_ _b"> </span>handled<span class="_ _d"> </span>erro<span class="_ _3"></span>rs<span class="_ _d"> </span>with<span class="_ _d"> </span>return<span class="_ _b"> </span>co<span class="_ _c"></span>des,<span class="_ _b"> </span>even<span class="_ _d"> </span>for<span class="_ _b"> </span>unrecoverable<span class="_ _d"> </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="_ _d"> </span>such<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r?<span class="_ _11"> </span>Debugging<span class="_ _d"> </span><span class="fff">→<span class="_ _d"> </span></span>need<span class="_ _b"> </span>to<span class="_ _d"> </span>understand<span class="_ _d"> </span>what<span class="_ _d"> </span>/<span class="_ _b"> </span>where<span class="_ _d"> </span>/<span class="_ _d"> </span>why<span class="_ _b"> </span>the</div><div class="t m0 x1 ha y88 ff4 fs6 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>rogram<span class="_ _d"> </span>failed</div><div class="t m0 x1 ha y89 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _d"> </span>better<span class="_ _d"> </span>app<span class="_ _3"></span>roach<span class="_ _d"> </span>in<span class="_ _d"> </span>C++<span class="_ _b"> </span>involves</div><div class="t m0 x11 ha y8a ffe fs6 fc0 sc0 ls0 ws0">std::source<span class="_ _6"> </span>location()<span class="_ _18"> </span><span class="ff4 fc9">C++20<span class="_ _d"> </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="_ _d"> </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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdElEQVR42u3YsQ0CMRREQRudRWRRAyKiAoSIkeiMJiiHgCLogOh0EU5MRgME/IOZEjZ62rzZHRIAAIRxv10XVgAAIBqRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgDAW26tWQEAgDhKKZ5UAADCEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAH9gMMFMTdNkBD5XazUCAAF5UgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAwLzl1poVAACIo5TiSQUAIByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASDUBAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAADwTcN4XluB3/M4XowAADO13Z9yXi37+Eyp924QAABCeAG2XRoCWw8aKgAAAABJRU5ErkJggg=="/><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="_ _d"> </span>Exceptions<span class="_ _b"> </span>provide<span class="_ _b"> </span>a<span class="_ _d"> </span>well-defined<span class="_ _b"> </span>mechanism<span class="_ _d"> </span>to<span class="_ _d"> </span>detect<span class="_ _b"> </span>errors<span class="_ _b"> </span>passing<span class="_ _d"> </span>the</div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">info<span class="_ _3"></span>rmation<span class="_ _d"> </span>up<span class="_ _d"> </span>the<span class="_ _b"> </span>call<span class="_ _d"> </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="_ _d"> </span>ignored<span class="ff4">.<span class="_ _11"> </span>Unhandled<span class="_ _b"> </span>exceptions<span class="_ _d"> </span>stop<span class="_ _d"> </span>p<span class="_ _3"></span>rogram<span class="_ _d"> </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="_ _d"> </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="_ _d"> </span>don’t<span class="_ _b"> </span>have<span class="_ _d"> </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="_ _d"> </span>with<span class="_ _b"> </span>other<span class="_ _d"> </span>lay<span class="_ _3"></span>ers<span class="_ _b"> </span>and,<span class="_ _d"> </span>for<span class="_ _b"> </span>this<span class="_ _d"> </span>reason,<span class="_ _d"> </span>they<span class="_ _b"> </span>provide<span class="_ _b"> </span>go<span class="_ _c"></span>o<span class="_ _c"></span>d<span class="_ _b"> </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="_ _d"> </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="_ _d"> </span>return<span class="_ _6"> </span>statement<span class="_ _d"> </span><span class="ff4">destro<span class="_ _3"></span>ying<span class="_ _b"> </span>all<span class="_ _d"> </span>objects<span class="_ _b"> </span>in<span class="_ _d"> </span>the</span></span></span></div><div class="t m0 x6 ha y95 ff4 fs6 fc0 sc0 ls0 ws0">current<span class="_ _d"> </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="_ _d"> </span>exception<span class="_ _d"> </span>enables<span class="_ _b"> </span>a<span class="_ _d"> </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="_ _d"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>that<span class="_ _d"> </span>detects<span class="_ _d"> </span>the<span class="_ _b"> </span>error</span></div><div class="t m0 x6 ha y97 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _d"> </span>the<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _d"> </span>that<span class="_ _b"> </span>handles<span class="_ _d"> </span>the<span class="_ _d"> </span>erro<span class="_ _3"></span>r</div><div class="t m0 xd ha y98 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Exceptions<span class="_ _d"> </span>wo<span class="_ _3"></span>rk<span class="_ _b"> </span>well<span class="_ _b"> </span>with<span class="_ _d"> </span>object-oriented<span class="_ _b"> </span>semantic<span class="_ _d"> </span>(constructo<span class="_ _3"></span>r)</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="_ _d"> </span>exception<span class="_ _d"> </span>can<span class="_ _b"> </span>involve<span class="_ _d"> </span>mo<span class="_ _3"></span>re<span class="_ _d"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>than<span class="_ _d"> </span>the<span class="_ _d"> </span>functionalit<span class="_ _3"></span>y</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="_ _d"> </span>control<span class="_ _d"> </span>flo<span class="_ _3"></span>w<span class="_ _d"> </span>is<span class="_ _b"> </span>invisible<span class="_ _d"> </span>and<span class="_ _d"> </span>it<span class="_ _d"> </span>is<span class="_ _b"> </span>not<span class="_ _d"> </span>explicit<span class="_ _d"> </span>in</span></span></div><div class="t m0 x6 ha y9c ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _d"> </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="_ _d"> </span>in<span class="_ _d"> </span>the<span class="_ _b"> </span>failure<span class="_ _d"> </span>case<span class="_ _d"> </span>(violate<span class="_ _b"> </span>the</span></span></div><div class="t m0 x6 ha y9e ff4 fs6 fc0 sc0 ls0 ws0">zero-overhead<span class="_ _d"> </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="_ _b"> </span>dynamic<span class="_ _d"> </span>allo<span class="_ _c"></span>cation<span class="_ _d"> </span>and<span class="_ _18"> </span><span class="ffe">catch<span class="_ _18"> </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="_ _d"> </span>It<span class="_ _b"> </span>is<span class="_ _d"> </span>not<span class="_ _d"> </span>suited<span class="_ _d"> </span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>real-time,<span class="_ _b"> </span>safety-critical,<span class="_ _b"> </span>or<span class="_ _b"> </span>emb<span class="_ _c"></span>edded<span class="_ _d"> </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="_ _d"> </span>could<span class="_ _b"> </span>increase<span class="_ _d"> </span>executable<span class="_ _d"> </span>size<span class="_ _b"> </span>by<span class="_ _b"> </span>5-15%<span class="_ _d"> </span>(or<span class="_ _b"> </span>more*)</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="_ _d"> </span>p<span class="_ _3"></span>rovides<span class="_ _d"> </span>three<span class="_ _b"> </span>keyw<span class="_ _3"></span>ords<span class="_ _b"> </span>for<span class="_ _b"> </span>exception<span class="_ _d"> </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="_ _d"> </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="_ _d"> </span>block<span class="_ _d"> </span>containing<span class="_ _d"> </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="_ _d"> </span>block<span class="_ _d"> </span>for<span class="_ _b"> </span>handling<span class="_ _d"> </span>the<span class="_ _d"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIpElEQVR42u3YMUoDURSG0XkyF6uHaxCrrEDEWsjO3ITLsXAR7iBVeFVuM3YiYiEayJ3knBU8/pni47a7+8cJAADKeH97vbICAADViFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAD61zLQCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAABcunlFbx1jnNP0vXf/HwDAj1xSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMBptcy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAA/NdsAoDzMMYwwnr13o0AX7mkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAAEfVMtMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAcGrzit46xvDBAAD+pve+ote6pAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAH6lZaYVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMA38/751gpQ0O7pxQgAXKbNw7a1m+tlf5imZVkMAgBACR8LsyX+48Qk8AAAAABJRU5ErkJggg=="/><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="_ _d"> </span>thro<span class="_ _3"></span>w<span class="_ _d"> </span>everything<span class="_ _d"> </span>such<span class="_ _b"> </span>as<span class="_ _d"> </span>integers,<span class="_ _d"> </span>pointers,<span class="_ _d"> </span>objects,<span class="_ _d"> </span>etc.<span class="_ _11"> </span>The<span class="_ _b"> </span>standard</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">w<span class="_ _3"></span>ay<span class="_ _b"> </span>consists<span class="_ _d"> </span>in<span class="_ _d"> </span>using<span class="_ _b"> </span>the<span class="_ _d"> </span><span class="ffe">std<span class="_ _d"> </span></span>lib<span class="_ _3"></span>rary<span class="_ _b"> </span>exceptions<span class="_ _18"> </span><span class="ff12"><<span class="ffe">stdexcept</span>></span></div><div class="t m0 xf he yad ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><stdexcept></span></div><div class="t m0 xf he 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 he yaf ff6 fs5 fc4 sc0 ls0 ws0">if<span class="_ _6"> </span><span class="ff11 fc0">(b)</span></div><div class="t m0 x16 he 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 he 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 he yb2 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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 he yb4 ff6 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff11 fc0">{</span></div><div class="t m0 x16 he yb5 ff11 fs5 fc0 sc0 ls0 ws0">f(<span class="fc4">false</span>);</div><div class="t m0 x15 he 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 he 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 he 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 he 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 he yba ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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="_ _d"> </span><span class="ff4">C++,<span class="_ _d"> </span>differently<span class="_ _d"> </span>from<span class="_ _b"> </span>other<span class="_ _d"> </span>programming<span class="_ _b"> </span>languages,<span class="_ _d"> </span>do<span class="_ _c"></span>es<span class="_ _b"> </span>not<span class="_ _d"> </span>require<span class="_ _d"> </span>explicit</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">dynamic<span class="_ _d"> </span>allocation<span class="_ _d"> </span>with<span class="_ _d"> </span>the<span class="_ _b"> </span>keyw<span class="_ _3"></span>ord<span class="_ _18"> </span><span class="ffe">new<span class="_ _18"> </span></span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>thro<span class="_ _3"></span>wing<span class="_ _d"> </span>an<span class="_ _d"> </span>exception.<span class="_ _11"> </span>The<span class="_ _b"> </span>compiler</div><div class="t m0 x1 ha ybc ff4 fs6 fc0 sc0 ls0 ws0">implicitly<span class="_ _d"> </span>generates<span class="_ _b"> </span>the<span class="_ _d"> </span>approp<span class="_ _3"></span>riate<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _d"> </span>to<span class="_ _d"> </span>construct<span class="_ _b"> </span>and<span class="_ _d"> </span>clean<span class="_ _d"> </span>up<span class="_ _b"> </span>the<span class="_ _d"> </span>exception</div><div class="t m0 x1 ha ybd ff4 fs6 fc0 sc0 ls0 ws0">object.<span class="_ _11"> </span>Dynamically<span class="_ _d"> </span>allocated<span class="_ _d"> </span>objects<span class="_ _d"> </span>require<span class="_ _b"> </span>a<span class="_ _18"> </span><span class="ffe">delete<span class="_ _14"> </span></span>call</div><div class="t m0 x1 ha ybe ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>right<span class="_ _b"> </span>wa<span class="_ _3"></span>y<span class="_ _d"> </span>to<span class="_ _b"> </span>capture<span class="_ _d"> </span>an<span class="_ _d"> </span>exception<span class="_ _d"> </span>is<span class="_ _b"> </span>by<span class="_ _18"> </span><span class="ffe">const<span class="_ _10"> </span></span>-reference.<span class="_ _11"> </span>Capturing<span class="_ _d"> </span>b<span class="_ _3"></span>y-value<span class="_ _d"> </span>is</div><div class="t m0 x1 ha ybf ff4 fs6 fc0 sc0 ls0 ws0">also<span class="_ _d"> </span>possible<span class="_ _d"> </span>but,<span class="_ _d"> </span>it<span class="_ _b"> </span>involves<span class="_ _d"> </span>useless<span class="_ _d"> </span>cop<span class="_ _3"></span>y<span class="_ _d"> </span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>non-trivial<span class="_ _d"> </span>exception<span class="_ _b"> </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="_ _d"> </span>be<span class="_ _d"> </span>used<span class="_ _d"> </span>to<span class="_ _d"> </span>capture<span class="_ _b"> </span>any<span class="_ _d"> </span>thro<span class="_ _3"></span>wn<span class="_ _d"> </span>exception</span></div><div class="t m0 xf he 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 he yc2 ff6 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff11 fc0">{</span></div><div class="t m0 x16 he 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 he 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 he 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 he yc6 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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="_ _d"> </span>a<span class="_ _3"></span>re<span class="_ _d"> </span>automatically<span class="_ _b"> </span>propagated<span class="_ _b"> </span>along<span class="_ _d"> </span>the<span class="_ _d"> </span>call<span class="_ _d"> </span>stack.<span class="_ _11"> </span>The<span class="_ _b"> </span>user<span class="_ _d"> </span>can<span class="_ _d"> </span>also</div><div class="t m0 x1 ha yc9 ff4 fs6 fc0 sc0 ls0 ws0">control<span class="_ _d"> </span>ho<span class="_ _3"></span>w<span class="_ _d"> </span>they<span class="_ _b"> </span>are<span class="_ _b"> </span>propagated</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="_ _d"> </span><span class="fc0">allo<span class="_ _3"></span>ws<span class="_ _d"> </span>listing<span class="_ _b"> </span>the<span class="_ _d"> </span>exceptions<span class="_ _d"> </span>that<span class="_ _d"> </span>a<span class="_ _b"> </span>function<span class="_ _d"> </span>might<span class="_ _d"> </span>directly<span class="_ _b"> </span>or<span class="_ _b"> </span>indirectly<span class="_ _d"> </span>throw,</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">e.g.<span class="_ _5"> </span><span class="ffe">void<span class="_ _1c"> </span>f()<span class="_ _19"> </span><span class="fc8">throw</span>(int,<span class="_ _1c"> </span>const<span class="_ _19"> </span>char*)<span class="_ _1c"> </span><span class="ff13">{</span></span></div><div class="t m0 x1 ha ye0 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _d"> </span><span class="fc0">dep<span class="_ _3"></span>recates<span class="_ _18"> </span><span class="ffe">throw<span class="_ _18"> </span></span>and<span class="_ _d"> </span>intro<span class="_ _c"></span>duces<span class="_ _b"> </span>the<span class="_ _d"> </span><span class="ffe fc8">noexcept<span class="_ _d"> </span></span>k<span class="_ _3"></span>eywo<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="_ _1a"> </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="_ _18"> </span></span>function<span class="_ _b"> </span>thro<span class="_ _3"></span>w<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="_ _18"> </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="_ _d"> </span>be<span class="_ _d"> </span>used<span class="_ _d"> </span>when<span class="_ _d"> </span>thro<span class="_ _3"></span>wing<span class="_ _d"> </span>an<span class="_ _b"> </span>exception<span class="_ _d"> </span>is<span class="_ _d"> </span>impossible<span class="_ _d"> </span>or<span class="_ _b"> </span>unacceptable.</span></div><div class="t m0 x1 ha ye9 ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _d"> </span>is<span class="_ _b"> </span>also<span class="_ _d"> </span>useful<span class="_ _d"> </span>when<span class="_ _d"> </span>the<span class="_ _b"> </span>function<span class="_ _d"> </span>contains<span class="_ _d"> </span>code<span class="_ _d"> </span>outside<span class="_ _d"> </span>user<span class="_ _b"> </span>control,<span class="_ _d"> </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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGIt3GYu4TgWDuEGVkcq08TOAWz8D59ngvClefnz7nBKAAAQxuN+W1kBAIBoRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAB+5tWYFAADiKKW4pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCALA8w4LeWmv1YQAA3xnHcUGvdUkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA+Ce5tWYFAADiKKW4pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAPzbMl60VgAie56sRAEgp7Y9Tzpt1n18p9d4NAgBACG8bxxoCePRLFgAAAABJRU5ErkJggg=="/><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="_ _d"> </span>handlers<span class="_ _b"> </span>can<span class="_ _d"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>defined<span class="_ _d"> </span>around<span class="_ _b"> </span>the<span class="_ _d"> </span>b<span class="_ _c"></span>ody<span class="_ _d"> </span>of<span class="_ _d"> </span>a<span class="_ _b"> </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,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>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="_ _d"> </span>automatically<span class="_ _d"> </span>thro<span class="_ _3"></span>ws<span class="_ _d"> </span>an<span class="_ _b"> </span>exception<span class="_ _d"> </span>(<span class="_ _10"> </span><span class="ffe">std::bad<span class="_ _8"> </span>alloc<span class="_ _10"> </span></span>)<span class="_ _d"> </span>if<span class="_ _b"> </span>it<span class="_ _d"> </span>cannot</div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">allo<span class="_ _c"></span>cate<span class="_ _b"> </span>the<span class="_ _d"> </span>memo<span class="_ _3"></span>ry</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="_ _d"> </span>thro<span class="_ _3"></span>ws<span class="_ _d"> </span>an<span class="_ _d"> </span>exception<span class="_ _b"> </span>(unrecoverable<span class="_ _d"> </span>erro<span class="_ _3"></span>r)</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,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>Allo<span class="_ _c"></span>cation<span class="_ _8"> </span>Issues<span class="_ _28"> </span>2/4</div><div class="t m0 x1 ha yf7 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _d"> </span>also<span class="_ _b"> </span>provides<span class="_ _b"> </span>an<span class="_ _d"> </span>overload<span class="_ _d"> </span>of<span class="_ _d"> </span>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="_ _d"> </span>with<span class="_ _b"> </span>non-throwing<span class="_ _b"> </span>memory</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="_ _18"> </span><span class="fc7"><new><span class="_ _25"> </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="_ _d"> </span>exceptions<span class="_ _d"> </span>in<span class="_ _b"> </span><span class="ff8">constructors<span class="_ _8"> </span></span>is<span class="_ _d"> </span>fine<span class="_ _b"> </span>while<span class="_ _d"> </span>it<span class="_ _d"> </span>is<span class="_ _d"> </span>not<span class="_ _b"> </span>allow<span class="_ _3"></span>ed<span class="_ _d"> </span>in<span class="_ _b"> </span><span class="ff8">destructors</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 ff14 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="_ _2a"> </span><span class="ff4">should<span class="_ _d"> </span>be<span class="_ _d"> </span>ma<span class="_ _3"></span>rked<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="_ _2a"> </span><span class="fc8">A<span class="_ _2a"> </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="_ _2a"> </span><span class="fc0">ptr1,<span class="_ _2a"> </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="_ _2a"> </span>{</div><div class="t m0 x14 hc yd6 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span><span class="ff6 fc4">new<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span><span class="ff6 fc4">new<span class="_ _2a"> </span><span class="fc5">int</span></span></span>[<span class="fc6">10</span>];<span class="_ _11"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>if<span class="_ _2a"> </span>bad_alloc<span class="_ _2a"> </span>here,<span class="_ _11"> </span>ptr1<span class="_ _2a"> </span>is<span class="_ _2a"> </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="_ _2a"> </span><span class="fc8">A<span class="_ _2a"> </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 class="_ _2a"> </span></span>ptr1,<span class="_ _2a"> </span>ptr2;</div><div class="t m0 x6 hc y108 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _2a"> </span>{</div><div class="t m0 x14 hc y109 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="ffd fc7">//<span class="_ _11"> </span>if<span class="_ _2a"> </span>bad_alloc<span class="_ _2a"> </span>here,</span></div><div class="t m0 x6 hc y10b ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _2b"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>ptr1<span class="_ _2a"> </span>is<span class="_ _2a"> </span>deallocated</span></div><div class="t m0 xf hc y10c ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">28/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf20" class="pf w0 h0" data-page-no="20"><div class="pc pc20 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Return<span class="_ _8"> </span>Co<span class="_ _c"></span>de<span class="_ _8"> </span>and<span class="_ _8"> </span>Exception<span class="_ _8"> </span>Summa<span class="_ _3"></span>ry</div><div class="t m0 x19 hb y10d ff1 fs7 fc0 sc0 ls0 ws0">Exception<span class="_ _2c"> </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="_ _2d"> </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="_ _d"> </span>handling<span class="_ _b"> </span>exception<span class="_ _10"> </span>can<span class="_ _b"> </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="_ _19"> </span><span class="ffa">[[deprecated]]<span class="_ _19"> </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="_ _2e"> </span>used<span class="_ _2e"> </span>with<span class="_ _10"> </span>object-oriented<span class="_ _2e"> </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="_ _2e"> </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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIzElEQVR42u3YMUosURCG0bnShVHhGh5GrkDEWHBnbsLlvMBFuAMjuZGVjJkYCb43zFT3nLOAS/N38lHj+vZ+BwAAbby+/L2wAgAA3YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAAC+jKqyAgAAfUSESyoAAO2IVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAA4ssUErNqc0wgblplGADhPLqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAYNtGVVkBAIA+IsIlFQCAdkQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwDeLCVi7OacRzlxmGgFgY1xSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAgIMaVWUFAAD6iAiXVAAA2hGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAA8EuLCdi8OedB3slMYwLAcbikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDTGlVlBQAA+ogIl1QAANoRqQAAiFQAABCpAACIVAAA+F+LCdi8OedB3slMYwLAcbikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDTGlVlBQAA+ogIl1QAANoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgJ8sK/rWOacfBgDwbzJzRV/rkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4IRGVVkBAIA+IsIlFQCAdkQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAYM2W96c/VgBYhbeHZyMA5+Dm7nGMq8v9+8dut9/vDQIAQAufCtUx+lwOGhcAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::expected<span class="_ _2f"> </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="_ _d"> </span><span class="fc0">introduces<span class="_ _18"> </span><span class="ff6">std::expected<span class="_ _14"> </span></span>to<span class="_ _b"> </span>get<span class="_ _d"> </span>the<span class="_ _d"> </span>best<span class="_ _d"> </span>p<span class="_ _3"></span>rop<span class="_ _c"></span>erties<span class="_ _d"> </span>of<span class="_ _b"> </span>return<span class="_ _d"> </span>co<span class="_ _c"></span>des<span class="_ _b"> </span>and</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">exceptions</div><div class="t m0 x1 ha ye0 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>class<span class="_ _b"> </span>template<span class="_ _30"> </span><span class="ffe">expected<T,<span class="_ _1c"> </span>E><span class="_ _18"> </span></span>contains<span class="_ _d"> </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="_ _d"> </span>value<span class="_ _d"> </span>of<span class="_ _b"> </span>type<span class="_ _30"> </span><span class="ffe">T<span class="_ _10"> </span></span>,<span class="_ _d"> </span>the<span class="_ _d"> </span>expected<span class="_ _d"> </span>value<span class="_ _d"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e;<span class="_ _b"> </span>or</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="_ _d"> </span>value<span class="_ _d"> </span>of<span class="_ _b"> </span>type<span class="_ _30"> </span><span class="ffe">E<span class="_ _10"> </span></span>,<span class="_ _d"> </span>an<span class="_ _d"> </span>erro<span class="_ _3"></span>r<span class="_ _d"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>used<span class="_ _d"> </span>when<span class="_ _d"> </span>an<span class="_ _d"> </span>unexpected<span class="_ _d"> </span>outcome<span class="_ _d"> </span>occured</span></div><div class="t m0 xf hc y12e ff6 fs7 fc4 sc0 ls0 ws0">enum<span class="_ _2a"> </span>class<span class="_ _2a"> </span><span class="fc8">Error<span class="_ _2a"> </span><span class="ffa fc0">{<span class="_ _11"> </span>Invalid<span class="_ _2a"> </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="_ _2a"> </span>Error<span class="fc6">><span class="_ _2a"> </span></span>f(<span class="ff6 fc5">int<span class="_ _2a"> </span></span>v)<span class="_ _11"> </span>{</div><div class="t m0 x6 hc y130 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _2a"> </span><span class="ffa fc0">(v<span class="_ _2a"> </span><span class="fc6">><span class="_ _2a"> </span>0</span>)</span></div><div class="t m0 x14 hc y131 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _2a"> </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="_ _2a"> </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="_ _2f"> </span><span class="ff1">2/2</span></div><div class="t m0 x1 ha y134 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>user<span class="_ _b"> </span>cho<span class="_ _c"></span>oses<span class="_ _d"> </span>ho<span class="_ _3"></span>w<span class="_ _d"> </span>to<span class="_ _b"> </span>ha<span class="_ _c"></span>ndle<span class="_ _b"> </span>the<span class="_ _d"> </span>erro<span class="_ _3"></span>r<span class="_ _d"> </span>dep<span class="_ _c"></span>ending<span class="_ _b"> </span>on<span class="_ _d"> </span>the<span class="_ _d"> </span>context</div><div class="t m0 xf hc y135 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">ret<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>f(n);</span></div><div class="t m0 xf hc y136 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _2a"> </span><span class="ff15">Return<span class="_ _2a"> </span>code<span class="_ _2a"> </span>handling</span></div><div class="t m0 xf hc y137 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _2a"> </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="_ _2a"> </span>error<span class="_ _2a"> </span>handling</div><div class="t m0 xf hc y139 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _2a"> </span><span class="ffa fc0">v<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span>*</span>ret<span class="_ _11"> </span><span class="fc6">+<span class="_ _2a"> </span>3</span>;<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>execute<span class="_ _11"> </span>without<span class="_ _2a"> </span>checking</span></span></div><div class="t m0 xf hc y13a ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _2a"> </span><span class="ff15">Exception<span class="_ _2a"> </span>handling</span></div><div class="t m0 xf hc y13b ffa fs7 fc0 sc0 ls0 ws0">ret.value();<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>throw<span class="_ _2a"> </span>an<span class="_ _11"> </span>exception<span class="_ _2a"> </span>if<span class="_ _2a"> </span>there<span class="_ _2a"> </span>is<span class="_ _11"> </span>a<span class="_ _2a"> </span>problem</span></div><div class="t m0 xf hc y13c ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _2a"> </span><span class="ff15">Monadic<span class="_ _2a"> </span>operations</span></div><div class="t m0 xf hc y13d ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">lambda<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>[](</span><span class="fc5">int<span class="_ _11"> </span><span class="ffa fc0">x)<span class="_ _2a"> </span>{<span class="_ _2a"> </span></span></span>return<span class="_ _2a"> </span><span class="ffa fc0">(x<span class="_ _11"> </span><span class="fc6">><span class="_ _2a"> </span>3</span>)<span class="_ _2a"> </span><span class="fc6">?<span class="_ _2a"> </span>4<span class="_ _11"> </span>:<span class="_ _2a"> </span></span>std<span class="fc6">::</span>unexpected(Error<span class="fc6">::</span>Invalid);<span class="_ _2a"> </span>};</span></div><div class="t m0 xf hc y13e ffa fs7 fc0 sc0 ls0 ws0">ret.and_then(lambda)<span class="_ _31"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>pass<span class="_ _2a"> </span>the<span class="_ _2a"> </span>value<span class="_ _11"> </span>to<span class="_ _2a"> </span>another<span class="_ _2a"> </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="_ _2a"> </span></span>x)<span class="_ _2a"> </span>{<span class="_ _2a"> </span><span class="ff6 fc4">return<span class="_ _11"> </span></span>x<span class="_ _2a"> </span><span class="fc6">+<span class="_ _2a"> </span>4</span>;<span class="_ _2a"> </span>};)<span class="_ _32"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>transform<span class="_ _2a"> </span>the<span class="_ _2a"> </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="_ _2a"> </span></span>error_code){<span class="_ _2a"> </span><span class="ffd fc7">/*error<span class="_ _2a"> </span>handling*/<span class="_ _18"> </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="_ _33"> </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="_ _d"> </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="_ _18"> </span><span class="ffe">if<span class="_ _25"> </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="_ _d"> </span>co<span class="_ _c"></span>de<span class="ff4">,<span class="_ _d"> </span>e.g.<span class="_ _5"> </span><span class="ffe">int<span class="_ _2e"> </span></span>,<span class="_ _30"> </span><span class="ffe">enum<span class="_ _10"> </span></span>,<span class="_ _d"> </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="_ _18"> </span><span class="ffe">if<span class="_ _25"> </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="_ _33"> </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<span class="_ _6"> </span>code<span class="_ _10"> </span><span class="ff4">,<span class="_ _d"> </span>standa<span class="_ _3"></span>rdized<span class="_ _d"> </span>error<span class="_ _b"> </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="_ _18"> </span><span class="ffe">if<span class="_ _25"> </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="_ _a"> </span>own<span class="_ _11"> </span>error<span class="_ _a"> </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="_ _d"> </span>e.g.<span class="_ _2a"> </span><span class="ffe">Boost<span class="_ _1c"> </span>Outcome</span>,<span class="_ _d"> </span><span class="ffe">STX</span>,<span class="_ _d"> </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:138.182000px;width:101.370000px;height:11.956000px;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:95.274000px;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:95.274000px;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="_ _e"></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,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers</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="_ _d"> </span><span class="ff4">is<span class="_ _b"> </span>a<span class="_ _d"> </span>p<span class="_ _c"></span>ointer-lik<span class="_ _3"></span>e<span class="_ _d"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>with<span class="_ _d"> </span>some<span class="_ _d"> </span>additional<span class="_ _b"> </span>functionality<span class="_ _7"></span>,<span class="_ _d"> </span>e.g.<span class="_ _2a"> </span><span class="ff8">automatic</span></span></div><div class="t m0 x1 ha y6b ff8 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _d"> </span>deallo<span class="_ _c"></span>cation<span class="_ _d"> </span><span class="ff4">(when<span class="_ _b"> </span>the<span class="_ _d"> </span>p<span class="_ _c"></span>ointer<span class="_ _d"> </span>is<span class="_ _b"> </span>no<span class="_ _d"> </span>longer<span class="_ _d"> </span>in<span class="_ _b"> </span>use,<span class="_ _d"> </span>the<span class="_ _d"> </span>memo<span class="_ _3"></span>ry<span class="_ _d"> </span>it<span class="_ _d"> </span>points<span class="_ _d"> </span>to<span class="_ _d"> </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="_ _d"> </span>counting,<span class="_ _d"> </span>etc.</div><div class="t m0 x1 ha y155 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _d"> </span><span class="fc0">p<span class="_ _3"></span>rovides<span class="_ _d"> </span>three<span class="_ _b"> </span>smart<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _d"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>es:</span></div><div class="t m0 xd ha y156 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff6">std::unique<span class="_ _8"> </span>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<span class="_ _8"> </span>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<span class="_ _8"> </span>ptr</span></div><div class="t m0 x1 ha y159 ff4 fs6 fc0 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _d"> </span>p<span class="_ _c"></span>ointers<span class="_ _b"> </span>prevent<span class="_ _b"> </span>most<span class="_ _d"> </span>situations<span class="_ _d"> </span>of<span class="_ _d"> </span>memo<span class="_ _3"></span>ry<span class="_ _d"> </span>leaks<span class="_ _b"> </span>by<span class="_ _b"> </span>making<span class="_ _d"> </span>the<span class="_ _d"> </span>memo<span class="_ _3"></span>ry</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="_ _2a"> </span>Smart<span class="_ _2a"> </span>Pointers</div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">34/56</div><a class="l" href="http://embeddedartistry.com/blog/2016/9/19/rfr0r76r0ovd0gk574kfsldxfbklgs"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:2.900000px;width:86.725000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf27" class="pf w0 h0" data-page-no="27"><div class="pc pc27 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers<span class="_ _8"> </span>Benefits</div><div class="t m0 xd ha y15c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">If<span class="_ _d"> </span>a<span class="_ _d"> </span>sma<span class="_ _3"></span>rt<span class="_ _d"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>go<span class="_ _c"></span>es<span class="_ _d"> </span><span class="ff8">out-of-scope</span>,<span class="_ _d"> </span>the<span class="_ _d"> </span>app<span class="_ _3"></span>rop<span class="_ _3"></span>riate<span class="_ _d"> </span>metho<span class="_ _c"></span>d<span class="_ _b"> </span>to<span class="_ _d"> </span>release<span class="_ _d"> </span>resources</span></div><div class="t m0 x6 ha y15d ff4 fs6 fc0 sc0 ls0 ws0">is<span class="_ _d"> </span>called<span class="_ _b"> </span>automatically<span class="_ _e"></span>.<span class="_ _11"> </span>The<span class="_ _d"> </span>memo<span class="_ _3"></span>ry<span class="_ _d"> </span>is<span class="_ _d"> </span>not<span class="_ _b"> </span>left<span class="_ _d"> </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="_ _d"> </span>will<span class="_ _b"> </span>automatically<span class="_ _d"> </span>b<span class="_ _c"></span>e<span class="_ _d"> </span>set<span class="_ _b"> </span>to<span class="_ _18"> </span><span class="ffe">nullptr<span class="_ _30"> </span></span>if<span class="_ _d"> </span>not<span class="_ _b"> </span>initialized<span class="_ _d"> </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="_ _d"> </span>has<span class="_ _d"> </span>been<span class="_ _d"> </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<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">provides<span class="_ _b"> </span>automatic<span class="_ _d"> </span>reference<span class="_ _d"> </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="_ _d"> </span>a<span class="_ _d"> </span>special<span class="_ _30"> </span><span class="ffe">delete<span class="_ _18"> </span></span>function<span class="_ _d"> </span>needs<span class="_ _d"> </span>to<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _d"> </span>called,<span class="_ _b"> </span>it<span class="_ _d"> </span>will<span class="_ _d"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>sp<span class="_ _c"></span>ecified<span class="_ _d"> </span>in<span class="_ _b"> </span>the<span class="_ _d"> </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="_ _d"> </span>and<span class="_ _b"> </span>declaration,<span class="_ _b"> </span>and<span class="_ _d"> </span>will<span class="_ _d"> </span>automatically<span class="_ _d"> </span>be<span class="_ _d"> </span>called<span class="_ _d"> </span>on<span class="_ _b"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJP0lEQVR42u3bMUpcQQDH4R19Q6rBA6S02sLWIMFiwYCkEO+yJ8gB9gY5hFikCwqmCKmFbbzBVjJVBte1DSoGni7OvP2+cgsZ/s/ix3tM2P30eQQAANW4+f1rywoAANRGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAABN6UwwbNvbW9eXP5/+Pj6cGAcAEKm8j+XyXo8CAM3xuR8AAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAC8TiilWAEAgHrEGL1JBQCgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAB7pGjprztkD41kpJSMAwJB4kwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAXtaZgH72v548/fHPj3PLAACvF0oprZw15+yB8ayUkhEAYDBijD73AwBQHZEKAIBIBQAAkQoAQHPc7gcA+L+7u+Xe5Gh9f39+dWHkf7ndzxC43Q8AQ+J2PwAANRKpAACIVAAAEKkAADSnpYtTAABsAhenAACokUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAO+ra+Wg48NJW8vOry78ewEA9BNKKVYAAKAeMUaf+wEAqI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIBHuobOmnP2wAAA+kkpNXRab1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgDAwHQmADbH6WxmhDdxNp0aAVirUEpp5aw5Zw8MAKCflFIrR40x+twPAEB1RCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAADSmMwGwOU5nMyO8ibPp1AjAWoVSSitnzTl7YAAA/aSUWjlqjNHnfgAAqiNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAKhGWHz7aAUAhmHx5bsRYADGB8ch7HxY3f4djVarlUEAAKjCA5ovUIgIlUUKAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>Pointer<span class="_ _34"> </span>1/4</span></div><div class="t m0 xf ha y164 ff6 fs6 fc0 sc0 ls0 ws0">std::unique<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _d"> </span>used<span class="_ _d"> </span>to<span class="_ _b"> </span>manage<span class="_ _d"> </span>any<span class="_ _d"> </span>dynamically<span class="_ _d"> </span>allocated<span class="_ _d"> </span>object<span class="_ _d"> </span>that<span class="_ _b"> </span>is<span class="_ _d"> </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="_ _d"> </span>b<span class="_ _3"></span>y<span class="_ _d"> </span>multiple<span class="_ _d"> </span>objects</div><div class="t m0 xf he y166 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y167 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><memory></span></div><div class="t m0 xf he 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 he 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 he y16a ff16 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 he y16b ff11 fs5 fc0 sc0 ls0 ws0">};<span class="_ _35"> </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 he 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 he y16d ff6 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _36"> </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 he 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 he 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 he 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 he 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 he 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="_ _37"> </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 he 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 he y174 ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _38"> </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 he 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<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>Pointer<span class="_ _34"> </span>2/4</span></div><div class="t m0 xf ha y21 ff6 fs6 fc0 sc0 ls0 ws0">std::unique<span class="_ _6"> </span>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="_ _d"> </span>the<span class="_ _d"> </span>underlying<span class="_ _b"> </span>p<span class="_ _c"></span>ointer</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="_ _30"> </span></span><span class="ff4">dereferences<span class="_ _d"> </span>pointer<span class="_ _d"> </span>to<span class="_ _d"> </span>the<span class="_ _b"> </span>managed<span class="_ _d"> </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="_ _d"> </span>access<span class="_ _d"> </span>to<span class="_ _b"> </span>the<span class="_ _d"> </span>sto<span class="_ _3"></span>red<span class="_ _d"> </span>a<span class="_ _3"></span>rray<span class="_ _b"> </span>(if<span class="_ _d"> </span>it<span class="_ _d"> </span>supports<span class="_ _d"> </span>random</span></div><div class="t m0 x6 ha y179 ff4 fs6 fc0 sc0 ls0 ws0">access<span class="_ _d"> </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="_ _d"> </span>a<span class="_ _d"> </span>pointer<span class="_ _d"> </span>to<span class="_ _d"> </span>the<span class="_ _b"> </span>managed<span class="_ _d"> </span>object<span class="_ _d"> </span>and<span class="_ _b"> </span>releases<span class="_ _d"> </span>the<span class="_ _d"> </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="_ _d"> </span>the<span class="_ _d"> </span>managed<span class="_ _b"> </span>object<span class="_ _d"> </span>with<span class="_ _d"> </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="_ _d"> </span>metho<span class="_ _c"></span>d:<span class="_ _5"> </span><span class="ffe fc8">std::make<span class="_ _6"> </span>unique<span class="ff12"><</span>T<span class="ff12">></span><span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _d"> </span>a<span class="_ _d"> </span>unique<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _d"> </span>to<span class="_ _b"> </span>a<span class="_ _d"> </span>class<span class="_ _18"> </span><span class="ffe">T</span></div><div class="t m0 x1 ha y17d ff4 fs6 fc0 sc0 ls0 ws0">that<span class="_ _d"> </span>manages<span class="_ _b"> </span>a<span class="_ _d"> </span>new<span class="_ _d"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImUlEQVR42u3ZsW3CQACGUZ/tUyorMyAqJkBRlIICKZuxRFZBoqDIAJRsQGW5ykmOGYAmgFDu0Hulq9Pv5tNdmC/fKwAAyMbxe19bAQCA3IhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAoCitCZ5b09SH3fby++JjZRwAQKTyP8bxV48CAMXx3A8AgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAADuE1JKVgAAIB8xRjepAABkR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAldqCzjoMgx8GAHCbrusKOq2bVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARKoJAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVBMAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAEBZQkrJCgAA5CPG6CYVAIDsiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAABwn7bfzKwAAH90Wn8ZAR5t8fYZwuvL1P9U1TRNBgEAIAtnT4cgpRUXml8AAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>Pointer<span class="_ _34"> </span>3/4</span></div><div class="t m0 xf he y17e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y17f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><memory></span></div><div class="t m0 xf he 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 he y181 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf he y182 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf he 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 he 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 he y185 ff11 fs5 fc0 sc0 ls0 ws0">u_ptr1<span class="fc6">-></span>value;<span class="_ _39"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 he y186 ff11 fs5 fc0 sc0 ls0 ws0">(<span class="fc6">*</span>u_ptr1).value;<span class="_ _3a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 he 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 he y188 ff11 fs5 fc0 sc0 ls0 ws0">u_ptr1.reset(<span class="ff6 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _3b"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 he 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 he 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 he 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 he 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="_ _3c"> </span><span class="ffd fc7">//<span class="_ _6"> </span>access</span></span></span></div><div class="t m0 xf he 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImElEQVR42u3ZsW3CQACGUZ/tUyorMyAqJkAoSkGBlM1YIqsgUVBkgJRskMpyxUmOGYAqIMRdeK90dfrdfLoL8+VbBQAA2Th+HWorAACQG5EKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAFKU1wf/WNPX3fnf5ffG+Ng4AIFJ5jHH81aMAQHE89wMAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIDbhJSSFQAAyEeM0U0qAADZEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAHqct6KzDMPhhAADX6bquoNO6SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAnlNIKVkBAIB8xBjdpAIAkB2RCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAABSl7bczKwDAnfxsPo0Af7VYfYTw+jL1p6qapskgAABk4QyCDiClbjaXJAAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::unique<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Unique<span class="_ _8"> </span>Pointer<span class="_ _34"> </span>4/4</span></div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Implement<span class="_ _d"> </span>a<span class="_ _6"> </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="_ _18"> </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="_ _18"> </span><span class="fc7"><memory></span></div><div class="t m0 xf hc y190 ff6 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _2a"> </span><span class="fc8">A<span class="_ _2a"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y191 ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _2a"> </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="_ _2a"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _2a"> </span>{</span></span></div><div class="t m0 x6 hc y194 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">DeleteLambda<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>[](A<span class="fc6">*<span class="_ _11"> </span></span>x)<span class="_ _2a"> </span>{</span></div><div class="t m0 x14 hc y195 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span><span class="fca">"delete"<span class="_ _2a"> </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="_ _2a"> </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="_ _2a"> </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="_ _2a"> </span></span>A(),<span class="_ _2a"> </span>DeleteLambda);</div><div class="t m0 xf hc y19a ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>print<span class="_ _2a"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJSUlEQVR42u3dsWoUQRjA8dtkB6sPH8DS6l5AMZIihSBChDyS7+FTXHGdGNBCrhZsfINUMpVD1rOzuAsWCWRndn6/cqvhmy3+zBQzPH/5egUAANX4+e3riSkAAFAbkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAAA0ZTSCZTs9Pfl+/en4+/r8wnAAAJHKPKbpjx4FAJrjuh8AAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAA8zFBKMQUAAOqRUnKSCgBAdUQqAAAiFQAARCoAACIVAABEKgAAizM2tNacsw3jThFhCACwJE5SAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMD/jUbA/bx49/744267MRkA4OGGUkora8052zDuFBGGAACLkVJy3Q8AQHVEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAcaOlZVAAAeuBZVAAAaiRSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMC8xlYWuj6/WPA2/Pjy2b8IAPDPUEoxBQAA6pFSct0PAEB1RCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAAWjc2tNacsw3rSkQYAgD0yUkqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAB6NxoBx26n6ezy6uDjbrsxGQDgcQyllFbWmnO2YV2JCEMAgA6llFz3AwBQHZEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAubX04hQAAD3w4hQAADUaG1prztmGdSUiDAEA+uQkFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAvRuNgGO303R2eXXwcbfdmAwA8DiGUkora80527CuRIQhAECHUkqu+wEAqI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwNxaenEKAIAeeHEKAIAaiVQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAADMbWxorTlnGwYAcD8R0dBqnaQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSjQAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQBo2XDz4ZkpAEAlbt58NARYv3o7DE+f7H/9Xq32+72BAABQhb+lwFaGt9nhYwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Shared<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _3d"> </span>1/3</span></div><div class="t m0 xf ha y19b ff6 fs6 fc0 sc0 ls0 ws0">std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _d"> </span>the<span class="_ _d"> </span>pointer<span class="_ _d"> </span>type<span class="_ _d"> </span>to<span class="_ _d"> </span>be<span class="_ _d"> </span>used<span class="_ _d"> </span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>memo<span class="_ _3"></span>ry<span class="_ _d"> </span>that<span class="_ _b"> </span>can<span class="_ _d"> </span>b<span class="_ _c"></span>e<span class="_ _d"> </span>o<span class="_ _3"></span>wned<span class="_ _d"> </span>b<span class="_ _3"></span>y</span></div><div class="t m0 x1 ha y19c ff4 fs6 fc0 sc0 ls0 ws0">multiple<span class="_ _d"> </span>resources<span class="_ _b"> </span>at<span class="_ _d"> </span>one<span class="_ _d"> </span>time</div><div class="t m0 xf h5 y19d ffe fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _d"> </span>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>by</span></div><div class="t m0 xf h5 y19e ffe fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _d"> </span>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="_ _b"> </span>no<span class="_ _b"> </span>remaining<span class="_ _b"> </span>objects<span class="_ _b"> </span>pointing<span class="_ _b"> </span>to<span class="_ _b"> </span>the<span class="_ _b"> </span>data</span></div><div class="t m0 xf he y19f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y1a0 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><memory></span></div><div class="t m0 xf he 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 he y1a2 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf he y1a3 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf he 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 he 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 he 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 he 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 he 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 he y1a9 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _3e"> </span>sh_ptr3<span class="_ _6"> </span>:<span class="_ _8"> </span>zero<span class="_ _6"> </span>references</div><div class="t m0 x15 he 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 he 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 he y1ac ff11 fs5 fc0 sc0 ls0 ws0">}<span class="_ _3f"> </span><span class="ffd fc7">//<span class="_ _6"> </span>sh_ptr2:<span class="_ _8"> </span>one<span class="_ _6"> </span>references</span></div><div class="t m0 xe h8 yc ff5 fs5 fc0 sc0 ls0 ws0">40/56</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2d" class="pf w0 h0" data-page-no="2d"><div class="pc pc2d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Shared<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _3d"> </span>2/3</span></div><div class="t m0 xf ha y1ad ff6 fs6 fc0 sc0 ls0 ws0">std::shared<span class="_ _6"> </span>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="_ _d"> </span>the<span class="_ _d"> </span>underlying<span class="_ _b"> </span>p<span class="_ _c"></span>ointer</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="_ _30"> </span></span><span class="ff4">dereferences<span class="_ _d"> </span>pointer<span class="_ _d"> </span>to<span class="_ _d"> </span>the<span class="_ _b"> </span>managed<span class="_ _d"> </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<span class="_ _6"> </span>count<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _d"> </span>the<span class="_ _d"> </span>number<span class="_ _d"> </span>of<span class="_ _d"> </span>objects<span class="_ _d"> </span>referring<span class="_ _b"> </span>to<span class="_ _d"> </span>the<span class="_ _d"> </span>same<span class="_ _b"> </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="_ _d"> </span>the<span class="_ _d"> </span>managed<span class="_ _b"> </span>object<span class="_ _d"> </span>with<span class="_ _d"> </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="_ _d"> </span>metho<span class="_ _c"></span>d:<span class="_ _5"> </span><span class="ffe fc8">std::make<span class="_ _6"> </span>shared<span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _d"> </span>a<span class="_ _d"> </span>sha<span class="_ _3"></span>red<span class="_ _d"> </span>pointer<span class="_ _d"> </span>that<span class="_ _d"> </span>manages<span class="_ _b"> </span>a<span class="_ _d"> </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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIl0lEQVR42u3ZsW3CQBiGYR/4RGUxA6JigihCFCmQ2IwlWAUpBQUDUGYDKuQqJzmmh44U/IbnKV2dPjev7tL8Y1kBAEAYP8fDyAoAAEQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIBBqU3w2sbj0el7f/99sfoyDgAgUnmOrvvTowDA4HjuBwBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAAP+TSilWAAAgjpyzm1QAAMIRqQAAhFMP6Kxt2/phAACPaZpmQKd1kwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAE6VSihUAAIgj5+wmFQCAcEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAANyoL9uZFQDgTZzXOyMQ3+Jzk9J00l9+q6rve4MAABDCFa72IKWXzaoUAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::shared<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Shared<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _3d"> </span>3/3</span></div><div class="t m0 xf he y1b5 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y1b6 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><memory></span></div><div class="t m0 xf he 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 he y1b8 ff6 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff11 fc0">value;</span></div><div class="t m0 xf he y1b9 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xf he 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 he 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 he 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 he 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 he 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="_ _40"> </span><span class="ffd fc7">//<span class="_ _6"> </span>copy</span></div><div class="t m0 xf he 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 he 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 he 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 he 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="_ _39"> </span><span class="ffd fc7">//<span class="_ _6"> </span>get</span></span></div><div class="t m0 x15 he y1c3 ff11 fs5 fc0 sc0 ls0 ws0">sh_ptr1.reset(<span class="ff6 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _3b"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 he 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="_ _41"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 he 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="_ _42"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 xf he 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI4klEQVR42u3dPUrEQBiA4WQ3g9XgGcRqL6CoWFgIIih4Ki/hKSzsBIstxNrSG1gtUzkY4wEWBX/YTJLnKVNlvmHgZVKk3t0/qgAAoBgvj8uZKQAAUBqRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAAxKYwQFms9nzw/3688XxyeGAwCIVPrRth96FACYMp/7AQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAwN/UOWdTAACgHCEEN6kAABRHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsDHNpFabUrLl4xNjNARnBAcNGBk3qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDge40R8FPvbXt4cbX+/Onu1nDgH+2dXzpowGTVOefprDalZMvHJ8ZoCM4IDhowJiEEn/sBACiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAEDfpvXHKQAAyuePUwAAlEikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAIasGdC7ppRsGADA78QYB/S2blIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpRgAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAOhRnXM2BQAAyhFCcJMKAEBxRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAC9a1bXO6YAAHzl9fTGENiwxcFZXW9vdau3quq6zkAAACjCJ/wOO6HnUQ28AAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::weak<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Weak<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _43"> </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<span class="_ _6"> </span>ptr<span class="_ _18"> </span></span>is<span class="_ _d"> </span>simply<span class="_ _d"> </span>a<span class="_ _18"> </span><span class="ffe">std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span></span>that<span class="_ _d"> </span>is<span class="_ _d"> </span>allo<span class="_ _3"></span>wed<span class="_ _b"> </span>to<span class="_ _d"> </span>dangle<span class="_ _d"> </span>(pointer</div><div class="t m0 x1 ha y1c8 ff4 fs6 fc0 sc0 ls0 ws0">not<span class="_ _d"> </span>deallocated)</div><div class="t m0 xf hc y1c9 ffd fs7 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _18"> </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="_ _2a"> </span></span>sh_ptr(<span class="ff6 fc4">new<span class="_ _2a"> </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="_ _2a"> </span></span>sh_ptr;</div><div class="t m0 xf hc y1cc ffa fs7 fc0 sc0 ls0 ws0">sh_ptr<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>w_ptr.expired();<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _2a"> </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<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Weak<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _43"> </span>2/3</span></div><div class="t m0 x1 ha y1ce ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _d"> </span>must<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _d"> </span>converted<span class="_ _b"> </span>to<span class="_ _30"> </span><span class="ffe">std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span></span>in<span class="_ _d"> </span>order<span class="_ _b"> </span>to<span class="_ _d"> </span>access<span class="_ _d"> </span>the<span class="_ _b"> </span>referenced<span class="_ _d"> </span>object</div><div class="t m0 xf ha y1cf ff6 fs6 fc0 sc0 ls0 ws0">std::weak<span class="_ _6"> </span>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<span class="_ _6"> </span>count<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _d"> </span>the<span class="_ _d"> </span>number<span class="_ _d"> </span>of<span class="_ _d"> </span>objects<span class="_ _d"> </span>referring<span class="_ _b"> </span>to<span class="_ _d"> </span>the<span class="_ _d"> </span>same<span class="_ _b"> </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="_ _d"> </span>the<span class="_ _d"> </span>managed<span class="_ _b"> </span>object<span class="_ _d"> </span>with<span class="_ _18"> </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="_ _d"> </span>whether<span class="_ _d"> </span>the<span class="_ _b"> </span>referenced<span class="_ _d"> </span>object<span class="_ _d"> </span>w<span class="_ _3"></span>as<span class="_ _d"> </span>already<span class="_ _b"> </span>deleted<span class="_ _d"> </span>(<span class="ffe">true</span>,</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="_ _d"> </span>a<span class="_ _18"> </span></span>std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">that<span class="_ _d"> </span>manages<span class="_ _d"> </span>the<span class="_ _b"> </span>referenced<span class="_ _d"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIk0lEQVR42u3ZMQ4BQQCG0R12oto4g6icQEQUCombuYSrSBQKB1C6gUq2Mgmrp0NilvfKrSb/Nl9mwnA8LQAAIBvH/a5jBQAAciNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAgFYpTZChbrdz2G6ev49mc+MAACKV77heb3oUAPhnnvsBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAe0JKyQoAAOQjxugmFQCA7IhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA/LqyRWet69oPAwB4TVVVLTqtm1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUA4D+FlJIVAADIR4zRTSoAANkRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAADwIeV5NbACAPAtp8XaCDwYTZYh9HvN+VIUTdMYBACALNwB8pQgpS81PnIAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff6 fs2 fc1 sc0 ls0 ws0">std::weak<span class="_ _8"> </span>ptr<span class="_ _8"> </span><span class="ff1">-<span class="_ _8"> </span>Weak<span class="_ _6"> </span>P<span class="_ _3"></span>ointer<span class="_ _43"> </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="_ _18"> </span><span class="fc7"><memory></span></div><div class="t m0 xf hc y1d7 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">sh_ptr1<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>sh_ptr1.use_count();<span class="_ _16"> </span><span class="ffd fc7">//<span class="_ _2a"> </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="_ _2a"> </span></span>w_ptr<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>sh_ptr1;</div><div class="t m0 xf hc y1da ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>w_ptr.use_count();<span class="_ _29"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _2a"> </span>1</span></div><div class="t m0 xf hc y1db ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">sh_ptr2<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>w_ptr.lock();</span></div><div class="t m0 xf hc y1dc ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>w_ptr.use_count();<span class="_ _29"> </span><span class="ffd fc7">//<span class="_ _11"> </span>print<span class="_ _2a"> </span>2<span class="_ _2a"> </span>(sh_ptr1<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>w_ptr.expired();<span class="_ _44"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>print<span class="_ _2a"> </span>false</span></div><div class="t m0 xf hc y1df ffa fs7 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span></span>w_ptr.expired();<span class="_ _44"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>print<span class="_ _2a"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI0ElEQVR42u3cMUrEQBSA4YzJYBU8g1hZpxCxFryZl/A4FjaBHMAbWC1bOSHEzkK7LMvOC993gsebFD8TknT38NQAAEA1Pj/er2wBAIDaiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAH6lUootAABQj5yzm1QAAKojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAAB2pAs06/F4dGAAANv0fR9oWjepAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVCsAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACcQSql2AIAAPXIObtJBQCgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAwH51gWbNOTswAIBt5nkONK2bVAAARCoAAIhUAABEKgAAiFQAAHanizv6sizTNDlCAID/hmEQqZfRtu0ODgAA4BzGcQydSV73AwAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAALqmLO/qyLE3TjOPoFAEA/hiGIfT8qZQSZdacswcOAGCbeZ4DVZ/X/QAAVEekAgAgUgEAQKQCACBSAQDgVJF+QRXokzQAAE7hJhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAIpTu83toCABDF1/ObJeze/eNLSjfX6+G7adZ1tRAAAKrwAxcBNZJP8A+ZAAAAAElFTkSuQmCC"/><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="_ _d"> </span><span class="fc0">introduces<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff6">Concurrency<span class="_ _b"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _d"> </span>to<span class="_ _d"> </span>simplify<span class="_ _b"> </span>managing<span class="_ _d"> </span>OS<span class="_ _d"> </span>threads</span></div><div class="t m0 xf he y1e1 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y1e2 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread></span></div><div class="t m0 xf he 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 he 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 he y1e5 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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 he 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 he y1e8 ff11 fs5 fc0 sc0 ls0 ws0">th.join();<span class="_ _45"> </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 he 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="_ _d"> </span>to<span class="_ _d"> </span>compile:</div><div class="t m0 xd hc y1eb ff17 fs7 fce sc0 ls0 ws0">$<span class="ffa fc0">g++<span class="_ _2a"> </span>-std=c++<span class="fcf">11<span class="_ _2a"> </span></span>main.cpp<span class="_ _2a"> </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 he y17e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y17f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread></span></div><div class="t m0 xf he y180 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><vector></span></div><div class="t m0 xf he 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 he 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 he y183 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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 he 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 he 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 he 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 he 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 he y188 ff11 fs5 fc0 sc0 ls0 ws0">th.join();</div><div class="t m0 x15 he y18a ff11 fs5 fc0 sc0 ls0 ws0">thread_vect.clear();</div><div class="t m0 x15 he 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 he y18b ff11 fs5 fc0 sc0 ls0 ws0">thread_vect.push_back(</div><div class="t m0 x20 he 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 he y18d ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJh0lEQVR42u3dP4pTURjG4Vy5B6sP1yBWFrYjjoUICjIwA2PhltyEq0iR1kILyQZs3IHV8BWOh4RYCFMkEq5D/pwkz1OeLm+aH+cWp3vy/OUIAACa8ePb1wdWAACgNSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIA7Xa3VCgAAtKOU4iYVAIDmiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAIAT0ptguMw0AtxbRBgBgIHcpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQCA9XoTsCW/bm9fvf+wdDidjC2zJWcXV6uHBgfgQHW1VisMlJlGgHuLCCMAMEQpxed+AACaI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAACwb16cAgCgLV6cAgCgRSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAACt600wXGYaATg1EWEEYPfcpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQCA9XoTwI7N5vPzy+ulw+lkbBl7AnCnq7VaYaDMNAJwaiLCCMCOlVJ87gcAoDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACWeBYVAIC2eBYVAIAWiVQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAcu94EAMAOzGbzZ6/fLB1+//LZMvxTV2u1AgAA7Sil+NwPAEBzRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAA7FhvguEy0wjA9kSEEQD+cpMKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAANbrTQBH5uziavVwOhlbBoAD0tVarTBQZhoB2J6IMALAaDQqpfjcDwBAc0QqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAA9s2LUwAAtMWLUwAAtEikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAOBU9SYYLjONsCoijAAAbJabVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACwXm+Cls3m8/PL66XD6WRsGQDguHW1VisMlJlGWBURRgAANqiU4nM/AADNEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAADYNy9OAQDQFi9OAQDQIpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIDW9SYYLjOP+wdGhH8ZAGiBm1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBgo7paqxUAAGhHKcVNKgAAzRGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQBoXW+C4TLTCGtEhBEAgI1wkwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAA/Jeu1moFAADaUUpxkwoAQHNEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAw9XffHxsBQCAOz/ffjLCfj198a7rHj1c3PwejRaLhUEAAGjCH/Z8du4dM1SlAAAAAElFTkSuQmCC"/><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="_ _46"> </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="_ _d"> </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<span class="_ _d"> </span>thread::<span class="ff6">get<span class="_ _d"> </span>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<span class="_ _d"> </span>for</span>(<span class="_ _a"> </span>sleep<span class="_ _d"> </span>duration<span class="_ _a"> </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="_ _d"> </span><span class="ffe">sleep<span class="_ _d"> </span>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<span class="_ _d"> </span>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="_ _d"> </span>object<span class="_ _6"> </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<span class="_ _d"> </span>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="_ _b"> </span>fo<span class="_ _3"></span>r<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>indep<span class="_ _c"></span>endently<span class="_ _10"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIb0lEQVR42u3YsQkCMRiG4UQMVsEBrrRyAhFrwbXcw3GucAg3uEpSmSZ2WntY5OB5Jvj50rwk7g6nAAAA3Xjcx5UVAADojUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAj1lqtAABAP1JKflIBAOiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIAfrRd0aynFgwEAzJNzXtC1flIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPAVp+tgBQCA2abzzQj/tT9eYtxu2vMVQmvNIAAAdOENyuIW8fRE//QAAAAASUVORK5CYII="/><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="_ _46"> </span>2/2</div><div class="t m0 xf he y1f9 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </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>should<span class="_ _6"> </span>(not<span class="_ _8"> </span>deterministic)</span></div><div class="t m0 xf he y1fa ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream><span class="_ _1c"> </span>//<span class="_ _6"> </span>produces<span class="_ _8"> </span>the<span class="_ _6"> </span>output:</span></div><div class="t m0 xf he y1fb ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread><span class="_ _1d"> </span>//<span class="_ _3a"> </span>child<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit</span></div><div class="t m0 x21 he y1fc ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _3a"> </span>main<span class="_ _d"> </span>thread<span class="_ _8"> </span>exit</div><div class="t m0 xf he 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 he 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 he 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 he 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 he 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 he 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>t2</span></div><div class="t m0 x16 he 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 he y204 ff11 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x15 he 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 he 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 he 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 he 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="_ _3a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>t1</span></div><div class="t m0 x15 he 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 he y20a ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y20b ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _6"> </span>if<span class="_ _8"> </span>t1<span class="_ _6"> </span><<span class="_ _8"> </span>t2<span class="_ _6"> </span>the<span class="_ _6"> </span>should<span class="_ _8"> </span>program<span class="_ _6"> </span>prints:</div><div class="t m0 xf he y20c ffd fs5 fc7 sc0 ls0 ws0"><span class="fcc sc0">//</span><span class="_ _3a"> </span><span class="fcc sc0">main</span><span class="_ _d"> </span><span class="fcc sc0">thread</span><span class="_ _8"> </span><span class="fcc sc0">exit</span></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="_ _d"> </span><span class="ff8">b<span class="_ _3"></span>y-value<span class="_ _8"> </span><span class="ff4">o<span class="_ _3"></span>r<span class="_ _d"> </span><span class="ff8">b<span class="_ _3"></span>y-p<span class="_ _c"></span>ointer<span class="_ _2a"> </span><span class="ff4">to<span class="_ _d"> </span>a<span class="_ _d"> </span>thread<span class="_ _d"> </span>function<span class="_ _b"> </span>wo<span class="_ _3"></span>rks<span class="_ _d"> </span>in<span class="_ _b"> </span>the<span class="_ _d"> </span>same<span class="_ _d"> </span>w<span class="_ _3"></span>ay</span></span></span></span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">of<span class="_ _d"> </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="_ _d"> </span>a<span class="_ _d"> </span>special<span class="_ _d"> </span>wrapp<span class="_ _c"></span>er<span class="_ _d"> </span>(<span class="_"> </span><span class="ffe">std::ref<span class="_ _b"> </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="_ _d"> </span>to<span class="_ _d"> </span>avoid<span class="_ _b"> </span>wrong<span class="_ _d"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>rs</span></div><div class="t m0 xf he y20d ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y20e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread></span></div><div class="t m0 xf he y20f 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 he y210 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 he y211 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 he y212 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y213 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 he y214 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 he y215 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="_ _47"> </span><span class="ffd fc7">//<span class="_ _6"> </span><span class="fce">wrong!!!</span></span></div><div class="t m0 x15 he 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="_ _39"> </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 he y217 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 he y218 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="_ _39"> </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 he y219 ff11 fs5 fc0 sc0 ls0 ws0">th1.join();<span class="_ _6"> </span>th2.join();</div><div class="t m0 xf he y21a 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="_ _d"> </span>Problem)<span class="_ _48"> </span></span>1/3</div><div class="t m0 x1 ha y21b ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>follo<span class="_ _3"></span>wing<span class="_ _d"> </span>code<span class="_ _d"> </span>produces<span class="_ _d"> </span>(in<span class="_ _b"> </span>general)<span class="_ _d"> </span>a<span class="_ _d"> </span>value<span class="_ _d"> </span><span class="ff12"><<span class="_ _b"> </span></span>1000:</div><div class="t m0 xf he y21c ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><chrono></span></div><div class="t m0 xf he y21d ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><iostream></span></div><div class="t m0 xf he y21e ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread></span></div><div class="t m0 xf he y21f ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><vector></span></div><div class="t m0 xf he y220 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 he y221 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 he y222 ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 he y223 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 he y224 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y225 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y226 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 he y227 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 he y228 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 he y229 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 he y22a 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 he y22b 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 he y22c ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 he y22d 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 he y22e 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="_ _49"> </span>2/3</div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _d"> </span><span class="fc0">p<span class="_ _3"></span>rovides<span class="_ _d"> </span>the<span class="_ _b"> </span><span class="ff6">mutex<span class="_ _d"> </span></span>class<span class="_ _d"> </span>as<span class="_ _d"> </span>synchronization<span class="_ _b"> </span>primitive<span class="_ _b"> </span>to<span class="_ _d"> </span>p<span class="_ _3"></span>rotect<span class="_ _d"> </span>sha<span class="_ _3"></span>red<span class="_ _d"> </span>data</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">from<span class="_ _d"> </span>being<span class="_ _d"> </span>simultaneously<span class="_ _d"> </span>accessed<span class="_ _b"> </span>by<span class="_ _d"> </span>multiple<span class="_ _b"> </span>threads</div><div class="t m0 x1 ha y22f ff6 fs6 fc0 sc0 ls0 ws0">mutex<span class="_ _d"> </span><span class="ff4">methods:</span></div><div class="t m0 xd ha y230 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="_ _b"> </span>the<span class="_ _d"> </span><span class="ff8">mutex</span>,<span class="_ _d"> </span>blo<span class="_ _c"></span>cks<span class="_ _b"> </span>if<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff8">mutex<span class="_ _2a"> </span></span>is<span class="_ _d"> </span>not<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 xd ha y231 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff6">try<span class="_ _6"> </span>lock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">tries<span class="_ _d"> </span>to<span class="_ _d"> </span>lock<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff8">mutex</span>,<span class="_ _d"> </span>returns<span class="_ _b"> </span>if<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff8">mutex<span class="_ _2a"> </span></span>is<span class="_ _d"> </span>not<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 xd ha y232 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="_ _b"> </span>the<span class="_ _d"> </span><span class="ff8">mutex</span></span></span></span></div><div class="t m0 x1 hb y233 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 y234 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _d"> </span>includes<span class="_ _b"> </span>three<span class="_ _d"> </span>mutex<span class="_ _d"> </span>wrappers<span class="_ _d"> </span>to<span class="_ _d"> </span>p<span class="_ _3"></span>rovide<span class="_ _d"> </span>safe<span class="_ _d"> </span>cop<span class="_ _3"></span>y<span class="_ _3"></span>able/movable<span class="_ _d"> </span>objects:</div><div class="t m0 xd ha y235 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">lock<span class="_ _6"> </span>guard<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _d"> </span>implements<span class="_ _d"> </span>a<span class="_ _b"> </span>strictly<span class="_ _d"> </span>scop<span class="_ _c"></span>e-based<span class="_ _d"> </span>mutex<span class="_ _b"> </span>ownership</span></span></div><div class="t m0 x6 ha y236 ff4 fs6 fc0 sc0 ls0 ws0">wrapp<span class="_ _c"></span>er</div><div class="t m0 xd ha y237 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">unique<span class="_ _6"> </span>lock<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _d"> </span>implements<span class="_ _d"> </span>movable<span class="_ _b"> </span>mutex<span class="_ _d"> </span>ownership<span class="_ _b"> </span>wrapp<span class="_ _c"></span>er</span></span></div><div class="t m0 xd ha y238 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">shared<span class="_ _6"> </span>lock<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++14</span>)<span class="_ _d"> </span>implements<span class="_ _d"> </span>movable<span class="_ _b"> </span>shared<span class="_ _b"> </span>mutex<span class="_ _d"> </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="_ _49"> </span>3/3</div><div class="t m0 xf he y1f9 ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><thread><span class="_ _1c"> </span>//<span class="_ _6"> </span>iostream,<span class="_ _8"> </span>vector,<span class="_ _6"> </span>chrono</span></div><div class="t m0 xf he 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 he 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 he y1fd ff11 fs5 fc0 sc0 ls0 ws0">m.lock();</div><div class="t m0 x16 he y1fe ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;<span class="_ _3e"> </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 he y1ff ff11 fs5 fc0 sc0 ls0 ws0">m.unlock();</div><div class="t m0 x16 he 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 he y239 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y201 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he 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 he y203 ff11 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>mutex<span class="_ _6"> </span>m;</div><div class="t m0 x15 he 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 he 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 he 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 he 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 he 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 he y209 ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 he 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 he y20b 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkElEQVR42u3YMUoDURSG0Xkyl1QP1xBSuQKR1EJ2lk24nBQuwh2kCq/yNmMXtFMxcgfOWcDw+Kf5uG33uJ8AAKCMt9fTnRUAAKhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAcNUy0woAANQRES6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4J/NK3rrGMMPK6v3bgQA4K+4pAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAF+0zLQCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgE/mFb11jOGHAQD8Tu99Ra91SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAADWqWWmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAMAPzZfj1goAAHzf+fnlpt9/eDq0dr9ZLu/TtCyLwQEAKOEDZEYgABluCQUAAAAASUVORK5CYII="/><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="_ _d"> </span>class<span class="_ _d"> </span>template<span class="_ _b"> </span>defines<span class="_ _d"> </span>an<span class="_ _d"> </span>atomic<span class="_ _b"> </span>type<span class="_ _d"> </span>that<span class="_ _d"> </span>a<span class="_ _3"></span>re<span class="_ _d"> </span>implemented</span></div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">with<span class="_ _d"> </span>lock-free<span class="_ _d"> </span>op<span class="_ _c"></span>erations<span class="_ _b"> </span>(much<span class="_ _d"> </span>faster<span class="_ _d"> </span>than<span class="_ _d"> </span>locks)</div><div class="t m0 xf he y23a ffd fs5 fcb sc0 ls0 ws0">#<span class="_ _24"> </span>include<span class="_ _1c"> </span><span class="fc7"><atomic><span class="_ _1c"> </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 he y23b 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 he y23c 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 he y23d ff11 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 he y23e 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 he y23f ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y240 ff11 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf he y241 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 he y242 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 he y243 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 he y244 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 he y245 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 he y246 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 he y247 ff11 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 he y248 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="_ _3a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1000</span></div><div class="t m0 xf he y249 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="_ _4a"> </span>1/2</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span><span class="ff6">future<span class="_ _b"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _d"> </span>p<span class="_ _3"></span>rovides<span class="_ _d"> </span>facilities<span class="_ _d"> </span>to<span class="_ _b"> </span>obtain<span class="_ _d"> </span>values<span class="_ _d"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>returned<span class="_ _d"> </span>and<span class="_ _d"> </span>to<span class="_ _b"> </span>catch</div><div class="t m0 x1 ha y6b ff4 fs6 fc0 sc0 ls0 ws0">exceptions<span class="_ _d"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>thrown<span class="_ _b"> </span>by<span class="_ _b"> </span><span class="ff8">asynchronous<span class="_ _2a"> </span></span>tasks</div><div class="t m0 x1 ha ye0 ff4 fs6 fc0 sc0 ls0 ws0">Asynchronous<span class="_ _d"> </span>call:<span class="_ _5"> </span><span class="ffe">std::future<span class="_ _1c"> </span><span class="ff6">async</span>(function,<span class="_ _1c"> </span>args...)</span></div><div class="t m0 x22 ha y24a ff4 fs6 fc0 sc0 ls0 ws0">runs<span class="_ _8"> </span>a<span class="_ _2a"> </span>function<span class="_ _2a"> </span>asynchronously<span class="_ _2a"> </span>(p<span class="_ _c"></span>otentially<span class="_ _8"> </span>in<span class="_ _2a"> </span>a<span class="_ _2a"> </span>new<span class="_ _2a"> </span>thread)</div><div class="t m0 x22 ha y24b ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _d"> </span>returns<span class="_ _b"> </span>a<span class="_ _30"> </span><span class="ffe">std::future<span class="_ _18"> </span></span>object<span class="_ _d"> </span>that<span class="_ _d"> </span>will<span class="_ _b"> </span>hold<span class="_ _d"> </span>the<span class="_ _d"> </span>result</div><div class="t m0 x1 ha y24c ff6 fs6 fc0 sc0 ls0 ws0">std::future<span class="_ _d"> </span><span class="ff4">methods:</span></div><div class="t m0 x9 h5 y24d ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">T<span class="_ _a"> </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 y24e 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="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>the<span class="_ _b"> </span>result<span class="_ _b"> </span>to<span class="_ _b"> </span>b<span class="_ _c"></span>ecome<span class="_ _b"> </span>available</span></span></span></div><div class="t m0 x1 ha y24f ff6 fs6 fc0 sc0 ls0 ws0">async()<span class="_ _d"> </span><span class="ff4">can<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _d"> </span>called<span class="_ _b"> </span>with<span class="_ _d"> </span>tw<span class="_ _3"></span>o<span class="_ _d"> </span>launch<span class="_ _b"> </span>p<span class="_ _c"></span>olicies<span class="_ _d"> </span>fo<span class="_ _3"></span>r<span class="_ _d"> </span>a<span class="_ _b"> </span>task<span class="_ _d"> </span>executed:</span></div><div class="t m0 x9 h5 y250 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 y251 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 y252 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="_ _4a"> </span>2/2</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"><future><span class="_ _25"> </span>//<span class="_ _2a"> </span>numeric,<span class="_ _2a"> </span>algorithm,<span class="_ _2a"> </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="_ _2a"> </span><span class="ffa fc6"><</span>typename<span class="_ _2a"> </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="_ _2a"> </span><span class="ffa fc0">parallel_sum(RandomIt<span class="_ _2a"> </span>beg,<span class="_ _2a"> </span>RandomIt<span class="_ _11"> </span>end)<span class="_ _2a"> </span>{</span></div><div class="t m0 x6 hc yd5 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">len<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>end<span class="_ _11"> </span><span class="fc6">-<span class="_ _2a"> </span></span>beg;</span></div><div class="t m0 x6 hc yd6 ff6 fs7 fc4 sc0 ls0 ws0">if<span class="_ _2a"> </span><span class="ffa fc0">(len<span class="_ _2a"> </span><span class="fc6"><<span class="_ _2a"> </span>1000</span>)<span class="_ _4b"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>base<span class="_ _2a"> </span>case</span></span></div><div class="t m0 x14 hc yd7 ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _2a"> </span><span class="ffa fc0">std<span class="fc6">::</span>accumulate(beg,<span class="_ _2a"> </span>end,<span class="_ _2a"> </span><span class="fc6">0</span>);</span></div><div class="t m0 x6 hc y105 ffa fs7 fc0 sc0 ls0 ws0">RandomIt<span class="_ _2a"> </span>mid<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>beg<span class="_ _11"> </span><span class="fc6">+<span class="_ _2a"> </span></span>len<span class="_ _2a"> </span><span class="fc6">/<span class="_ _2a"> </span>2</span>;</div><div class="t m0 x6 hc yd9 ff6 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _2a"> </span><span class="ffa fc0">handle<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </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="_ _2a"> </span>right<span class="_ _2a"> </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="_ _2a"> </span>mid,<span class="_ _2a"> </span>end);</div><div class="t m0 x6 hc ydb ff6 fs7 fc5 sc0 ls0 ws0">int<span class="_ _2a"> </span><span class="ffa fc0">sum<span class="_ _2a"> </span><span class="fc6">=<span class="_ _2a"> </span></span>parallel_sum(beg,<span class="_ _11"> </span>mid);<span class="_ _17"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>left<span class="_ _2a"> </span>side</span></span></div><div class="t m0 x6 hc ydc ff6 fs7 fc4 sc0 ls0 ws0">return<span class="_ _2a"> </span><span class="ffa fc0">sum<span class="_ _2a"> </span><span class="fc6">+<span class="_ _2a"> </span></span>handle.get();<span class="_ _4c"> </span><span class="ffd fc7">//<span class="_ _2a"> </span>left<span class="_ _2a"> </span>+<span class="_ _2a"> </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="_ _2a"> </span><span class="ffa fc0">main()<span class="_ _2a"> </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="_ _2a"> </span></span>v(<span class="fc6">10000</span>,<span class="_ _2a"> </span><span class="fc6">1</span>);<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _11"> </span>init<span class="_ _2a"> </span>all<span class="_ _2a"> </span>to<span class="_ _2a"> </span>1</span></div><div class="t m0 x6 hc y253 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _2a"> </span><span class="fc6"><<<span class="_ _2a"> </span><span class="fca">"The<span class="_ _2a"> </span>sum<span class="_ _11"> </span>is<span class="_ _2a"> </span>"<span class="_ _2a"> </span></span><<<span class="_ _2a"> </span></span>parallel_sum(v.begin(),<span class="_ _11"> </span>v.end());</div><div class="t m0 xf hc y254 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>
|