1829 lines
809 KiB
HTML
1829 lines
809 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:0.915000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff6;src:url('data:application/font-woff;base64,d09GRgABAAAAAAhEAA0AAAAACwAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAIKAAAABoAAAAcnt++Y0dERUYAAAgMAAAAHAAAAB4AJwAVT1MvMgAAAaQAAABBAAAAVlXmXsZjbWFwAAACDAAAAFgAAAFKEnUh7mdhc3AAAAgEAAAACAAAAAj//wADZ2x5ZgAAAoQAAAOiAAAERLbidsRoZWFkAAABMAAAADMAAAA2JPFCU2hoZWEAAAFkAAAAHQAAACQE5AEfaG10eAAAAegAAAAjAAAAKAVFAUNsb2NhAAACZAAAACAAAAAgBYAGlG1heHAAAAGEAAAAHgAAACAAVAA0bmFtZQAABigAAAGqAAAC8Y+HyiNwb3N0AAAH1AAAADAAAABAACUAsHicY2BkYGBgYmRb9XpPYzy/zVcGbuYXQBGGh/frreC03H82xi9M74BcDgYmkCgAhzMNdgB4nGNgZGBgevefDUgKMwAB4xcGRgZUwAoAUD4DBwAAAHicY2BkYGDgZzBkYGYAASYgZmQAiTmA+QwACNwAiQAAeJxjYGR8xjiBgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBlZoABRgYkEJDmmgKkFBgsmd79ZwOqfMfwC6YGAPcsC1cAAAB4nGOUYAADRl8QwcDAJMxgzaDFEMOgA4RyDBpgGggBJ74CjQB4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYFBgs//8H8hUY9P/////4/1WoeiBgZGOAcxiZgAQTAypghFiBBFhY2dg5OLm4eXj5GIYFAABOhgmQAAAAAAAAAAAAAAAmAGAAfAC2APQBEgFCAXwBmgHcAiJ4nFWTy08bVxTG75mxZ4INE+zOGBdcu+PBM37QwZ5n/MBjGwwGF0MhbWKJIBqIiJM+SQkFVSWtwiJSImVRVU0TNavKahfpLpWyrNq0Uf4AVqg7hBSpqyir1OmdoUTtaHR1Nud83/199yBA+RcU7BJ/IQ4hYGlgSCEq6poJRVJVArDr7twiCeoY5elxw+q/FbFLdT9v0i4P2eOhusm2UyFEoOSLJ3BAfI+Oo5gzjRKikj3MUJW+AK3Jrijj4ti+MKiKacCBmNv+NCsruUvr+eFTBOUPZSqZkJ8iOJ8lNKJBqH41vdma/+6H+ZXW3Dd8vJ5W+/vVdD3O75QU+XQJ4Q/QAj4eYk0GoQToqo+i9SJhqj4VHnbu7GinEsZcOLBjwXOOsIAOh/7+9rBvCB97uE90+opg2j+ha6IQpWgJOw5wLEPQDBzHbo08wF7ndO9yd1fdKw1GT5YKZXZYv7X6mU8MBo+NeW6vUUHqlypzxttV9sbiE9Lo3HQtf3e7GdEzwQCtd10DWxPz2ceaCYRiLIYjSqbNwsCqKdANbOFIvwiOAYoOA+x/sVRYS/UMfmhmq+Vyo0bq+dwbQ81Qgr9oza4VzOL8/be21HR5WG0UzPmKG7oaQ8lM2sgN55sl5UzIv2hnE8b3fUrcRB6bVEzgBJ3XAWMSfBQJT8+/0zkA7/L5n+FRu92uQLvThMv5zm+HrOLY9x7ujfzf90tcgo/neM5mBnvXzuYvxMRXm0ogmRqw4oOWbxLOdZ6krfmNxwtXNbmQyjD8qPz2uCTB5eqj+JfY2xGXfiTZCjRDCFEZD7ffDeco2LNpDVccxQWc17NfZnlLTEyNxdvrWcM0Z895ZldqSwtbxXFg37NiA3+2qmx/kJ+88e7t31mL227NXl+5t5h1cz+dSDpZPMOaN1EvviBDcoLmN/F4HAMP+1KtLi9eXf8cZ/oYHhBT8Ytf/7r6I2QuwTTmQb70yyEepRwm9s4YpozzM45yIx02HIvtGq9oolMq2PeVB1caFf3NjXsbdaM8s1AtjIxNmScmYeqjqfoH9ftzm5tzuUXW19DHW61xbcbHLoJbKZUUfaTYeVaenCyPTkz8h1kEpe1ds1fNtKVMxnW4wUVCVcIkrUkyXmkaq/c58nffb1hReaRy1uPyCmLh9dpShQtVE5FsPjWwBNAdVKKWGAnxWxMwc+cPOSd+8rG7O8T23li+MMr1DfjT9S2il3rNGIkZQydnk9rCP2RT6yMAAHiclVLNTttAEP7WJEGVqnBAvRU0RxCy5dg5AEcQIEVNQDFBXDewSawEL7KDorxCn6Xi2EfpI/AcfFmvKjW32vLMNzPfzt8aQBvvUKifh79YYVd98zhAS514vIMT9dPjBvbUH4+baAcNj1vYC1IyVeMLrV/u1AYrtFXT4wBf1YHHO3hQiccNHKrfHjfxXX143MJhsI9LWLxijRI5pphhCUGCmG+KkG+Nz+gdkyW4QETZg8YT5jy7QkWd06dR4NnFIvQda+DiNXPDOKJduEyGlTQWmNCyTt7T90g9QoYrDCkFN9S39NzROmZGXNrXdZlPZ0tJ4jgNQ8ozGa/lIpKefprbVTXPRRfP0ov6kQzsis5cjmwhYzPTi4nYidybRxllV8NMboa3o7vsmHl/sOHMDVDhlGY/00VFsBmgxItrFQNbvmjqazfF0umSOzNuYxG3JDjn92+ykDMYst6YQpNfc1J0GOn4/SboMq0tlte2nBpJoljOxTcRDs30baFLetJO2OHISXe74e0a2Dq7+QsN/RVvob6But+YdYVBU1Y5d8S6cVf+O/knEHl8nAAAeJxtw7ENgCAAALCKB5gIgoKjb3urEmaaVDB8r8fM1i+C1S5KDllxulTN/QNuGwLVAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQj4gZgHzGAAEOAA9eJxjYGBgZACC2wr734Hoh/frrWA0AFNnB5wAAA==')format("woff");}.ff6{font-family:ff6;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff7;src:url('data:application/font-woff;base64,d09GRgABAAAAACjsABAAAAAASNgAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAo0AAAABoAAAAcnt++Y0dERUYAACi0AAAAHAAAAB4AJwBST1MvMgAAAeAAAABGAAAAVlXoGRdjbWFwAAADFAAAAOcAAAGq9LhogmN2dCAAAAt8AAAAKgAAADQLcgJwZnBnbQAAA/wAAAbwAAAOFZ42EcpnYXNwAAAorAAAAAgAAAAIAAAAEGdseWYAAAxEAAAZ8gAAMER8D40aaGVhZAAAAWwAAAA0AAAANiZXQlNoaGVhAAABoAAAACAAAAAkBlUC2WhtdHgAAAIoAAAA6QAAATCYgxCtbG9jYQAAC6gAAACaAAAAmqftm/5tYXhwAAABwAAAACAAAAAgAW0Br25hbWUAACY4AAAB2gAAAz92JptBcG9zdAAAKBQAAACYAAAAwdgEciZwcmVwAAAK7AAAAI8AAACnaEbInHicY2BkYGBgYmTjnfJXPJ7f5iuDPPMLoAjDw/v1VjD6/+H/bMwLmd4BuRwMTCBRAHC8DcB4nGNgZGBgevefjYGBecP/w/+vMS9kAIqgAB8AqtgHMgABAAAATABJAAUAAAAAAAIAIABIAI0AAABuARwAAAAAeJxjYGTMZZzAwMrAwNTFtIeBgaEHQjM+YDBkZAKKMrAyM4BBA1DQgQEBAtJcU4CUwm9mpnf/2YAq3zH8AvIZQXIA/4sMYwAAeJwtTz1PAkEUnPf2Gs/kGmNy8Q4bSUhAChtzdEpjYYg5AwXNBiIN4T8cDfwJfoGJBYTCyk5bGyrLK62oCC3Mrm4yO+/NvNkPieGXdNwGmHtkMsMTkckOd+aEfI4h/VPPO6/Xif4/O6REzddu5geZLpASQy3Q1g0G2oPVFrFg/wXLOavv1CuwZoIRtYGWzBXkOdHAtb6iqkuficwKkb7w7hK3GuBZPugFqJKv5AaJewP7HFs8Snj4lF90WefmArnT6V+6nM/0mJ/yzWOcee+bZ78hIsPVsqbHf5gQe31AovEfTBPJEbnkN6MAAAB4nGNgYGBmgGAZBkYGEFgC5DGC+SwMHUBajkEAKMLHoMCgymDKYMFgxWDP4MkQwBDOEMVQpSCpoPSb+f9/oDqQvAZU3pHBmyEIKJ8Ilmf4////4//3/9/9f/v/rf/X/l/9f+X/5f8X/59+oPtAldUDai8ewMjGAFfEyAQkmNAVQLwAdDEDKxs7BycXNw8vH7+AoBADgzCDCEhGlEFMXEJSSlpGVo5BXkFRSVmFQVVNXUNTi4FBG2KGjq6evoGhkbGJqZm5haWVtY2tnb2Do5Oziysh5yGAO/FKwcANxvD0IqQUAEwlL3UAeJytV2tbG8cVntUNjAEDkrCbdd1RxqIuO5JJ6zjEVhyyy6I4SlKBcbvrNO0uEu79kvRGr+n9ovyZs6J96nzLT8t7ZlYKOOA+fZ7yQeedmXfmXOfMQkJLEg+jMJay90Qs7vao8uBRRLdcuhEnj+XoYUSFZvrRrJgVg4E6cBsNEjGJQG2PhSOCxG+Ro0kmj1tU0KqhGi0qajk8Ltbqwg+oGsgk8bNCLfCzZjGgQrB/JGleAQTpkEr9o3GhUMAx1Di82uDZ8WLd8a9KQOWPq04Va4pEPzqMx6tOwSgsaSp6VA8i1kerQZATXDmU9HGfSmuPxjechSAchFQJowYVm/HeOxHI7iiS1O9jagts2mS0Gccys2xYdANT+UjSBq9vMPPjfiQRjVEqaa4fJZiRvDbH6Daj24mbxHHsIlo0HwxI7EUkekxuYOz26Bqja730yZIYMONJWRzE8TCNyfHiOPcglkP4o/y4RWUtYUGpmcKnmaAf0YzyaVb5yAC2JC2qmHAjEnKYzRz4khfZXdeaz7/ghQMqrzewGMiRHEFXtlFuIkK7UdJ30704UnEjlrT1IMKay3HJTWnRjKYLgTcWBZvmWQyVr1Auyk+pcPCYnAEU0Mx6iy5oydYuwq2SOJB8Am0lMVOSbWPtnB5fWBRB6K83poVzUZ8upHl7iuPBhACuJzIcqZSTaoItXE4ISRdGTqxEalW6bVUsnLOdrmOXcD917eSmRW0cOl6YF8UQWlzViNdRxJd0ViiENEy3W7SkQZWSLgVv8AEAyBAt8WgPoyWTr2UctGSCIhGDATTTcpDIUSJpGWFr0Yru7UdZabgdX6eFQ3XUoqru7Ua9B3bSbWC+auZrOhMrwcMoW1lBClOflj2+cigtP7vEP0v4IWcVuSg2+1HG4YO//ggZhtql9YbCtgl27TpvwU3mmRiedGF/F7Onk3VOCjMhqgrxCkjcGzuOY7JV1yIThXA/ohXly5AWUX4LUJygFGuYSWDDf65cccSyqArf9zkSNRiCtaw269GHnvs84rYKZ+teiy7rzGF5BYFn+TmdFVk+p7MSS1dnZZZXdVZh+XmdzbC8prNZll/Q2QWWnlaTRFAlQciVbJPzLl+bFukTi6vTxffsYuvE4tp08X27KLWgS955DrOv/7a+sqMn/WvAPwm7nod/LBX8Y3kd/rFswj+Wa/CP5RfhH8sb8I/ll+Afy3X4x7KtZcdU7k0NtVcSGbAJgcktbmObi3dD002PbuJivoA70ZXnpFWlm4o7/DMZLnv/5Umus8VKyKVHL6xnZaceRuiO7OVXToTnPM4tLV80lr+I0ywn/KxO3N8zbeF5sfovwX/b99Rmdsups6+3EQ84cLb9uDXpZote0u3LnRZt/jcqKnwA+stIkVhtyrbscm9AaO+PRl3VRTOJ8AKi/eJp2nSceg0RvoMmtkqXQSuhrzYNLZsXPl0MvMNRW0nZGeHMu6dpsm3PowpuQ86WlHBz2dqNjkuyLN3j0lr5udjnljuH7q3MDrWTUCV4+t4m3Pbs81QKkqGiMl5XLJeC1AVOuOU9vSeFaXgI1A5yrKBhh5+uucBowXlnKFG2uVZwiZGMMgqu/JlTcSIb0WQjivjNW+qnulAInUksJGbLa3ksVAdhemW6RHNmfUd1WSln8d40hOyMjTSJ/agtO3jZ2fp8UrJdeSqo0sTo/smPGJvEs6o9z5bikn/1hCXBJF0Jf+k87fIkxVvoH22O4g5dDqK+i8dVduJ2tuHUcG9fO7W65/ZPrfpn7n3WjkDTHe9ZCrc13fVGsI1rDE6dS0VC27SBHaFxmetzzUY+xZeab13nAlW4Pm3cPHv+js7m8OhMtvyPJd39f1Ux+8R9rKPQqk7USyPO7eyiAd/xJlF5HaO7XkPlccm9mYbgPkJQt9cenyW44dU23cYtf+Oc+R6Oc2pVegn4TU0vQ7zFUQwRbrmDF3gSrbc1FzS9BfhVPRZiB6AP4DDY1WPHzOwBmJkHzOkC7DOHwUPmMPgacxh8XR+jFwZAEZBjUKyPHTv3CMjOvcM8h9E3mGfQu8wz6JvMM+hbrDMESFgng5R1MjhgnQwGzHkdYMgcBofMYfCYOQy+bezaBvqOsYvRd41djL5n7GL0fWMXox8Yuxj90NjF6EfGLkY/Row70wT+xIxoC/A9C18DfJ+DbkY+Rj/FW5tzfmYhc35uOE7O+QU2vzI99ZdmZHYcWcg7fmUh03+Nc3LCbyxkwm8tZMLvwL03Pe/3ZmToH1jI9D9YyPQ/YmdO+JOFTPizhUz4C7ivTs/7qxkZ+t8sZPrfLWT6P7AzJ/zTQiaMLGTCh3p80XziUsUdlwrFEP89oQ3Gvkezh1S83j+aPNatTwC4CgP0eJxj8N7BcCIoYiMjY1/kBsadHAwcDMkFGxnYnTaJMzJogRibeTgYuSAsETYwi8NpF7MDAyMDN5DN6bSLAcLeycDMwOCyUYWxIzBig0NHBIif4rJRA8TfwcEAEWBwiZTeqA4S2sXRwMDI4tCRHAKTAIHNfGyMfFo7GP+3bmDp3cjE4LKZNYWNwcUFAKtGKvUAeJxjYMAC/IDQjsGOaRsDA9M2xj0MDP/tmA7+f8V0kPHs/6//jQGH6wvmAAAAAAAAAAAAAAAAAIgAtADgAVIBjAHGAeACAAIoAqIC9ANoA/wEQATWBW4FrgYEBk4GrAb2BzYHfge6CAoIQghiCJgIxAkiCVgJrgnyCkAKuAruCzILbAvEDAYMlg0kDXAN8g5ODrIPbg/CD/4QSBCMEKwREhFgEaQSEhJuErATIhNqE8oUDBRqFKoU+hVMFXoVlBYeFrwXTBgiAAB4nK1aC3Rb1ZW95z7pSbJkSU9ff2Xrb1uxnViW5E/syLEdO5at2JadWE4cf5LgGCgQaCnpQAiEBEhJC5SZlhko7QwUptCZTEOcTpthNXR1lRTKlE4p0850wZpZdNqu6WcWpX8rc+59evrYIm1nTZajz7336Z17zj7n7HPeJWrSceUlQUt/SspIJfGRKBkm3fEOAYCIGhBXiIYQtYasEDXR6tTaFaKjVJcmOh1dVAHV0YmhQVvI5rM7HD5LmaYuBDbRE4i0R8NtDr8Nf8CL32LAvlrzM9Ae8HqMgt3mEsJt0XXfxiZvmJ7qiE3CDm0mqTNoDRo4py/TGj6QHc+QYK1YbjPpDSa7XqwNwpeKv1Pf9Ptv2bP7llvmRcOa2WzQWujPzYa1v8+OQk/HlCDVxALBjmozTWWeLvpKgOy6IsIo6sNGpLgRv8NJQsitlWaqqQipvQGpPdYrxMKiRmQCw2jPl1vNDS0V1p6Z0KZaX2fdb8/CwKeOhXbGKi0zR+98ct+nDuz14Q8A6lmEyIbfrXKy30VVGQWNNxqLRtpbhGDYAZHiX3X0fPm363/VcZb/bhza4Bz+bi/ZEm/pbPVXmUWRoGBEJYAqrQaB4r0EtKBKBYsEVDARCLgCAY+oqWHW8npawWG3cUO1xzTye3QbtNAg+9BWB1mj2W2amPwumsBFnQ445zDo7XNau9Hg0C5Y9AaH3vQ+d69TMDoqTEslhuF5yWqO32aVLJLFelt/uVUqN2i7LfXlVGeRrPrBkjNZ3X2OvkaHiJVsjjfjxlQnmQJPiWoqECLsYe8CmceNCmQXXmAlFovbY3FrNNUhYvO6JZsnIrk97WG31N5ml9z0NXfmRw2ZH7rdUNEATjDmPle43ZkfEn7PxSsnyPMkRUQydZ4AUBhNnC0bn4lLOAnkCKEU5vGTCZLVibMenDCzq04Vjq8bskAynT4vSZKgqQzFNN6YNxJ+vqmxsjIFx+5IsaV6cgls5He4jYq4Hb8T2MNuNs/mdkkcgn53xA22zK9Ad6lLlhNfmZwCaZDl0GcvISaCIuS+WUgy/bz8G2F241QqlcPllxA/piJcOm1sISgu3C77MHxJnXlWNGkNaphmb/R76vLfT9oMWnW58Hc2A15ISdOVH8Nl+hnEeYAcTZytR4nsTAOIPTCOETQUk9hOFLVZ8Z5UALpSPNVcaqqC7agiP4rGT2fnBDKRTqdXA02NPpWmikluBK+nBRiKY72Awjsd1BxsEbwe5rpOR7gtBpcbKtKx+u5tVk+gZl/bpnRNS9Iq6qpC1eP1klQ3OV4HOz6+p73L1tWc+sgnpnqjre3pzH8B7TBJDY5DsT873nPDdVyHaXx5BvdsIDefx7AoMKywjVeiWBQ9kDmfcUwNBYaRN18pgzm7qmjBe80xO6bjOoSRRTIzJ26ESFgSNZFoLCyF4ZnMhTvC4ye6bXd0Ua2Ddql71h7hMjbhyyWUMUQOxfVOiWkQ/YWOKiZCiC+inWQTFUtpRbOyOLJSOLVxlEu2ui/UZGYWQLG2Qa8Q4dGdagJBjChy/DCCRv7DcN8NcClz5PYxV22DlOx3b66z6CQ1qHTqlkcWPuCtr9ftKNMcsb5PrBBX47cP1dV1RF29eyu3tHoq1CAaNE/eMRtM+Ot1W3XiDWaQ95nFXxP5bNzYUOeyqqiAAQKostVahh6U+zjKrVrklmE+UozK6twiFSpJJawUL2m+2hKO0vqNsyhdOrsGOFov+BsCPo8ao5SfBeBgzIU4ZSmAhgDN2QtceaImyPGLgVfjArh8NH37hL7+2mhHv74qFhhKqJo7u5s277b76pa7Etd1xDomn584enjrlujkVsemVlePCGVjrc1bOtqi7V0z8ba5WmmO+WkNSvEGfRDzvpEknxcxMSTkrTuIoBJOospULHOoyGElmpWaYDEtbtTr9Ua9EQEpmVnM9Xvt3og7YkU8eiVRgDcO7Mr8am3vgefgy88++2wPYnQGbt+W+Qq3VxDtdQnlqCdfj+trgGJmZYBHY9WiMH5UHnMopka1qFIvI0TFRSKKUgmjeTcsFtEKIi1hvD+4lBux4b1XbTBmvMyDLtlg92g0tbI9A7JBsz4garyS2+628zh66a7Z7oP1bsfuLVprc3311saGLuN22JX5TUtP8saX95+IbupobKeWuoHWVLLZA0firzaewEigYNtJvKSVPLlq1yGyIIdrgajUgmqlINqq1RtwnQ+e8uKiJc1XW5LF9YZZZIjp7Bq1rAqdz+drauIUw5+lFtFYCyhEguFY4Dqx2zAOR60Fn+HybTO7j+7q6u25aXL8SE9vx8RUf2dsgP0Xxto2J4dj7SOI79sme+dstlTz0OHDQ80pm3UfCOHtfe2Rvr7MO0PDQ8MDIzsR4zw3wkUUVUNmZQXYGehYNpZYoKPzqCwTVbZeYtJCeahDewtAlgtGMdRhDOahzor5VMrm1BSspDIDLLXi/Tvw556glzAXVpC98TIzxlgTug4Dt4dbjPExojquBF/bGIYjYR7vYhLwtleZtwjJ9AXJ4g3YWfjAbCfWghczHUYPTHA80AooETzRudx/s/fI9FZncvaa9CdSKRoY3rzn5mj9s4v1m+Zi2yJza4+lSDYe0GN0FTUlkdHzepCBxVWGARkVoILDeGPjGDq/nABKjLMUEC/XarWSVmLaEVE7bm/QrfFC2CoEgl6RxX16bN9o5vtjI6CeGdpbK4AYqTRWvfIKXc0kAVIO9yPDgSHCUjrajy6hTEbiIHVk5ryhQCoF7ssKvZLhnktPV5nnUurcXneTO4dRt5SDZqA9EAJ7uM3J3nE4Spc+em3m1z9ZeXD/8MRNK+9PHXv/4n1/NvHQoxO3XEwcoauHd8SmLOVL3z04+Kuvd09mfjrG49r2K+/SBH0R41pTPGjCZFtvpgImIcU7bWMFrCYQ9HsZkvwiY+DBgJlRbafDiWkzUEBYojGa6Pb5+0/O798/fzLaGGozhhqD4YXBgYHBhe1ef6zZp9OvrEDDtStarW3SZTDs3vOho3t2G/QBbuMFfHkU9alFG/cq/pBXT2F2LzHO1Lbq9rk9MsFiOnO3OTQ5LT167s7Mb0A8fm736WsfffTa0zD9ka/R1X9++MRn1r74BNfJfrx/Ez2HBH3i/8mIE5I0odAgDK8YatB0GGYlzi1oU6YdXriA7OE0jGRWX8MPx+i5PvhJT2YNsvIYUZ5yMijLo3DLZbyBal7mBllnLD0l+yH+G+d+mL8/BntqPIs3PAEtmW+l4Sy9GX7Xk/kq3k3Gxm6ODay1yxEbRlDTGhCYOwmqUQyjKkEtb3oDVCQLgsXNYXs1qETQ++nugzfIUOlsbW8xbdoU6pChMrjtnm8FtshA0RsrJ/0mswwU+1M9ip0OIU70pE9Biezpy1hPFoWAjeOyXaSs+9eg+0tMG2F8DdND6cyz6TRMp5k50N9fg9bs/cgFvF9RDWMcK6xh+LeiGkYKX0in8SK8nuH6w1zezrhOr0W+RagSJ8rRZshqQRG54DsHNJaePIi7vYLGzuSEMNAP73v35PQ0XDeX+QVcf/9/oqRn4JbMT7Oywjt4L5GElbqPS0dpHrbFQ+w2592SmZV9iFJkRX54J3Ndegvo6eraaSrXmwcx4In4u5XkwAWbnpFHtgMn3sCi4splNCynecUsWNljXjquWm+WDeOcnF+okOwOM0MqWiWIdbzgZUGZmcdpdTjD0Zg1LIgYhBs3n9z5SFwLySOexys1YJi4+2Z6PYi33pl5Ek4+07j2CF3dk1karGv/FqSy+j+AspeT6GqZQP945dskm6J8WQyrE9VDD9z+bj8k+Qv84P61h1D/VffTG+WceuXH9Gn6CvJWB5kviGHFjpKnMyUm/1AZuerz+niQI+YseQm3FXIU+vQ/3nnHF79w/NjCPXvTJ0/sm70HfpH5+rf/5bG/+tfMY3f/9adPPPAPZ3PxdgfqpQwjXi7CqFhWz1MJ2bDAJSo1xRj2BYy6kkfO9CJGWy9LVvnAu+O+/U+nf3PovonFiTNnUvPw31MfzLxJV2+b7JvIfD+VlWOF28dBxs+XA6gVA1VirAGihmWFWBSg6D3mstmzwZ1zcMErS8TSZywn1Ur64id3/8+1D8+NpZemHnxwehF6Ml+hqzcmepacq7FE5vcjHPebkNO+g/ZsIEfi5kpk/lUy/2cFb0KxLyoky382MPkSk1n7UnQBWqrwWvW6vNy+2bLLwauuYAsE5X5BtA2jKbe20wXszwHvHF84eoNp4YN9E012f19kW2302Esp0+jc9nGv3dc6us0d+afpY4MTE+PtnT6LyVxeXde5I/nBtvH4cOsWl8Wkt9Z4u2Q/96Et7qFnUcVReXcSU2pWvwoU1o0xDKxiohvnmZcnGdQ4Soh1opvecwrTTDo9i6+n6AK9EdYepDdBH4tV6CsTaHeJjGXvJYASmYq1uG6Ca9CIGsS/Q3yK9a5WrV5rXm+BCIYy7g/4gU48dM3yn6cX+wcOJn90/cc+dj18I9M2v3x4P7yKchjxdx7g8bnrvAYTbz48oG8WBPqC7xxlevygJ3pJUmHE1wEjkXKUog9kfrYv87O5z0VF0O09iWF0BGNE/EHX5h/CblnPeE/h03hPF9l+ocqsFvJByaRWIWQKw1LRiMxh8TdcxFUhOSXGYbOBUtTgO8aobKi0uqAO2Cfh0y/vuWWzBsT4wYmXd0+0+imoh2cnlmp9ggrEnXuZfPDQZ9vCb2aeQjl/8PRfSh2/h47Ms4fOWG2dv4Mu1odDHW1GeU1kJF6mR8KvtGc8SntmfkN7ptQ4j6tt0qTShIEsTOwQ9ofp5owW7roPkfISvJ25sx40CyGahN7GtXMYtUn0yrvwKHwDo0Q9uRg3SshIzOhCKIkoZJORC5epRapeUbonzjGsxskiFCUmT4lVOM+W8lhcAQrwSq+0FK3EolNpoiiL1y3h9bfX5vXaPGZWf7u9EaXs5MW3XBHZNRE5gsei8GiiZ6Wr4/Hb2vwTO8TE5I755DdigdY6j691IrStn4YiPW3bQ4uJx3vLBl1eq1Wu5yZRP2/xeqSSvCTrw1SGNYndRtUqNcZKYbS6aARwJC0vrJathKF0EbfqlGtzprWKnNbq1i9hGb+w+pZVVmKZpWhZUSvAuGGeV+iY4SRLvkIPcuoTldMK6svOa/G3bhgd7k0mhtODc8nJyEDQ2xubffPAvZ0tCOLvdN8/v2eq+/vx6WxcQ908gdhxkp1xfRlyWqee1zvrsrCzOAuXavGmV/1+r1suh9CIvGng1LQgkI0gmw+eGEnvu/3ogZb4JkPD1sa2/qqx3j2DDeHTLzxoqeyrsnQkQiMLUdlmTK7Pc5tVk+fieiwhqZmiceioYhceZFUqnkQK7GIqsMu6JRzKavU6KJdYZilaxlqPaBeqWpFXrpuXOydei8+TzauRHPtwSmEhkiMgCN/PJ/tSwweXR8a3J5KB7tjsRLSp3t2+7d6lxftiEFh7/aXYVHr3dI1L1oEXdfBJtI0FcbsULxNxexq0kGIclwhqNKGaLBeBim+jgvU/ahQ85Rfmp9Nxo9VqrbRW+n1ej9z/c7O+V8yZF9/BzSdq4JOZl+n01qkBcXjP7LFbU7ObGzp1A5tCQ4Z/27nQ0dd++sDi6Z297fHeHax1ghYjsJdeQkzdGS9zYhRiWVyJiTW4Nd4KtI2pWLScZ4xBUuo1eWfvvcbCaroq/Mr79byqyy7MVnUsoLAixu5mAQV4F7sWwnbGdbC2kvcFe4NN5VVu+5EbEiMj80O+TfQWSW3yVn2wK3MM7u6aHVnUM05Zc6UN3oavkWYSIzvIhbglhLHCB1qCtZ/WDTqs+eQ9NWFpTgUtXUHzEKJeRH2rucfo5olOh6ArK+NBslKl7PDqV1iKrog34Cxbp1WTFeW6kktx9+bB/q2dXq8l1NDul9x69myXAdAblJ8WBhGK3dDmUuWeHQbwT9ZKNCxytsywam0PAX+6ywPK240WQ1ivcs/1tzXqu2akyo7GUMVdc/vuilfVuvf3xRpGpv4m4vfEYh7/R++dddSbtJDe1puG+zCPNsf6F2qNjggVrTVhd+euXR19gfqZxlDHwHx9/Xevb2+7qS2TGTRKFTqVZ9MmHpMm8OUc+r6NHDpvLuAdDoVYZTNOvqpqfo9ZCwtWtmy1u0KKqyqPZA0oVVU7e8LEmnFyOLXDuSTorcHq9i3JRMfu+8FrtLrt5tnudzGEXh5+XPbPBL4+ST/K+5S7lWcu8oOfZbkbWSjfhimLHEnzowWPY5QeJauX2QPHxxIJLVbgFz+UJvTKV66EyRfwviasT6Z4XKDqbH+yOVursLTLGhH5fnslu9v6hx/LBbOsIWL38nLFmSPYvRRZImtKfCHR1ttlr28qs9VIiXS6u3+Xp6dOVV7vpIAyAZnizyUYV9yr1PK5np+kMB1pDIpMtm6CK0TK0yKF1hVW+0G52o+FNfDG5GPjg8Mvzz7zVuoMmiX6zedk7JDH/vSeBOpX7kng9fQy+ryHXLfqqqJ58NkZn1YvapDHqKUxFTLugo2UmOSbcSK55IcygLfj55UZdFS9B/Hnt/rNWo1LRiDNIjD/KWyX/bLNTi8n1VLIHW5T3oa7Zg7WdMwhMq01PhsCM//hxeGxycnHFT/CvdjIXJEfWfCjsMiaDNI6H1o/s8F/+OP6q/uPfZ3/DHfOFPgPvDg0+jj6jgtz2+uY2/SYJbb+X8iGz+crLGracyRIeSLx+l1703cf3zd7V3Kqq2N6qrM79e+Lp04uHfjImdnUnt1T0/vmZG7YC2+hjhjPuDduRBJIbaCwQoVqMG7AWiBSno8xv7JCIbeT1rPEwmUF3C4/lW2OWoE/GvaXoHb2AmrHG4SM3CVGepKJobkd6eSuzu0NZd5w18ybB091/pwe27L19P7BA12XbabWJc6heuHzuDcz1kR743oj7gtGscZhBXpz0caceUIzxk9icPbAOE86P8EW8hBl5a0En8+WpTzqAsqDZXcknH10lmc9/VNDSzeMerdX6xKJSGvnzK7OXn/Zi7/ouW/h4Km6Kv1A5qsP+EcWRnYc6ixHY08ibodQ7jIyc16L3pOPI2gxxRDKGY7mjRMWpnAL/gglaQEKj3HkAglWxlmwxmBoZCGxI34j3EMXE9+BF/fOsx5zDeLzMOIzTMbjpjqMmfUaDNMiO5Qzuq6D4SzuYFjzHYzcKGPubleN16uSjw0p4ZWfG5LP7PQKYbl/wQ4oOVmJ6lLB4c2hneMzhp2T+42Sy2LyVLlN0bpgrMqUGDTEk9MGU53DHmqpFlTaMq14fIe/ftPAlkFThdGgEjRiub6x2x+pNNL6vkCv0VGuF1VaS4VKVSZZK3meteIeR2k32nP6vBVEHh9k+iVQ4STjXHReJSsVa8UlZYNVfFrFkg6IFJYLJuXHqZJk4eyL1QERzrrCdmRgdhurAUZ37kxN7Rk8cya8pbE6cDfou+68s+u3KTeLVyjPObiI4eXu8ywnFnRSuRDo/kvFFN+RneHMXhBgqYjZ52ctRbPyhJxtCyfYs33WK8kGtcj6bgmcS/Rf292arN0SHkxu7u7phl2Z8/76zgh4lN4FvIDy68l4iX7JOjpQMGjJNVHkYzzZBFHYRQHewWANjG0ALzw381xy0SeCtn0XXMwM4P+1JU/rfd/M9mweQxmqyewFp6lE/2R9Di4atuTbKoSezOVf3lepJtXOfF8lyPoqJkCpnLJUyjt97P6ZnbUCqBp7d90/2r5FDepNnTv6GvG9Mc6k/fV8c+u9r8LFz/1t69YzF1+/v2HTqW/LtSh7eYXrbxfjEOoNzwPWy14waMn1qYt4g8WS4w3eWDDsZLzhldRfPDT54sXU6VOTFy5efPuNp556I9t7uhLm9qsgQxfsRo0gnx7jeVGFKsqSqSWFTPFBoCcLBtNxA3eECrvXq9ZUoqLYcaZWYEwKtgEqy0VRS1Z44Xs1kXq/V2wIlBmcBt+Lu6JadwtSs7vh4tqPBpu1fWZVdfUsXLzDMn7KNQi9XD529uNhlE8i11yl1yStOwrUXHrSUngYaLn4MNBkyT4UP/bzcOY06JNihfhhuCbzy2n88LFGSEN3MPMM8HNt8APyPH/O0l3y/J3S+Co4Z5cfyh2zsxYes6MHs+fsfkmOYnL++NXP2Uluasv8B7iOgovld6xF6U28Fg2RT8QNISclYgXCKlePutFTsYbUAysidUjQMF0g9JhrlkFhUfoHFvLKtI4NsDlWmxauz65AV7I0NbCKGwEil6mGbIlWokxVFw2XrlzBnhsoXcj25waoI1vXsvr8MuqE1S215M14mR104ACiU5orTVhYwqIWslxZ+SgCe6JQpqGMHqpBOYLBtNiAV2gXiVZrG1MOY7zn+uY/ej0/xdGIw1RQ7Sl1BV9L57NrWSfGXFtT6eSqZSUUr39RnwKmek2Rbu0BzlfDcDmVUiUST9yK+hzrqHbX1Ff4j9KDqbWdcFFW4t6RBf2AxRc6SrJ4gq+i7uzo7q/K2iorR2JlBEFNR6sZyxLUMFoOWkikld6rWq1CFapUtjH5AYHICbYGCs+henBr/DE5L1/fa2XzH7GS0596UTlCvLxueXYJU5ZBkqwch2YdV1QpBVlRdRAoUs8TiQTcndNNv4S6yQyw8gkLBeZvb2axVUm2QE2237oFNFBloURDRyWAEXT+4pGctjbrQKOBRZNIc+jLfi7XU4YPY5lWYFs1qGkhApvZdeKiibtbHiHvfVHzn3YRx2ILm2FgLH2dfAGdVy5gOq7a3BJqamwIBpjX11bL+kaNm9dDs0jrwdIRgb6poHWso76GG2PN7Tc4qsxHmYWm4z53HrvUObJQNsCsc0ESTZ7K27JBIbHAqMX/AstnwK4AAHicnVLNbtpAEP6WAGqlqsqt1zn0AFK8soFKIbklSlKhQCIcIk6VlsSABfFGtgni1jfoi1R9gjxLX6Gv0M9rtwd6q1c78+3sN7PzYwDv8QMK5Xf/Fyu8UR8qXENT6Qof4Eh9q3Adh+pnhRv4WOtXuInD2lcyVf0tT9+dV4EV+Y0K1/BOSYUPMFWfKlyHqNcKN/BZ/apwE1L7gnNYPGOHFDEWWCKHoAOfqwuPq8R9WmdkCc6gKQcweMCKvltk1DFtBgke3Z3G0LFG7r5kFowWz4mLFPElgzXmPFkn72ibUk8Q4gJjSsEV9Q0ttzy1GRHn9nmXxotlLh3f73oeZV9mOznTMjAPK7vNVrGY5FEGeqhlZLc0xtKyicyipVnPxc7lLprKJLwYh3I1vpnchm3GvWbCoSsgQ8BycT0MTZIFREUNKZ5cthjZ9MlQX7pCcqdTti1yTdP0FJxw78fzWEhE3oZBDD1KVpd3nttFkzvoMbBN8kubLiLpaF9O5E8e3jhabNYmpakbeAEL7/T+TXv/Gey7F79jxIuM4yhHUWbt823BKXfONafzhtpySLGrsxjdC5/QOOYOOAzcR2kWs7HM0+/JqeT53Gxyu4yTXFovgT7WQft/MvwNYuWNCgAAeJxtzblOAmEAAOFv/21IBAVFNDE2BkWBqGA8EzsFFDxQObzaTXwNGh+JVp9MN9RMMu2MYMbfxK559FIjQSxjQVbOoiV5BctWFK0qWbNuw6YtZdt2VNLWnqqaun0HDjU0HTl24tSZcxcuXbnW0tZx41Y3Pd259+BR35NnLwaGRsZevXn34dPUdxT8+I3ikCRxknz9AxqGFGMAAQAB//8AD3icY2BkYGDgAWIxIGZiYARCbyBmAfMYAAbXAHp4nGNgYGBkAILbCvvfgeiH9+utYDQAU2cHnAAA')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.999000;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.999000;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,d09GRgABAAAAAAVMAA0AAAAAB/wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFMAAAABoAAAAcnt++Y0dERUYAAAUUAAAAHAAAAB4AJwAMT1MvMgAAAaQAAABFAAAAVlS3gQ9jbWFwAAACBAAAAEcAAAFSIlUpXmdhc3AAAAUMAAAACAAAAAj//wADZ2x5ZgAAAlwAAAC6AAAA+H7wFQ1oZWFkAAABMAAAADMAAAA2JsZCEWhoZWEAAAFkAAAAIAAAACQGAAQQaG10eAAAAewAAAAYAAAAGAlYAHBsb2NhAAACTAAAAA4AAAAOAHwAMm1heHAAAAGEAAAAHQAAACAASgAvbmFtZQAAAxgAAAG/AAADUdeKq8Fwb3N0AAAE2AAAADMAAAA+cAyibXicY2BkYGBgYjjSudZxdjy/zVcGbuYXQBGGh/frreC0xf99zOuZzIBcDqBaIAAAiYANSgB4nGNgZGBgMvu/j4GB+QUDEDCvZ0hhkGRABmwAZskEF3icY2BkYGBgY9BhYGIAARDJyAAScwDzGQAHVQB6AAAAeJxjYGQKZJzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIHaAcQLSXFOAlIJSFpPZ/31AlWYMTlA1DAAyVguSAAAAARgAAAAAAAABTQAAAAEAAAMKADgD6AA4eJxjYGBgZoBgGQZGBhDwAfIYwXwWBgMgzQGETEBaQclGKev/fwTr/+O7J+7OhuoCA0Y2BjiXEaSHiQEVMEKsGs4AAD4EC/cAAAAAAAAAAAAAAAAyAHwAAHicY2BksGBoZbrImM+gwMDAKMKmrKSux6isxMfEDmKbmpgZG4nLMRobmZkDWUwXY7zcQh3dtMW0tWWY2Nn5oFzjEGZmbj5GP98aHysdASV7TVYhBTDb30OKgYGBicHi/z7m9UxmDKIM2gwMrCJASxjVgGabMwINFRMVYedkFMMuylQnwsH195MQOzcTPw8rO6/wP27Gr8KMhthE9UTYGBU4eTnY2RgV2bg5ubn+vf33losbqygAB1YscAAAeJytUstq20AUPaPYhkJJd+2mlLspJAsNspQukmVMEjCWE6y4BLoaJ7It/JggKRh/Q3+ldNGP6nf0aDTtwot2Uw2ae+a+z50BcIzvUGi/z3+wwhv10eMAPTXw+AiJ+uFxB++Ctx53cRyMPO5R/5WeqvOKp28uqsEKH1TX4wCv1SePjzBXQ4870Oqnx128D7THPejgCwaweMYeJQossEQNQYyIK0HI1eJzamf0ElxCcx/C4BErxu5QURbUGWzx5GwaqfMaO3vr2Xic8Lx1mXJWMlhjzpN1+z11D5RTZLjChLvghvKWmjueTpkRA/u8L4vFspY4ipIw5H4us71cahmax5XdVatCzPZJhjrVMrY7Kgs5sVuZ5Uuznoudy33+INPsapLJzeR2epedMu+IDadsqGZbGWlu2KJlexX6JI9Rmpp6me03M7uu+lQ0xEp6NRQwtuXGUF47drWTJWeZu0lqJhBc8P97kZBcc0a9UGMY38YktIXub+4hxhnL2G19bctFLrGO5EIOmgsn+eJlbUpakn7Y54jis38RPKx9SPh3zuY157RXvM32Jlt+zVsRGvOyKjhr9hUl8t+K/gLmbpVUAHicY2BiYPj/8dvu/00MGgzYABsQMzIwMTAzMjEysxdn5mbmJBaxl+ZlGhmZOQIAVnkKhgAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCViBmAfMYAAPVADR4nGNgYGBkAILbCvvfgeiH9+utYDQAU2cHnAAA')format("woff");}.fff{font-family:fff;line-height:0.632000;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,d09GRgABAAAAAAUYAA0AAAAAB0AAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAE/AAAABoAAAAcnt++ZUdERUYAAATgAAAAHAAAAB4AJwAMT1MvMgAAAaQAAABDAAAAVlSnX5ljbWFwAAACAAAAAE4AAAFSBVULMmdhc3AAAATYAAAACAAAAAj//wADZ2x5ZgAAAmAAAACEAAAAmFneDwhoZWFkAAABMAAAADMAAAA2JelB0mhoZWEAAAFkAAAAIAAAACQE7QNLaG10eAAAAegAAAAWAAAAFgafAFNsb2NhAAACUAAAAA4AAAAOAEwAJm1heHAAAAGEAAAAHQAAACAASQAYbmFtZQAAAuQAAAHQAAADBrpBi6Vwb3N0AAAEtAAAACMAAAAu/9P2FXicY2BkYGBgZmg2WpkTFM9v85WBm/kFUITh4f16azgd/P8G0zYmGSCXg4EJJAoAazsMtAB4nGNgZGBgkvl/g4GBmYsBCJi2MaQwSDIgA1YAUVcDPnicY2BkYGBgYxBlANEMDExAzAhmO4D5DAAE/wBiAAAAeJxjYGRiZ/zCwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGNmgAFGBiQQkOaaAqQUGOyYZP7fAKqUYdCAqQEAKMgK6wAB9AAAAAAAAAFNAAAAAQAAAwoAUwBTAAB4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMQFqBwYbB7v9/BOv/4/8n/h+H6gIDRjYGOJcRpIeJARUwQqzCBVgYWPHIDg0AAMF3C5AAAAAAAAAAAAAAAAAAJgBMAAB4nGNgZAj+f4NpG5MMgwgDAyMvo5ioCJuykjqjmok5o5mxEZDLtPjvZyZeYR4OVt6/14SFmbR4WTl4GD/9+MHFw8HDzsjKKcXJyMoOZDOgmKXKCDRHzdTEXJcRSAKNEmcUA5l1DaRdmIn372ewkUxawk/+/QZp54Ka+O83pxQDAMK8IDd4nG2RwWrbQBRFrxTHEAhtvqA8urLBlkdyINiEQFAxZKFAE+heyIMliCQjjSO86Bd01w/p93RR+iPd9M54ugjUgzVn3ry5774ZAO/wAwFOvwa/PQd4H9SeQ4yDb57P8DH46XmEcXjh+RxXYeJ5zPhnZgajC65+uVOWA3wIMs8hLoOvns/wKfjuecT4H8/nkPDK8xiXYYoULfY4okOFHUoYCCYoMOUcY8Vxgxk5geJYke5RQ7v8Ajn7E2ScDc9q7lg67bxw55nqBdea0aNTvnU1DGuuseAY3IiYX6Pn3FJ5hzvWt1UHnrXKgidq9K7uK79bRjbMbZzfR3dak1J6yfBA54paSNv9sat2pZFJMZV4tbqZSaLUSu5r3VVF3kiWm1LXueHiRZ7botLmKJPb0pj9erEYhiHK6z5qu93ddCZDZUp50r3uXvVWNm1j5DGvtaRZ9hArW4+WarZ2oC1r1V5NS7OWG2un3h+M7iRrt7pjIHOtVMyvudDb6sD5X18bfxfa3X7EjoR39rbHU2RJnru/faUE1xShuQ1ta0kiJWtvkbCM5/E8Uck13gjhlAB8cWZ7mmrd29pXX7rqVlmYoLu+ahtRahkplcj/df4CyVyBwXicY2BiYPj/8euh/1sZjBiwATYgZmRgYmBmkGdQBADcmAXcAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEJWIGYB8xgAA9UANHicY2BgYGQAgtsK+9+B6If3661hNABTcQeeAAA=')format("woff");}.ff11{font-family:ff11;line-height:0.580000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff12;src:url('data:application/font-woff;base64,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')format("woff");}.ff12{font-family:ff12;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff13;src:url('data:application/font-woff;base64,d09GRgABAAAAAAUsAA0AAAAABzgAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFEAAAABoAAAAcnt++ZUdERUYAAAT0AAAAGwAAAB4AJwALT1MvMgAAAaQAAABDAAAAVlZLXsljbWFwAAAB/AAAAEwAAAFKAO8GhGdhc3AAAATsAAAACAAAAAj//wADZ2x5ZgAAAlQAAAChAAAApEjmZ71oZWFkAAABMAAAADMAAAA2JNNB0mhoZWEAAAFkAAAAIAAAACQEtAFjaG10eAAAAegAAAAUAAAAFAU2AEhsb2NhAAACSAAAAAwAAAAMAAAAUm1heHAAAAGEAAAAHQAAACAASAA7bmFtZQAAAvgAAAHQAAADBuBvx8Vwb3N0AAAEyAAAACEAAAAs/7H2VHicY2BkYGBgZmgW4QvYFM9v85WBm/kFUITh4f16azjt8Z+NcTXTOyCXg4EJJAoAUUgMKAB4nGNgZGBgevefjYGB8QsDEDCuZkhhkGRABqwAaLwEGnicY2BkYGBgZbBgANEMDExAzAhmO4D5DAAITwCEAAAAeJxjYGT4xfiFgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMbMAAOMDEggIM01BUgpMFQzvfvPBlT5juEXTA0AjXwNvQAB9AAAAAAAAAFNAAAAAQAAAfQASHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUGKr//wfywfT/x/87oeqBgJGNAc5hZAISTAyogBFiBY0AC+2MJh4AAE1mCXMAAAAAAAAAAAAAAFJ4nGNgZPD4z8a4mukdgzkDA6OoCLuYuByjLKMIkBQXM5IDiigrqanrMdoymgBJdTUlPUZTE3MzczugiB2jsRFQBx8jo3SZubiEADOXswErCyuTsHKQtIIAM4eLIYjHaaMszctY5CvM6WnHlPkhTlFAXEJV6ZIap5oeMyMTCwu3iKiUvvoxNW5VQzCfk4lZVkxX9YmZOzcnE6szAwMALP4WRAAAAHicbZHBattAFEWvFMcQCG2+oDy6ssGWx3IgyIRAUPFOgcZQyFLIgy2IJCONI7zoF3TXD+n3dFHyI9n0zni6CNSDNWfevLnvvhkAH/ALAU6/Gq+eA3wMKs8hhsEPz2f4HPz2PMAwvPB8jqsw9jxk/Cszg8EFV3/cKcsBPgWZ5xCXwXfPZ/gS/PQ8YPzN8zkkvPI8xGWYIkWDPY5oUWKLHQwEIxQYc54j4bjBhBxDcSSke1TQLr9Azv4EGWfDs5o7lk47z9xZU73gWjN6dMq3roZhzSVmHL0bEfMrdJwbKm9xx/q2as+zVlnwSI3O1X3hd8PIirm18/vgTmtSSi9rPNG5ohbSZn9sy+3OyKgYyzxJbiYSK5XIfaXbsshryXKz01VuuHiWdVOU2hxldLszZr+czfq+j/Kqi5p2ezeeSF+anTzqTrcveiOrpjbykFda0mz9NFe2Hi1VbO1AW9aqvZqGZi3X1k61PxjdStZsdMtA5lopmV9xoTflgfO/vlb+LrS7/YgdCe/sfY+nyII8dX/7SjGuKUJzK9rWEkdKlt4iYTGfzqexiq/xTginBOCbM9vRVOPe1r76wlW3ysIE3XZlU4tSi0ipWP6v8xco1YJxeJxjYGJg+P/x66H/WxmMGLABViBmZGBiYGaIAwDRNQX5AAAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wr734Hoh/frrWE0AFNxB54AAA==')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,d09GRgABAAAAAATQAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcnt++ZUdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADIAAAA2JfxCE2hoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG3AAADRaoI+oxwb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjhSYfpuczy/zVcGbuYXQBGGh/frreG0JUMD01PGEiCXA6gWCACFGQy+AAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUk1L41AUPS+2BWHoclYuLgwDCiakiRtdDRYtFFMlsYPbV5u2oW2eJJHS3fyg0d/kT5mT5DEwIq4mj9x77vfHewD6eIVC+/38ixX66pvFDnrqh8UHCNSLxR18dfoWd9F3hhb3qP9FT9U5pPS7iaqxwpHqWuzgiwosPsBcjSzu4FS9WdzFkfPd4h5OnRhDGDxhjwIZllihgiCAzxPC5WnxObUzegku4ZGOofGINWN3KMkz6jRyzBubh6jxmjT21rP2OKacN5lSVtLYYEHJNPSeugfyKRJcISYVjMhvqbmjdMKMGJqnfZEtV5UEvh+6Lum5zPZy6clYP67NrlxnovO5jL3Ik4nZUZnJsclllq70ZiFmIffpg0yTqziRUXw7vUtOmPeGDUdsqGJbCcfcskXD9koOjpso0tUq2W9nZlNSrqcq6FL3j4kptpr8uhmtanjBRabNGj2uTnDB/7MKLsdMGfNMWTO6jQgxoGVgryDAGYuYvLo2xTKVwPPlQv7tzI3T5fNGFzSEA3fA5QRnn4/2vjA+Tlg/4pTmkpfYXmA7Wf1EhMa0KDOumD35ofyfin8AMFiTxAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsK+9+B6If3661hNABTcQeeAAA=')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.914000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff16;src:url('data:application/font-woff;base64,d09GRgABAAAAAATcAA0AAAAAB0gAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcnt++Z0dERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlO4f7NjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABnAAAAbDQU7jxoZWFkAAABMAAAADIAAAA2JhdCFWhoZWEAAAFkAAAAHgAAACQEkgOjaG10eAAAAegAAAAUAAAAFAWgADtsb2NhAAACRAAAAAwAAAAMAAAANm1heHAAAAGEAAAAHQAAACAASAAnbmFtZQAAArgAAAG3AAADRagG+Ipwb3N0AAAEcAAAACkAAAA0cHnCwnicY2BkYGBgYjjiweoWG89v85WBm/kFUITh4f16GzhtzVDF9I+xCsjlAKoFAgBKNAt9AAB4nGNgZGBgrGIAAmYrEMn0jyGFQZIBGbACADBHAjwAAHicY2BkYGBgZVBhANEMDExAzAhmO4D5DAAGWwBwAAAAeJxjYGScyziBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YqsGQVXA0DADEqCjYAAAABGAAAAAAAAAFNAAAAAQAAAzoAO3icY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAANnicY2BksGaoYvrHWMWgzMDAKMKmrKSmrseorMTHxC7CB6RNTcyMjcTE5RiNjczMgUymfwlBBsGmBr5aYnp6ckxMHGwCMAHbIGYmPgHG0OAOYyNdPQEVFz1mLh4VCC/aVp0BAKK+EmYAeJytUstq20AUPaPYhkLwsqssLpRCApGQpSyarEpMYjCRE6S4ZDuOZVvY1gRJwXjXD2ryTf2UHElDoKVkVQ2699z3YwZAH69QaL8f71ihr75Y7KCnvlt8gEC9WNzBZ6dvcRd9Z2hxj/qf9FSdT5R+NVE1VjhSXYsdHKrA4gPM1cjiDk7Vb4u7OHK+WtzDqRNjCIMn7FEgwxIrVBAE8HlCuDwtPqd2Ri/BJTzSMTQesWbsDiV5Rp1Gjnlj8xA1XpPG3nrWHseU8yZTykoaGywomYbeU/dAPkWCK8SkghH5LTV3lE6YEUPztC+y5aqSwPdD1yU9l9leLj0Z68e12ZXrTHQ+l7EXeTIxOyozOTa5zNKV3izELOQ+fZBpchUnMopvp3fJCfPesOGIDVVsK+GYW7Zo2F6JbzRGka5WyX47M5uScj1VQZe6f0xMsdXk181oVcMLLjJt1uhxdYIL/h9VcDlmyphnyprRbUSIAS0DewUBzljE5NW1KZapBJ4vF/JnZ26cLp83uqAhHLgDLic4+3i0vwvj3wnrR5zSXPIS2wtsJ6ufiNCYFmXGFbMnP5T/U/ENKkyTvAB4nGNgYmD4//Hb7v9zGVQYsAFWIGZkYGJgZmRiL87MzcxJLAIAApcIagAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsK+9+B6If3621gNABTewegAAA=')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.375000,0.000000,0.000000,0.375000,0,0);-ms-transform:matrix(0.375000,0.000000,0.000000,0.375000,0,0);-webkit-transform:matrix(0.375000,0.000000,0.000000,0.375000,0,0);}
|
||
.m1{transform:matrix(1.500000,0.000000,0.000000,1.500000,0,0);-ms-transform:matrix(1.500000,0.000000,0.000000,1.500000,0,0);-webkit-transform:matrix(1.500000,0.000000,0.000000,1.500000,0,0);}
|
||
.v0{vertical-align:0.000000px;}
|
||
.ls0{letter-spacing:0.000000px;}
|
||
.sc_{text-shadow:none;}
|
||
.sc0{text-shadow:-0.015em 0 transparent,0 0.015em transparent,0.015em 0 transparent,0 -0.015em transparent;}
|
||
@media screen and (-webkit-min-device-pixel-ratio:0){
|
||
.sc_{-webkit-text-stroke:0px transparent;}
|
||
.sc0{-webkit-text-stroke:0.015em transparent;text-shadow:none;}
|
||
}
|
||
.ws0{word-spacing:0.000000px;}
|
||
._4{margin-left:-7.355850px;}
|
||
._7{margin-left:-4.399514px;}
|
||
._d{margin-left:-3.307583px;}
|
||
._3{margin-left:-1.818300px;}
|
||
._c{width:1.818300px;}
|
||
._0{width:3.073600px;}
|
||
._f{width:4.429417px;}
|
||
._1f{width:5.547190px;}
|
||
._11{width:11.358190px;}
|
||
._b{width:13.270183px;}
|
||
._e{width:15.063940px;}
|
||
._6{width:16.116719px;}
|
||
._8{width:17.550234px;}
|
||
._10{width:19.374562px;}
|
||
._a{width:21.060222px;}
|
||
._21{width:22.095347px;}
|
||
._1a{width:23.138227px;}
|
||
._1b{width:24.240783px;}
|
||
._24{width:25.248991px;}
|
||
._18{width:26.503560px;}
|
||
._14{width:28.333291px;}
|
||
._5{width:31.241700px;}
|
||
._13{width:33.771608px;}
|
||
._2b{width:34.857655px;}
|
||
._1{width:36.288314px;}
|
||
._16{width:37.658880px;}
|
||
._2{width:40.829100px;}
|
||
._9{width:42.462280px;}
|
||
._20{width:50.988030px;}
|
||
._1c{width:55.944158px;}
|
||
._35{width:67.719096px;}
|
||
._26{width:75.502483px;}
|
||
._29{width:84.654034px;}
|
||
._19{width:94.146240px;}
|
||
._3b{width:101.176730px;}
|
||
._2d{width:102.395993px;}
|
||
._3f{width:113.707525px;}
|
||
._15{width:150.089918px;}
|
||
._23{width:151.366725px;}
|
||
._40{width:169.347435px;}
|
||
._37{width:202.807126px;}
|
||
._36{width:204.026633px;}
|
||
._1d{width:206.853921px;}
|
||
._17{width:225.955040px;}
|
||
._3c{width:237.285973px;}
|
||
._32{width:254.047160px;}
|
||
._3d{width:271.162086px;}
|
||
._3a{width:288.100143px;}
|
||
._22{width:319.552478px;}
|
||
._33{width:335.687994px;}
|
||
._46{width:357.943523px;}
|
||
._2c{width:372.601943px;}
|
||
._42{width:373.604164px;}
|
||
._2a{width:440.347887px;}
|
||
._34{width:525.029943px;}
|
||
._31{width:694.395887px;}
|
||
._27{width:734.342560px;}
|
||
._39{width:745.205943px;}
|
||
._28{width:785.219755px;}
|
||
._12{width:849.681084px;}
|
||
._30{width:878.976749px;}
|
||
._38{width:885.671661px;}
|
||
._1e{width:899.174502px;}
|
||
._3e{width:961.515290px;}
|
||
._2f{width:1055.119241px;}
|
||
._25{width:1070.086042px;}
|
||
._45{width:1144.687599px;}
|
||
._43{width:1200.263102px;}
|
||
._41{width:1266.293674px;}
|
||
._44{width:1491.148186px;}
|
||
._2e{width:1496.504115px;}
|
||
.fcd{color:rgb(173,34,49);}
|
||
.fcc{color:rgb(171,92,31);}
|
||
.fcb{color:rgb(186,33,33);}
|
||
.fca{color:rgb(156,102,0);}
|
||
.fc7{color:rgb(61,122,122);}
|
||
.fcf{color:transparent;}
|
||
.fce{color:rgb(0,153,153);}
|
||
.fc8{color:rgb(0,0,255);}
|
||
.fc6{color:rgb(102,102,102);}
|
||
.fc2{color:rgb(255,255,255);}
|
||
.fc0{color:rgb(35,55,59);}
|
||
.fc9{color:rgb(16,136,110);}
|
||
.fc3{color:rgb(57,75,79);}
|
||
.fc1{color:rgb(250,250,250);}
|
||
.fc5{color:rgb(176,0,64);}
|
||
.fc4{color:rgb(0,128,0);}
|
||
.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;}
|
||
.y260{bottom:-10.332000px;}
|
||
.y0{bottom:-0.750000px;}
|
||
.y282{bottom:3.208500px;}
|
||
.y200{bottom:3.933000px;}
|
||
.y2c{bottom:4.711500px;}
|
||
.y1c9{bottom:5.443500px;}
|
||
.y25f{bottom:5.994000px;}
|
||
.y243{bottom:6.907500px;}
|
||
.y8c{bottom:9.555000px;}
|
||
.y2a8{bottom:10.113000px;}
|
||
.y26e{bottom:10.240500px;}
|
||
.y6d{bottom:11.254500px;}
|
||
.y43{bottom:11.493000px;}
|
||
.y1af{bottom:11.517000px;}
|
||
.y78{bottom:11.539500px;}
|
||
.y180{bottom:13.167000px;}
|
||
.y21a{bottom:14.380500px;}
|
||
.ya5{bottom:15.031500px;}
|
||
.yf7{bottom:16.125000px;}
|
||
.y18f{bottom:16.366500px;}
|
||
.y29d{bottom:16.372500px;}
|
||
.y133{bottom:16.489500px;}
|
||
.y15c{bottom:16.881000px;}
|
||
.y177{bottom:17.118000px;}
|
||
.y1a8{bottom:18.828000px;}
|
||
.y10{bottom:19.527000px;}
|
||
.y281{bottom:19.536000px;}
|
||
.y1ff{bottom:20.260500px;}
|
||
.y1c8{bottom:21.769500px;}
|
||
.yd4{bottom:22.023000px;}
|
||
.y25e{bottom:22.320000px;}
|
||
.y58{bottom:22.372500px;}
|
||
.y1e1{bottom:23.233500px;}
|
||
.y28c{bottom:23.463000px;}
|
||
.y2b{bottom:23.614500px;}
|
||
.yb1{bottom:24.222000px;}
|
||
.y82{bottom:26.266500px;}
|
||
.y26d{bottom:26.566500px;}
|
||
.y2a7{bottom:29.016000px;}
|
||
.y116{bottom:30.643500px;}
|
||
.y219{bottom:30.706500px;}
|
||
.ya4{bottom:31.357500px;}
|
||
.y29c{bottom:32.698500px;}
|
||
.y132{bottom:32.815500px;}
|
||
.y77{bottom:33.433500px;}
|
||
.y2a6{bottom:33.688500px;}
|
||
.y13e{bottom:33.781500px;}
|
||
.yf6{bottom:35.029500px;}
|
||
.y18e{bottom:35.271000px;}
|
||
.yee{bottom:35.748000px;}
|
||
.y280{bottom:35.862000px;}
|
||
.y176{bottom:36.021000px;}
|
||
.y1ee{bottom:36.298500px;}
|
||
.y1fe{bottom:36.586500px;}
|
||
.y96{bottom:38.041500px;}
|
||
.y166{bottom:38.056500px;}
|
||
.y1c7{bottom:38.095500px;}
|
||
.y25d{bottom:38.646000px;}
|
||
.y1e0{bottom:39.559500px;}
|
||
.y1d1{bottom:39.976500px;}
|
||
.yb0{bottom:40.548000px;}
|
||
.y57{bottom:41.275500px;}
|
||
.y1a7{bottom:42.201000px;}
|
||
.y26c{bottom:42.892500px;}
|
||
.y8b{bottom:43.833000px;}
|
||
.y42{bottom:44.788500px;}
|
||
.y23f{bottom:44.877000px;}
|
||
.yd3{bottom:45.394500px;}
|
||
.y2a{bottom:45.508500px;}
|
||
.y115{bottom:46.969500px;}
|
||
.y218{bottom:47.032500px;}
|
||
.ya3{bottom:47.685000px;}
|
||
.yc9{bottom:47.920500px;}
|
||
.y28b{bottom:48.330000px;}
|
||
.y11e{bottom:48.354000px;}
|
||
.y29b{bottom:49.024500px;}
|
||
.yf{bottom:50.836500px;}
|
||
.y14a{bottom:51.171000px;}
|
||
.y27f{bottom:52.188000px;}
|
||
.y1fd{bottom:52.912500px;}
|
||
.y1f{bottom:53.217000px;}
|
||
.y24c{bottom:53.520000px;}
|
||
.y153{bottom:53.721000px;}
|
||
.yf5{bottom:53.934000px;}
|
||
.y18d{bottom:54.174000px;}
|
||
.y2a5{bottom:54.312000px;}
|
||
.y1c6{bottom:54.421500px;}
|
||
.y175{bottom:54.925500px;}
|
||
.y25c{bottom:54.973500px;}
|
||
.y37{bottom:55.089000px;}
|
||
.y1ed{bottom:55.201500px;}
|
||
.y76{bottom:55.326000px;}
|
||
.y1df{bottom:55.887000px;}
|
||
.ye0{bottom:55.960500px;}
|
||
.yaf{bottom:56.875500px;}
|
||
.y95{bottom:56.946000px;}
|
||
.y165{bottom:56.961000px;}
|
||
.y26b{bottom:59.218500px;}
|
||
.y81{bottom:60.099000px;}
|
||
.y56{bottom:60.180000px;}
|
||
.y62{bottom:60.915000px;}
|
||
.y114{bottom:63.295500px;}
|
||
.y1d0{bottom:63.348000px;}
|
||
.y217{bottom:63.358500px;}
|
||
.ya2{bottom:64.011000px;}
|
||
.y1b7{bottom:65.235000px;}
|
||
.y29a{bottom:65.352000px;}
|
||
.y131{bottom:65.467500px;}
|
||
.yc8{bottom:66.825000px;}
|
||
.y208{bottom:66.939000px;}
|
||
.y41{bottom:67.054500px;}
|
||
.y234{bottom:67.852500px;}
|
||
.y6c{bottom:68.377500px;}
|
||
.y27e{bottom:68.514000px;}
|
||
.yd2{bottom:68.767500px;}
|
||
.y11d{bottom:68.976000px;}
|
||
.y1fc{bottom:69.238500px;}
|
||
.y149{bottom:70.074000px;}
|
||
.y1c5{bottom:70.747500px;}
|
||
.y101{bottom:70.966500px;}
|
||
.y25b{bottom:71.299500px;}
|
||
.y242{bottom:72.213000px;}
|
||
.yf4{bottom:72.837000px;}
|
||
.yed{bottom:73.078500px;}
|
||
.y28a{bottom:73.197000px;}
|
||
.yae{bottom:73.201500px;}
|
||
.y4e{bottom:73.269000px;}
|
||
.y174{bottom:73.830000px;}
|
||
.y36{bottom:73.993500px;}
|
||
.y1ec{bottom:74.106000px;}
|
||
.y152{bottom:74.343000px;}
|
||
.ydf{bottom:74.863500px;}
|
||
.y229{bottom:74.935500px;}
|
||
.y94{bottom:75.850500px;}
|
||
.y164{bottom:75.864000px;}
|
||
.y2a4{bottom:77.044500px;}
|
||
.y75{bottom:77.218500px;}
|
||
.y18c{bottom:77.226000px;}
|
||
.y13d{bottom:79.332000px;}
|
||
.y113{bottom:79.621500px;}
|
||
.ye{bottom:79.641000px;}
|
||
.y216{bottom:79.684500px;}
|
||
.y61{bottom:79.819500px;}
|
||
.ya1{bottom:80.337000px;}
|
||
.y5{bottom:80.937000px;}
|
||
.y15b{bottom:81.439500px;}
|
||
.y299{bottom:81.678000px;}
|
||
.y130{bottom:81.793500px;}
|
||
.y126{bottom:81.940500px;}
|
||
.y1e{bottom:82.021500px;}
|
||
.y1a6{bottom:82.567500px;}
|
||
.y10a{bottom:82.731000px;}
|
||
.y1ae{bottom:82.798500px;}
|
||
.y80{bottom:83.472000px;}
|
||
.y29{bottom:83.583000px;}
|
||
.y19b{bottom:84.001500px;}
|
||
.y27d{bottom:84.840000px;}
|
||
.y24b{bottom:85.066500px;}
|
||
.y23e{bottom:85.084500px;}
|
||
.y8a{bottom:85.137000px;}
|
||
.y1fb{bottom:85.564500px;}
|
||
.yc7{bottom:85.728000px;}
|
||
.ybc{bottom:86.304000px;}
|
||
.y233{bottom:86.755500px;}
|
||
.y6b{bottom:87.282000px;}
|
||
.y25a{bottom:87.625500px;}
|
||
.y1de{bottom:88.539000px;}
|
||
.y1b6{bottom:88.608000px;}
|
||
.y148{bottom:88.978500px;}
|
||
.yad{bottom:89.527500px;}
|
||
.y11c{bottom:89.598000px;}
|
||
.y207{bottom:90.310500px;}
|
||
.y55{bottom:91.414500px;}
|
||
.y100{bottom:91.590000px;}
|
||
.yf3{bottom:91.741500px;}
|
||
.y26a{bottom:91.870500px;}
|
||
.yec{bottom:91.983000px;}
|
||
.y4d{bottom:92.172000px;}
|
||
.y173{bottom:92.733000px;}
|
||
.yde{bottom:93.768000px;}
|
||
.y93{bottom:94.755000px;}
|
||
.y163{bottom:94.768500px;}
|
||
.yd1{bottom:95.128500px;}
|
||
.y151{bottom:95.620500px;}
|
||
.y112{bottom:95.947500px;}
|
||
.y18b{bottom:96.130500px;}
|
||
.y35{bottom:96.259500px;}
|
||
.y289{bottom:96.568500px;}
|
||
.ya0{bottom:96.663000px;}
|
||
.y1cf{bottom:97.738500px;}
|
||
.y298{bottom:98.004000px;}
|
||
.y12f{bottom:98.119500px;}
|
||
.y13c{bottom:98.236500px;}
|
||
.y60{bottom:98.724000px;}
|
||
.y74{bottom:99.111000px;}
|
||
.y2a3{bottom:99.124500px;}
|
||
.y40{bottom:99.229500px;}
|
||
.y27c{bottom:101.166000px;}
|
||
.y1a5{bottom:101.472000px;}
|
||
.y1fa{bottom:101.890500px;}
|
||
.y19a{bottom:102.906000px;}
|
||
.y109{bottom:103.354500px;}
|
||
.y1c4{bottom:103.401000px;}
|
||
.y259{bottom:103.951500px;}
|
||
.yc6{bottom:104.632500px;}
|
||
.y15a{bottom:104.811000px;}
|
||
.y1dd{bottom:104.865000px;}
|
||
.y16{bottom:105.009000px;}
|
||
.ybb{bottom:105.207000px;}
|
||
.y232{bottom:105.660000px;}
|
||
.yac{bottom:105.853500px;}
|
||
.y4{bottom:105.949500px;}
|
||
.y1ad{bottom:106.171500px;}
|
||
.y6a{bottom:106.186500px;}
|
||
.y221{bottom:106.654500px;}
|
||
.y28{bottom:106.956000px;}
|
||
.y269{bottom:108.198000px;}
|
||
.yd{bottom:108.444000px;}
|
||
.y89{bottom:108.510000px;}
|
||
.y228{bottom:108.768000px;}
|
||
.y11b{bottom:110.221500px;}
|
||
.y1d{bottom:110.826000px;}
|
||
.yeb{bottom:110.886000px;}
|
||
.y4c{bottom:111.076500px;}
|
||
.y172{bottom:111.637500px;}
|
||
.y1eb{bottom:111.913500px;}
|
||
.yff{bottom:112.212000px;}
|
||
.y111{bottom:112.273500px;}
|
||
.y215{bottom:112.336500px;}
|
||
.ydd{bottom:112.672500px;}
|
||
.y9f{bottom:112.989000px;}
|
||
.y92{bottom:113.658000px;}
|
||
.y297{bottom:114.330000px;}
|
||
.y18a{bottom:115.033500px;}
|
||
.y54{bottom:115.174500px;}
|
||
.y24a{bottom:116.613000px;}
|
||
.ydc{bottom:116.893500px;}
|
||
.y13b{bottom:117.141000px;}
|
||
.y7f{bottom:117.304500px;}
|
||
.y27b{bottom:117.492000px;}
|
||
.y125{bottom:117.978000px;}
|
||
.y3f{bottom:118.134000px;}
|
||
.y1f9{bottom:118.216500px;}
|
||
.y1c3{bottom:119.727000px;}
|
||
.y258{bottom:120.277500px;}
|
||
.y1a4{bottom:120.375000px;}
|
||
.y1dc{bottom:121.191000px;}
|
||
.y288{bottom:121.398000px;}
|
||
.yab{bottom:122.179500px;}
|
||
.y23d{bottom:122.289000px;}
|
||
.yc5{bottom:123.537000px;}
|
||
.y108{bottom:123.976500px;}
|
||
.yba{bottom:124.111500px;}
|
||
.y268{bottom:124.524000px;}
|
||
.y231{bottom:124.564500px;}
|
||
.y17f{bottom:124.984500px;}
|
||
.y69{bottom:125.089500px;}
|
||
.y220{bottom:125.559000px;}
|
||
.y150{bottom:126.465000px;}
|
||
.y147{bottom:126.786000px;}
|
||
.y5f{bottom:127.323000px;}
|
||
.y159{bottom:128.184000px;}
|
||
.y206{bottom:128.436000px;}
|
||
.y110{bottom:128.601000px;}
|
||
.y214{bottom:128.662500px;}
|
||
.y9e{bottom:129.315000px;}
|
||
.yf2{bottom:129.550500px;}
|
||
.yea{bottom:129.790500px;}
|
||
.y4b{bottom:129.981000px;}
|
||
.y171{bottom:130.542000px;}
|
||
.y296{bottom:130.656000px;}
|
||
.y12e{bottom:130.773000px;}
|
||
.y1ea{bottom:130.818000px;}
|
||
.y2a2{bottom:131.425500px;}
|
||
.yd0{bottom:131.575500px;}
|
||
.y227{bottom:132.139500px;}
|
||
.y91{bottom:132.562500px;}
|
||
.y162{bottom:132.576000px;}
|
||
.yfe{bottom:132.835500px;}
|
||
.y15{bottom:133.813500px;}
|
||
.y27a{bottom:133.818000px;}
|
||
.y189{bottom:133.938000px;}
|
||
.y1f8{bottom:134.542500px;}
|
||
.ydb{bottom:135.798000px;}
|
||
.y13a{bottom:136.044000px;}
|
||
.y1c2{bottom:136.053000px;}
|
||
.y1ce{bottom:136.054500px;}
|
||
.y257{bottom:136.603500px;}
|
||
.y3e{bottom:137.038500px;}
|
||
.yc{bottom:137.248500px;}
|
||
.y241{bottom:137.517000px;}
|
||
.y23c{bottom:138.615000px;}
|
||
.y27{bottom:139.257000px;}
|
||
.y1a3{bottom:139.279500px;}
|
||
.y1c{bottom:139.629000px;}
|
||
.y7e{bottom:140.677500px;}
|
||
.y199{bottom:140.713500px;}
|
||
.y267{bottom:140.850000px;}
|
||
.y1b5{bottom:141.867000px;}
|
||
.y1b4{bottom:141.868500px;}
|
||
.yc4{bottom:142.440000px;}
|
||
.yb9{bottom:143.016000px;}
|
||
.y17e{bottom:143.889000px;}
|
||
.y68{bottom:143.994000px;}
|
||
.y34{bottom:144.499500px;}
|
||
.y10f{bottom:144.927000px;}
|
||
.y213{bottom:144.990000px;}
|
||
.y9d{bottom:145.641000px;}
|
||
.y146{bottom:145.690500px;}
|
||
.y1ac{bottom:145.944000px;}
|
||
.y249{bottom:146.784000px;}
|
||
.y295{bottom:146.982000px;}
|
||
.y12d{bottom:147.099000px;}
|
||
.y107{bottom:147.588000px;}
|
||
.y124{bottom:147.669000px;}
|
||
.y14f{bottom:147.744000px;}
|
||
.yf1{bottom:148.453500px;}
|
||
.ye9{bottom:148.695000px;}
|
||
.y4a{bottom:148.884000px;}
|
||
.y170{bottom:149.445000px;}
|
||
.y1e9{bottom:149.722500px;}
|
||
.y88{bottom:149.815500px;}
|
||
.y279{bottom:150.145500px;}
|
||
.ycf{bottom:150.480000px;}
|
||
.y1f7{bottom:150.870000px;}
|
||
.y53{bottom:151.459500px;}
|
||
.y90{bottom:151.467000px;}
|
||
.y161{bottom:151.480500px;}
|
||
.y1c1{bottom:152.379000px;}
|
||
.y188{bottom:152.842500px;}
|
||
.y256{bottom:152.929500px;}
|
||
.y287{bottom:152.952000px;}
|
||
.y11a{bottom:153.279000px;}
|
||
.yfd{bottom:153.457500px;}
|
||
.y1db{bottom:153.843000px;}
|
||
.yaa{bottom:154.164000px;}
|
||
.y73{bottom:154.372500px;}
|
||
.yda{bottom:154.701000px;}
|
||
.y23b{bottom:154.942500px;}
|
||
.y139{bottom:154.948500px;}
|
||
.y2a1{bottom:155.500500px;}
|
||
.y3d{bottom:155.941500px;}
|
||
.y266{bottom:157.176000px;}
|
||
.y198{bottom:159.618000px;}
|
||
.y212{bottom:161.316000px;}
|
||
.yc3{bottom:161.344500px;}
|
||
.yb8{bottom:161.919000px;}
|
||
.y9c{bottom:161.968500px;}
|
||
.y205{bottom:162.270000px;}
|
||
.y230{bottom:162.372000px;}
|
||
.y14{bottom:162.618000px;}
|
||
.y17d{bottom:162.793500px;}
|
||
.y67{bottom:162.898500px;}
|
||
.y294{bottom:163.308000px;}
|
||
.y21f{bottom:163.366500px;}
|
||
.y33{bottom:163.402500px;}
|
||
.y145{bottom:164.595000px;}
|
||
.yb{bottom:166.053000px;}
|
||
.y278{bottom:166.471500px;}
|
||
.y1f6{bottom:167.196000px;}
|
||
.ye8{bottom:167.598000px;}
|
||
.y49{bottom:167.788500px;}
|
||
.y226{bottom:168.061500px;}
|
||
.y16f{bottom:168.349500px;}
|
||
.y1b{bottom:168.433500px;}
|
||
.y1e8{bottom:168.625500px;}
|
||
.y1c0{bottom:168.705000px;}
|
||
.y255{bottom:169.257000px;}
|
||
.y1ab{bottom:169.317000px;}
|
||
.yce{bottom:169.384500px;}
|
||
.y26{bottom:170.101500px;}
|
||
.y240{bottom:170.169000px;}
|
||
.y160{bottom:170.385000px;}
|
||
.y10e{bottom:170.932500px;}
|
||
.y23a{bottom:171.268500px;}
|
||
.y187{bottom:171.745500px;}
|
||
.y158{bottom:172.477500px;}
|
||
.y87{bottom:173.187000px;}
|
||
.y265{bottom:173.502000px;}
|
||
.yd9{bottom:173.605500px;}
|
||
.y138{bottom:173.853000px;}
|
||
.y1cd{bottom:174.370500px;}
|
||
.y7d{bottom:174.510000px;}
|
||
.y52{bottom:175.219500px;}
|
||
.yfc{bottom:177.069000px;}
|
||
.y1a2{bottom:177.087000px;}
|
||
.y123{bottom:177.360000px;}
|
||
.y2a0{bottom:177.580500px;}
|
||
.y72{bottom:177.745500px;}
|
||
.y3c{bottom:178.209000px;}
|
||
.y9b{bottom:178.294500px;}
|
||
.y197{bottom:178.521000px;}
|
||
.y5e{bottom:178.860000px;}
|
||
.y293{bottom:179.634000px;}
|
||
.y248{bottom:179.704500px;}
|
||
.y12c{bottom:179.751000px;}
|
||
.yf0{bottom:180.249000px;}
|
||
.yb7{bottom:180.823500px;}
|
||
.y14e{bottom:180.864000px;}
|
||
.y22f{bottom:181.276500px;}
|
||
.y17c{bottom:181.696500px;}
|
||
.y66{bottom:181.801500px;}
|
||
.y21e{bottom:182.271000px;}
|
||
.y32{bottom:182.307000px;}
|
||
.y277{bottom:182.797500px;}
|
||
.y144{bottom:183.498000px;}
|
||
.y1f5{bottom:183.522000px;}
|
||
.y1bf{bottom:185.031000px;}
|
||
.y286{bottom:185.253000px;}
|
||
.y28d{bottom:185.583000px;}
|
||
.y204{bottom:185.641500px;}
|
||
.ya9{bottom:185.718000px;}
|
||
.y1da{bottom:186.496500px;}
|
||
.ye7{bottom:186.502500px;}
|
||
.y16e{bottom:187.254000px;}
|
||
.y1e7{bottom:187.530000px;}
|
||
.ycd{bottom:188.287500px;}
|
||
.y8f{bottom:189.274500px;}
|
||
.y15f{bottom:189.288000px;}
|
||
.y119{bottom:189.315000px;}
|
||
.y264{bottom:189.828000px;}
|
||
.y186{bottom:190.650000px;}
|
||
.y13{bottom:191.422500px;}
|
||
.y106{bottom:191.881500px;}
|
||
.y3{bottom:192.049500px;}
|
||
.yd8{bottom:192.510000px;}
|
||
.y1aa{bottom:192.688500px;}
|
||
.y137{bottom:192.756000px;}
|
||
.y48{bottom:193.044000px;}
|
||
.y211{bottom:193.968000px;}
|
||
.y10d{bottom:194.305500px;}
|
||
.y9a{bottom:194.620500px;}
|
||
.ya{bottom:194.857500px;}
|
||
.y1b3{bottom:195.127500px;}
|
||
.y157{bottom:195.849000px;}
|
||
.y292{bottom:195.961500px;}
|
||
.y1a1{bottom:195.991500px;}
|
||
.y12b{bottom:196.077000px;}
|
||
.y196{bottom:197.425500px;}
|
||
.y1cc{bottom:197.742000px;}
|
||
.y5d{bottom:197.764500px;}
|
||
.y7c{bottom:197.881500px;}
|
||
.y276{bottom:199.123500px;}
|
||
.yc2{bottom:199.152000px;}
|
||
.yb6{bottom:199.728000px;}
|
||
.y1f4{bottom:199.848000px;}
|
||
.y247{bottom:200.326500px;}
|
||
.y1be{bottom:201.357000px;}
|
||
.y3b{bottom:201.580500px;}
|
||
.y225{bottom:201.894000px;}
|
||
.y254{bottom:201.909000px;}
|
||
.y25{bottom:202.402500px;}
|
||
.y1d9{bottom:202.822500px;}
|
||
.y239{bottom:203.920500px;}
|
||
.y51{bottom:204.570000px;}
|
||
.y31{bottom:204.573000px;}
|
||
.y122{bottom:205.215000px;}
|
||
.ye6{bottom:205.407000px;}
|
||
.y263{bottom:206.154000px;}
|
||
.y16d{bottom:206.157000px;}
|
||
.y1e6{bottom:206.434500px;}
|
||
.ycc{bottom:207.192000px;}
|
||
.y20{bottom:207.372000px;}
|
||
.y15e{bottom:208.192500px;}
|
||
.ya8{bottom:209.089500px;}
|
||
.y185{bottom:209.554500px;}
|
||
.y71{bottom:210.046500px;}
|
||
.y210{bottom:210.294000px;}
|
||
.y29f{bottom:210.576000px;}
|
||
.y285{bottom:210.621000px;}
|
||
.y99{bottom:210.946500px;}
|
||
.yd7{bottom:211.413000px;}
|
||
.y136{bottom:211.660500px;}
|
||
.y291{bottom:212.287500px;}
|
||
.y12a{bottom:212.403000px;}
|
||
.y105{bottom:212.503500px;}
|
||
.y1a{bottom:214.410000px;}
|
||
.y86{bottom:214.492500px;}
|
||
.y1a0{bottom:214.896000px;}
|
||
.y275{bottom:215.449500px;}
|
||
.y1f3{bottom:216.174000px;}
|
||
.y195{bottom:216.330000px;}
|
||
.y5c{bottom:216.669000px;}
|
||
.y1a9{bottom:217.518000px;}
|
||
.y1bd{bottom:217.683000px;}
|
||
.yc1{bottom:218.056500px;}
|
||
.y253{bottom:218.235000px;}
|
||
.y1b2{bottom:218.500500px;}
|
||
.yb5{bottom:218.631000px;}
|
||
.y118{bottom:219.006000px;}
|
||
.y22e{bottom:219.084000px;}
|
||
.y1d8{bottom:219.148500px;}
|
||
.y17b{bottom:219.505500px;}
|
||
.y65{bottom:219.760500px;}
|
||
.y21d{bottom:220.078500px;}
|
||
.y12{bottom:220.227000px;}
|
||
.y238{bottom:220.246500px;}
|
||
.y143{bottom:221.307000px;}
|
||
.yfb{bottom:221.362500px;}
|
||
.y203{bottom:221.563500px;}
|
||
.y262{bottom:222.480000px;}
|
||
.ye5{bottom:224.310000px;}
|
||
.y16c{bottom:225.061500px;}
|
||
.y224{bottom:225.267000px;}
|
||
.y1e5{bottom:225.337500px;}
|
||
.ycb{bottom:226.096500px;}
|
||
.y20f{bottom:226.620000px;}
|
||
.y15d{bottom:227.097000px;}
|
||
.y8e{bottom:227.232000px;}
|
||
.y98{bottom:227.272500px;}
|
||
.y246{bottom:228.421500px;}
|
||
.y184{bottom:228.457500px;}
|
||
.y290{bottom:228.613500px;}
|
||
.y129{bottom:228.729000px;}
|
||
.y14d{bottom:228.928500px;}
|
||
.yd6{bottom:230.317500px;}
|
||
.y135{bottom:230.565000px;}
|
||
.y7b{bottom:231.715500px;}
|
||
.y274{bottom:231.775500px;}
|
||
.y121{bottom:233.071500px;}
|
||
.y104{bottom:233.127000px;}
|
||
.y50{bottom:233.919000px;}
|
||
.y29e{bottom:233.947500px;}
|
||
.y284{bottom:233.994000px;}
|
||
.y1bc{bottom:234.010500px;}
|
||
.y252{bottom:234.561000px;}
|
||
.y24{bottom:234.703500px;}
|
||
.y194{bottom:235.233000px;}
|
||
.y1d7{bottom:235.474500px;}
|
||
.y237{bottom:236.572500px;}
|
||
.yc0{bottom:236.961000px;}
|
||
.yb4{bottom:237.535500px;}
|
||
.y85{bottom:237.864000px;}
|
||
.y22d{bottom:237.988500px;}
|
||
.y9{bottom:238.123500px;}
|
||
.y1cb{bottom:238.147500px;}
|
||
.y47{bottom:238.293000px;}
|
||
.y17a{bottom:238.408500px;}
|
||
.y261{bottom:238.807500px;}
|
||
.y3a{bottom:239.896500px;}
|
||
.y156{bottom:240.144000px;}
|
||
.y142{bottom:240.210000px;}
|
||
.ya7{bottom:240.643500px;}
|
||
.y70{bottom:241.600500px;}
|
||
.yfa{bottom:241.984500px;}
|
||
.y5b{bottom:242.053500px;}
|
||
.y20e{bottom:242.946000px;}
|
||
.y19{bottom:243.214500px;}
|
||
.y1f2{bottom:243.322500px;}
|
||
.y16b{bottom:243.966000px;}
|
||
.y1e4{bottom:244.242000px;}
|
||
.y28f{bottom:244.939500px;}
|
||
.y128{bottom:245.056500px;}
|
||
.y117{bottom:246.862500px;}
|
||
.y183{bottom:247.362000px;}
|
||
.y273{bottom:248.101500px;}
|
||
.y11{bottom:249.030000px;}
|
||
.y245{bottom:249.043500px;}
|
||
.y10c{bottom:249.066000px;}
|
||
.y64{bottom:249.109500px;}
|
||
.y2{bottom:249.237000px;}
|
||
.y1bb{bottom:250.336500px;}
|
||
.y251{bottom:250.887000px;}
|
||
.y30{bottom:250.939500px;}
|
||
.ye2{bottom:251.358000px;}
|
||
.y21c{bottom:251.779500px;}
|
||
.y1d6{bottom:251.800500px;}
|
||
.y19f{bottom:252.703500px;}
|
||
.y134{bottom:252.831000px;}
|
||
.y14c{bottom:253.284000px;}
|
||
.y103{bottom:253.749000px;}
|
||
.y193{bottom:254.137500px;}
|
||
.y7a{bottom:255.087000px;}
|
||
.y202{bottom:255.396000px;}
|
||
.yca{bottom:255.834000px;}
|
||
.ybf{bottom:255.864000px;}
|
||
.y22c{bottom:256.891500px;}
|
||
.y46{bottom:257.197500px;}
|
||
.y4f{bottom:257.292000px;}
|
||
.y179{bottom:257.313000px;}
|
||
.y283{bottom:258.823500px;}
|
||
.y141{bottom:259.114500px;}
|
||
.y20d{bottom:259.272000px;}
|
||
.y97{bottom:259.924500px;}
|
||
.y23{bottom:261.064500px;}
|
||
.y28e{bottom:261.265500px;}
|
||
.y127{bottom:261.382500px;}
|
||
.y120{bottom:261.636000px;}
|
||
.ye4{bottom:262.119000px;}
|
||
.yf9{bottom:262.608000px;}
|
||
.y16a{bottom:262.869000px;}
|
||
.yd5{bottom:263.044500px;}
|
||
.y1e3{bottom:263.146500px;}
|
||
.y39{bottom:263.269500px;}
|
||
.y223{bottom:263.299500px;}
|
||
.y155{bottom:263.515500px;}
|
||
.ya6{bottom:264.016500px;}
|
||
.y272{bottom:264.427500px;}
|
||
.y6f{bottom:264.972000px;}
|
||
.y1f1{bottom:266.056500px;}
|
||
.y1ba{bottom:266.662500px;}
|
||
.y8{bottom:266.928000px;}
|
||
.y250{bottom:267.213000px;}
|
||
.y1d5{bottom:268.126500px;}
|
||
.y236{bottom:269.224500px;}
|
||
.y2f{bottom:269.844000px;}
|
||
.yb3{bottom:270.262500px;}
|
||
.y19e{bottom:271.608000px;}
|
||
.y1b1{bottom:271.761000px;}
|
||
.y18{bottom:272.019000px;}
|
||
.y10b{bottom:272.439000px;}
|
||
.y192{bottom:273.042000px;}
|
||
.ye1{bottom:274.731000px;}
|
||
.ybe{bottom:274.768500px;}
|
||
.y21b{bottom:275.151000px;}
|
||
.y20c{bottom:275.599500px;}
|
||
.y22b{bottom:275.796000px;}
|
||
.y45{bottom:276.102000px;}
|
||
.y178{bottom:276.217500px;}
|
||
.y1ca{bottom:276.463500px;}
|
||
.y102{bottom:277.360500px;}
|
||
.y14b{bottom:277.639500px;}
|
||
.y140{bottom:278.019000px;}
|
||
.y63{bottom:278.460000px;}
|
||
.y84{bottom:279.169500px;}
|
||
.y182{bottom:280.089000px;}
|
||
.y1{bottom:280.171500px;}
|
||
.y244{bottom:280.590000px;}
|
||
.y271{bottom:280.755000px;}
|
||
.ye3{bottom:281.022000px;}
|
||
.y169{bottom:281.773500px;}
|
||
.y1e2{bottom:282.049500px;}
|
||
.y8d{bottom:282.942000px;}
|
||
.y24f{bottom:283.539000px;}
|
||
.y22{bottom:284.437500px;}
|
||
.y1d4{bottom:284.452500px;}
|
||
.y235{bottom:285.552000px;}
|
||
.yf8{bottom:286.219500px;}
|
||
.y5a{bottom:286.348500px;}
|
||
.y38{bottom:286.641000px;}
|
||
.y79{bottom:287.388000px;}
|
||
.y6e{bottom:288.345000px;}
|
||
.y2e{bottom:288.748500px;}
|
||
.y19d{bottom:290.511000px;}
|
||
.y1b9{bottom:291.871500px;}
|
||
.y20b{bottom:291.925500px;}
|
||
.y191{bottom:291.945000px;}
|
||
.y201{bottom:293.430000px;}
|
||
.yb2{bottom:293.635500px;}
|
||
.yef{bottom:293.673000px;}
|
||
.y222{bottom:294.853500px;}
|
||
.y1f0{bottom:294.861000px;}
|
||
.y1b0{bottom:295.132500px;}
|
||
.y7{bottom:295.731000px;}
|
||
.y154{bottom:295.816500px;}
|
||
.y270{bottom:297.081000px;}
|
||
.y24e{bottom:299.866500px;}
|
||
.y13f{bottom:300.285000px;}
|
||
.y44{bottom:300.355500px;}
|
||
.y168{bottom:300.678000px;}
|
||
.y1d3{bottom:300.778500px;}
|
||
.y17{bottom:300.823500px;}
|
||
.y83{bottom:302.541000px;}
|
||
.y181{bottom:303.462000px;}
|
||
.y11f{bottom:307.431000px;}
|
||
.y20a{bottom:308.251500px;}
|
||
.y19c{bottom:309.415500px;}
|
||
.y59{bottom:309.850500px;}
|
||
.y2d{bottom:310.014000px;}
|
||
.y21{bottom:310.761000px;}
|
||
.y190{bottom:310.849500px;}
|
||
.ybd{bottom:312.576000px;}
|
||
.y22a{bottom:313.603500px;}
|
||
.y1b8{bottom:315.244500px;}
|
||
.y24d{bottom:316.192500px;}
|
||
.y1d2{bottom:317.106000px;}
|
||
.y26f{bottom:317.806500px;}
|
||
.y1ef{bottom:318.232500px;}
|
||
.y167{bottom:319.581000px;}
|
||
.y209{bottom:324.577500px;}
|
||
.y6{bottom:354.223500px;}
|
||
.hd{height:22.124998px;}
|
||
.h8{height:23.910300px;}
|
||
.hf{height:24.818995px;}
|
||
.hc{height:24.890726px;}
|
||
.hb{height:26.899200px;}
|
||
.h9{height:27.576477px;}
|
||
.he{height:27.656178px;}
|
||
.h5{height:29.887800px;}
|
||
.ha{height:32.727300px;}
|
||
.h4{height:33.187635px;}
|
||
.h6{height:35.865600px;}
|
||
.h7{height:43.038600px;}
|
||
.h3{height:59.177400px;}
|
||
.h2{height:74.361300px;}
|
||
.h0{height:382.677000px;}
|
||
.h1{height:383.250000px;}
|
||
.w0{width:680.314500px;}
|
||
.w1{width:681.000000px;}
|
||
.x0{left:0.000000px;}
|
||
.x4{left:16.000500px;}
|
||
.x1{left:42.519000px;}
|
||
.x5{left:47.965500px;}
|
||
.x12{left:50.238000px;}
|
||
.x9{left:54.337500px;}
|
||
.xa{left:56.314500px;}
|
||
.x11{left:58.806000px;}
|
||
.x17{left:68.185500px;}
|
||
.x20{left:70.390500px;}
|
||
.x15{left:72.408000px;}
|
||
.x6{left:75.729000px;}
|
||
.xb{left:79.729500px;}
|
||
.xc{left:87.064500px;}
|
||
.x19{left:94.810500px;}
|
||
.x13{left:95.991000px;}
|
||
.x16{left:97.812000px;}
|
||
.x14{left:103.491000px;}
|
||
.xd{left:107.974500px;}
|
||
.xe{left:112.458000px;}
|
||
.x1a{left:123.217500px;}
|
||
.x18{left:131.734500px;}
|
||
.xf{left:140.701500px;}
|
||
.x2{left:157.506000px;}
|
||
.x8{left:160.158000px;}
|
||
.x1f{left:174.027000px;}
|
||
.x1e{left:193.080000px;}
|
||
.x1d{left:250.240500px;}
|
||
.x21{left:251.772000px;}
|
||
.x1b{left:344.995500px;}
|
||
.x1c{left:373.240500px;}
|
||
.x3{left:568.057500px;}
|
||
.x10{left:636.604500px;}
|
||
.x7{left:642.955500px;}
|
||
@media print{
|
||
.v0{vertical-align:0.000000pt;}
|
||
.ls0{letter-spacing:0.000000pt;}
|
||
.ws0{word-spacing:0.000000pt;}
|
||
._4{margin-left:-6.538533pt;}
|
||
._7{margin-left:-3.910679pt;}
|
||
._d{margin-left:-2.940074pt;}
|
||
._3{margin-left:-1.616267pt;}
|
||
._c{width:1.616267pt;}
|
||
._0{width:2.732089pt;}
|
||
._f{width:3.937259pt;}
|
||
._1f{width:4.930835pt;}
|
||
._11{width:10.096169pt;}
|
||
._b{width:11.795718pt;}
|
||
._e{width:13.390169pt;}
|
||
._6{width:14.325973pt;}
|
||
._8{width:15.600208pt;}
|
||
._10{width:17.221833pt;}
|
||
._a{width:18.720197pt;}
|
||
._21{width:19.640309pt;}
|
||
._1a{width:20.567313pt;}
|
||
._1b{width:21.547363pt;}
|
||
._24{width:22.443548pt;}
|
||
._18{width:23.558720pt;}
|
||
._14{width:25.185147pt;}
|
||
._5{width:27.770400pt;}
|
||
._13{width:30.019207pt;}
|
||
._2b{width:30.984582pt;}
|
||
._1{width:32.256279pt;}
|
||
._16{width:33.474560pt;}
|
||
._2{width:36.292533pt;}
|
||
._9{width:37.744249pt;}
|
||
._20{width:45.322693pt;}
|
||
._1c{width:49.728141pt;}
|
||
._35{width:60.194752pt;}
|
||
._26{width:67.113318pt;}
|
||
._29{width:75.248030pt;}
|
||
._19{width:83.685547pt;}
|
||
._3b{width:89.934871pt;}
|
||
._2d{width:91.018660pt;}
|
||
._3f{width:101.073355pt;}
|
||
._15{width:133.413261pt;}
|
||
._23{width:134.548200pt;}
|
||
._40{width:150.531053pt;}
|
||
._37{width:180.273001pt;}
|
||
._36{width:181.357008pt;}
|
||
._1d{width:183.870152pt;}
|
||
._17{width:200.848924pt;}
|
||
._3c{width:210.920865pt;}
|
||
._32{width:225.819698pt;}
|
||
._3d{width:241.032966pt;}
|
||
._3a{width:256.089016pt;}
|
||
._22{width:284.046647pt;}
|
||
._33{width:298.389328pt;}
|
||
._46{width:318.172021pt;}
|
||
._2c{width:331.201728pt;}
|
||
._42{width:332.092590pt;}
|
||
._2a{width:391.420344pt;}
|
||
._34{width:466.693283pt;}
|
||
._31{width:617.240788pt;}
|
||
._27{width:652.748942pt;}
|
||
._39{width:662.405283pt;}
|
||
._28{width:697.973116pt;}
|
||
._12{width:755.272075pt;}
|
||
._30{width:781.312666pt;}
|
||
._38{width:787.263698pt;}
|
||
._1e{width:799.266224pt;}
|
||
._3e{width:854.680257pt;}
|
||
._2f{width:937.883770pt;}
|
||
._25{width:951.187593pt;}
|
||
._45{width:1017.500088pt;}
|
||
._43{width:1066.900535pt;}
|
||
._41{width:1125.594377pt;}
|
||
._44{width:1325.465054pt;}
|
||
._2e{width:1330.225880pt;}
|
||
.fs5{font-size:28.338133pt;}
|
||
.fs7{font-size:31.880533pt;}
|
||
.fs3{font-size:35.422578pt;}
|
||
.fs6{font-size:38.787911pt;}
|
||
.fs2{font-size:42.507378pt;}
|
||
.fs4{font-size:51.008711pt;}
|
||
.fs1{font-size:73.466667pt;}
|
||
.fs0{font-size:88.131911pt;}
|
||
.y260{bottom:-9.184000pt;}
|
||
.y0{bottom:-0.666667pt;}
|
||
.y282{bottom:2.852000pt;}
|
||
.y200{bottom:3.496000pt;}
|
||
.y2c{bottom:4.188000pt;}
|
||
.y1c9{bottom:4.838667pt;}
|
||
.y25f{bottom:5.328000pt;}
|
||
.y243{bottom:6.140000pt;}
|
||
.y8c{bottom:8.493333pt;}
|
||
.y2a8{bottom:8.989333pt;}
|
||
.y26e{bottom:9.102667pt;}
|
||
.y6d{bottom:10.004000pt;}
|
||
.y43{bottom:10.216000pt;}
|
||
.y1af{bottom:10.237333pt;}
|
||
.y78{bottom:10.257333pt;}
|
||
.y180{bottom:11.704000pt;}
|
||
.y21a{bottom:12.782667pt;}
|
||
.ya5{bottom:13.361333pt;}
|
||
.yf7{bottom:14.333333pt;}
|
||
.y18f{bottom:14.548000pt;}
|
||
.y29d{bottom:14.553333pt;}
|
||
.y133{bottom:14.657333pt;}
|
||
.y15c{bottom:15.005333pt;}
|
||
.y177{bottom:15.216000pt;}
|
||
.y1a8{bottom:16.736000pt;}
|
||
.y10{bottom:17.357333pt;}
|
||
.y281{bottom:17.365333pt;}
|
||
.y1ff{bottom:18.009333pt;}
|
||
.y1c8{bottom:19.350667pt;}
|
||
.yd4{bottom:19.576000pt;}
|
||
.y25e{bottom:19.840000pt;}
|
||
.y58{bottom:19.886667pt;}
|
||
.y1e1{bottom:20.652000pt;}
|
||
.y28c{bottom:20.856000pt;}
|
||
.y2b{bottom:20.990667pt;}
|
||
.yb1{bottom:21.530667pt;}
|
||
.y82{bottom:23.348000pt;}
|
||
.y26d{bottom:23.614667pt;}
|
||
.y2a7{bottom:25.792000pt;}
|
||
.y116{bottom:27.238667pt;}
|
||
.y219{bottom:27.294667pt;}
|
||
.ya4{bottom:27.873333pt;}
|
||
.y29c{bottom:29.065333pt;}
|
||
.y132{bottom:29.169333pt;}
|
||
.y77{bottom:29.718667pt;}
|
||
.y2a6{bottom:29.945333pt;}
|
||
.y13e{bottom:30.028000pt;}
|
||
.yf6{bottom:31.137333pt;}
|
||
.y18e{bottom:31.352000pt;}
|
||
.yee{bottom:31.776000pt;}
|
||
.y280{bottom:31.877333pt;}
|
||
.y176{bottom:32.018667pt;}
|
||
.y1ee{bottom:32.265333pt;}
|
||
.y1fe{bottom:32.521333pt;}
|
||
.y96{bottom:33.814667pt;}
|
||
.y166{bottom:33.828000pt;}
|
||
.y1c7{bottom:33.862667pt;}
|
||
.y25d{bottom:34.352000pt;}
|
||
.y1e0{bottom:35.164000pt;}
|
||
.y1d1{bottom:35.534667pt;}
|
||
.yb0{bottom:36.042667pt;}
|
||
.y57{bottom:36.689333pt;}
|
||
.y1a7{bottom:37.512000pt;}
|
||
.y26c{bottom:38.126667pt;}
|
||
.y8b{bottom:38.962667pt;}
|
||
.y42{bottom:39.812000pt;}
|
||
.y23f{bottom:39.890667pt;}
|
||
.yd3{bottom:40.350667pt;}
|
||
.y2a{bottom:40.452000pt;}
|
||
.y115{bottom:41.750667pt;}
|
||
.y218{bottom:41.806667pt;}
|
||
.ya3{bottom:42.386667pt;}
|
||
.yc9{bottom:42.596000pt;}
|
||
.y28b{bottom:42.960000pt;}
|
||
.y11e{bottom:42.981333pt;}
|
||
.y29b{bottom:43.577333pt;}
|
||
.yf{bottom:45.188000pt;}
|
||
.y14a{bottom:45.485333pt;}
|
||
.y27f{bottom:46.389333pt;}
|
||
.y1fd{bottom:47.033333pt;}
|
||
.y1f{bottom:47.304000pt;}
|
||
.y24c{bottom:47.573333pt;}
|
||
.y153{bottom:47.752000pt;}
|
||
.yf5{bottom:47.941333pt;}
|
||
.y18d{bottom:48.154667pt;}
|
||
.y2a5{bottom:48.277333pt;}
|
||
.y1c6{bottom:48.374667pt;}
|
||
.y175{bottom:48.822667pt;}
|
||
.y25c{bottom:48.865333pt;}
|
||
.y37{bottom:48.968000pt;}
|
||
.y1ed{bottom:49.068000pt;}
|
||
.y76{bottom:49.178667pt;}
|
||
.y1df{bottom:49.677333pt;}
|
||
.ye0{bottom:49.742667pt;}
|
||
.yaf{bottom:50.556000pt;}
|
||
.y95{bottom:50.618667pt;}
|
||
.y165{bottom:50.632000pt;}
|
||
.y26b{bottom:52.638667pt;}
|
||
.y81{bottom:53.421333pt;}
|
||
.y56{bottom:53.493333pt;}
|
||
.y62{bottom:54.146667pt;}
|
||
.y114{bottom:56.262667pt;}
|
||
.y1d0{bottom:56.309333pt;}
|
||
.y217{bottom:56.318667pt;}
|
||
.ya2{bottom:56.898667pt;}
|
||
.y1b7{bottom:57.986667pt;}
|
||
.y29a{bottom:58.090667pt;}
|
||
.y131{bottom:58.193333pt;}
|
||
.yc8{bottom:59.400000pt;}
|
||
.y208{bottom:59.501333pt;}
|
||
.y41{bottom:59.604000pt;}
|
||
.y234{bottom:60.313333pt;}
|
||
.y6c{bottom:60.780000pt;}
|
||
.y27e{bottom:60.901333pt;}
|
||
.yd2{bottom:61.126667pt;}
|
||
.y11d{bottom:61.312000pt;}
|
||
.y1fc{bottom:61.545333pt;}
|
||
.y149{bottom:62.288000pt;}
|
||
.y1c5{bottom:62.886667pt;}
|
||
.y101{bottom:63.081333pt;}
|
||
.y25b{bottom:63.377333pt;}
|
||
.y242{bottom:64.189333pt;}
|
||
.yf4{bottom:64.744000pt;}
|
||
.yed{bottom:64.958667pt;}
|
||
.y28a{bottom:65.064000pt;}
|
||
.yae{bottom:65.068000pt;}
|
||
.y4e{bottom:65.128000pt;}
|
||
.y174{bottom:65.626667pt;}
|
||
.y36{bottom:65.772000pt;}
|
||
.y1ec{bottom:65.872000pt;}
|
||
.y152{bottom:66.082667pt;}
|
||
.ydf{bottom:66.545333pt;}
|
||
.y229{bottom:66.609333pt;}
|
||
.y94{bottom:67.422667pt;}
|
||
.y164{bottom:67.434667pt;}
|
||
.y2a4{bottom:68.484000pt;}
|
||
.y75{bottom:68.638667pt;}
|
||
.y18c{bottom:68.645333pt;}
|
||
.y13d{bottom:70.517333pt;}
|
||
.y113{bottom:70.774667pt;}
|
||
.ye{bottom:70.792000pt;}
|
||
.y216{bottom:70.830667pt;}
|
||
.y61{bottom:70.950667pt;}
|
||
.ya1{bottom:71.410667pt;}
|
||
.y5{bottom:71.944000pt;}
|
||
.y15b{bottom:72.390667pt;}
|
||
.y299{bottom:72.602667pt;}
|
||
.y130{bottom:72.705333pt;}
|
||
.y126{bottom:72.836000pt;}
|
||
.y1e{bottom:72.908000pt;}
|
||
.y1a6{bottom:73.393333pt;}
|
||
.y10a{bottom:73.538667pt;}
|
||
.y1ae{bottom:73.598667pt;}
|
||
.y80{bottom:74.197333pt;}
|
||
.y29{bottom:74.296000pt;}
|
||
.y19b{bottom:74.668000pt;}
|
||
.y27d{bottom:75.413333pt;}
|
||
.y24b{bottom:75.614667pt;}
|
||
.y23e{bottom:75.630667pt;}
|
||
.y8a{bottom:75.677333pt;}
|
||
.y1fb{bottom:76.057333pt;}
|
||
.yc7{bottom:76.202667pt;}
|
||
.ybc{bottom:76.714667pt;}
|
||
.y233{bottom:77.116000pt;}
|
||
.y6b{bottom:77.584000pt;}
|
||
.y25a{bottom:77.889333pt;}
|
||
.y1de{bottom:78.701333pt;}
|
||
.y1b6{bottom:78.762667pt;}
|
||
.y148{bottom:79.092000pt;}
|
||
.yad{bottom:79.580000pt;}
|
||
.y11c{bottom:79.642667pt;}
|
||
.y207{bottom:80.276000pt;}
|
||
.y55{bottom:81.257333pt;}
|
||
.y100{bottom:81.413333pt;}
|
||
.yf3{bottom:81.548000pt;}
|
||
.y26a{bottom:81.662667pt;}
|
||
.yec{bottom:81.762667pt;}
|
||
.y4d{bottom:81.930667pt;}
|
||
.y173{bottom:82.429333pt;}
|
||
.yde{bottom:83.349333pt;}
|
||
.y93{bottom:84.226667pt;}
|
||
.y163{bottom:84.238667pt;}
|
||
.yd1{bottom:84.558667pt;}
|
||
.y151{bottom:84.996000pt;}
|
||
.y112{bottom:85.286667pt;}
|
||
.y18b{bottom:85.449333pt;}
|
||
.y35{bottom:85.564000pt;}
|
||
.y289{bottom:85.838667pt;}
|
||
.ya0{bottom:85.922667pt;}
|
||
.y1cf{bottom:86.878667pt;}
|
||
.y298{bottom:87.114667pt;}
|
||
.y12f{bottom:87.217333pt;}
|
||
.y13c{bottom:87.321333pt;}
|
||
.y60{bottom:87.754667pt;}
|
||
.y74{bottom:88.098667pt;}
|
||
.y2a3{bottom:88.110667pt;}
|
||
.y40{bottom:88.204000pt;}
|
||
.y27c{bottom:89.925333pt;}
|
||
.y1a5{bottom:90.197333pt;}
|
||
.y1fa{bottom:90.569333pt;}
|
||
.y19a{bottom:91.472000pt;}
|
||
.y109{bottom:91.870667pt;}
|
||
.y1c4{bottom:91.912000pt;}
|
||
.y259{bottom:92.401333pt;}
|
||
.yc6{bottom:93.006667pt;}
|
||
.y15a{bottom:93.165333pt;}
|
||
.y1dd{bottom:93.213333pt;}
|
||
.y16{bottom:93.341333pt;}
|
||
.ybb{bottom:93.517333pt;}
|
||
.y232{bottom:93.920000pt;}
|
||
.yac{bottom:94.092000pt;}
|
||
.y4{bottom:94.177333pt;}
|
||
.y1ad{bottom:94.374667pt;}
|
||
.y6a{bottom:94.388000pt;}
|
||
.y221{bottom:94.804000pt;}
|
||
.y28{bottom:95.072000pt;}
|
||
.y269{bottom:96.176000pt;}
|
||
.yd{bottom:96.394667pt;}
|
||
.y89{bottom:96.453333pt;}
|
||
.y228{bottom:96.682667pt;}
|
||
.y11b{bottom:97.974667pt;}
|
||
.y1d{bottom:98.512000pt;}
|
||
.yeb{bottom:98.565333pt;}
|
||
.y4c{bottom:98.734667pt;}
|
||
.y172{bottom:99.233333pt;}
|
||
.y1eb{bottom:99.478667pt;}
|
||
.yff{bottom:99.744000pt;}
|
||
.y111{bottom:99.798667pt;}
|
||
.y215{bottom:99.854667pt;}
|
||
.ydd{bottom:100.153333pt;}
|
||
.y9f{bottom:100.434667pt;}
|
||
.y92{bottom:101.029333pt;}
|
||
.y297{bottom:101.626667pt;}
|
||
.y18a{bottom:102.252000pt;}
|
||
.y54{bottom:102.377333pt;}
|
||
.y24a{bottom:103.656000pt;}
|
||
.ydc{bottom:103.905333pt;}
|
||
.y13b{bottom:104.125333pt;}
|
||
.y7f{bottom:104.270667pt;}
|
||
.y27b{bottom:104.437333pt;}
|
||
.y125{bottom:104.869333pt;}
|
||
.y3f{bottom:105.008000pt;}
|
||
.y1f9{bottom:105.081333pt;}
|
||
.y1c3{bottom:106.424000pt;}
|
||
.y258{bottom:106.913333pt;}
|
||
.y1a4{bottom:107.000000pt;}
|
||
.y1dc{bottom:107.725333pt;}
|
||
.y288{bottom:107.909333pt;}
|
||
.yab{bottom:108.604000pt;}
|
||
.y23d{bottom:108.701333pt;}
|
||
.yc5{bottom:109.810667pt;}
|
||
.y108{bottom:110.201333pt;}
|
||
.yba{bottom:110.321333pt;}
|
||
.y268{bottom:110.688000pt;}
|
||
.y231{bottom:110.724000pt;}
|
||
.y17f{bottom:111.097333pt;}
|
||
.y69{bottom:111.190667pt;}
|
||
.y220{bottom:111.608000pt;}
|
||
.y150{bottom:112.413333pt;}
|
||
.y147{bottom:112.698667pt;}
|
||
.y5f{bottom:113.176000pt;}
|
||
.y159{bottom:113.941333pt;}
|
||
.y206{bottom:114.165333pt;}
|
||
.y110{bottom:114.312000pt;}
|
||
.y214{bottom:114.366667pt;}
|
||
.y9e{bottom:114.946667pt;}
|
||
.yf2{bottom:115.156000pt;}
|
||
.yea{bottom:115.369333pt;}
|
||
.y4b{bottom:115.538667pt;}
|
||
.y171{bottom:116.037333pt;}
|
||
.y296{bottom:116.138667pt;}
|
||
.y12e{bottom:116.242667pt;}
|
||
.y1ea{bottom:116.282667pt;}
|
||
.y2a2{bottom:116.822667pt;}
|
||
.yd0{bottom:116.956000pt;}
|
||
.y227{bottom:117.457333pt;}
|
||
.y91{bottom:117.833333pt;}
|
||
.y162{bottom:117.845333pt;}
|
||
.yfe{bottom:118.076000pt;}
|
||
.y15{bottom:118.945333pt;}
|
||
.y27a{bottom:118.949333pt;}
|
||
.y189{bottom:119.056000pt;}
|
||
.y1f8{bottom:119.593333pt;}
|
||
.ydb{bottom:120.709333pt;}
|
||
.y13a{bottom:120.928000pt;}
|
||
.y1c2{bottom:120.936000pt;}
|
||
.y1ce{bottom:120.937333pt;}
|
||
.y257{bottom:121.425333pt;}
|
||
.y3e{bottom:121.812000pt;}
|
||
.yc{bottom:121.998667pt;}
|
||
.y241{bottom:122.237333pt;}
|
||
.y23c{bottom:123.213333pt;}
|
||
.y27{bottom:123.784000pt;}
|
||
.y1a3{bottom:123.804000pt;}
|
||
.y1c{bottom:124.114667pt;}
|
||
.y7e{bottom:125.046667pt;}
|
||
.y199{bottom:125.078667pt;}
|
||
.y267{bottom:125.200000pt;}
|
||
.y1b5{bottom:126.104000pt;}
|
||
.y1b4{bottom:126.105333pt;}
|
||
.yc4{bottom:126.613333pt;}
|
||
.yb9{bottom:127.125333pt;}
|
||
.y17e{bottom:127.901333pt;}
|
||
.y68{bottom:127.994667pt;}
|
||
.y34{bottom:128.444000pt;}
|
||
.y10f{bottom:128.824000pt;}
|
||
.y213{bottom:128.880000pt;}
|
||
.y9d{bottom:129.458667pt;}
|
||
.y146{bottom:129.502667pt;}
|
||
.y1ac{bottom:129.728000pt;}
|
||
.y249{bottom:130.474667pt;}
|
||
.y295{bottom:130.650667pt;}
|
||
.y12d{bottom:130.754667pt;}
|
||
.y107{bottom:131.189333pt;}
|
||
.y124{bottom:131.261333pt;}
|
||
.y14f{bottom:131.328000pt;}
|
||
.yf1{bottom:131.958667pt;}
|
||
.ye9{bottom:132.173333pt;}
|
||
.y4a{bottom:132.341333pt;}
|
||
.y170{bottom:132.840000pt;}
|
||
.y1e9{bottom:133.086667pt;}
|
||
.y88{bottom:133.169333pt;}
|
||
.y279{bottom:133.462667pt;}
|
||
.ycf{bottom:133.760000pt;}
|
||
.y1f7{bottom:134.106667pt;}
|
||
.y53{bottom:134.630667pt;}
|
||
.y90{bottom:134.637333pt;}
|
||
.y161{bottom:134.649333pt;}
|
||
.y1c1{bottom:135.448000pt;}
|
||
.y188{bottom:135.860000pt;}
|
||
.y256{bottom:135.937333pt;}
|
||
.y287{bottom:135.957333pt;}
|
||
.y11a{bottom:136.248000pt;}
|
||
.yfd{bottom:136.406667pt;}
|
||
.y1db{bottom:136.749333pt;}
|
||
.yaa{bottom:137.034667pt;}
|
||
.y73{bottom:137.220000pt;}
|
||
.yda{bottom:137.512000pt;}
|
||
.y23b{bottom:137.726667pt;}
|
||
.y139{bottom:137.732000pt;}
|
||
.y2a1{bottom:138.222667pt;}
|
||
.y3d{bottom:138.614667pt;}
|
||
.y266{bottom:139.712000pt;}
|
||
.y198{bottom:141.882667pt;}
|
||
.y212{bottom:143.392000pt;}
|
||
.yc3{bottom:143.417333pt;}
|
||
.yb8{bottom:143.928000pt;}
|
||
.y9c{bottom:143.972000pt;}
|
||
.y205{bottom:144.240000pt;}
|
||
.y230{bottom:144.330667pt;}
|
||
.y14{bottom:144.549333pt;}
|
||
.y17d{bottom:144.705333pt;}
|
||
.y67{bottom:144.798667pt;}
|
||
.y294{bottom:145.162667pt;}
|
||
.y21f{bottom:145.214667pt;}
|
||
.y33{bottom:145.246667pt;}
|
||
.y145{bottom:146.306667pt;}
|
||
.yb{bottom:147.602667pt;}
|
||
.y278{bottom:147.974667pt;}
|
||
.y1f6{bottom:148.618667pt;}
|
||
.ye8{bottom:148.976000pt;}
|
||
.y49{bottom:149.145333pt;}
|
||
.y226{bottom:149.388000pt;}
|
||
.y16f{bottom:149.644000pt;}
|
||
.y1b{bottom:149.718667pt;}
|
||
.y1e8{bottom:149.889333pt;}
|
||
.y1c0{bottom:149.960000pt;}
|
||
.y255{bottom:150.450667pt;}
|
||
.y1ab{bottom:150.504000pt;}
|
||
.yce{bottom:150.564000pt;}
|
||
.y26{bottom:151.201333pt;}
|
||
.y240{bottom:151.261333pt;}
|
||
.y160{bottom:151.453333pt;}
|
||
.y10e{bottom:151.940000pt;}
|
||
.y23a{bottom:152.238667pt;}
|
||
.y187{bottom:152.662667pt;}
|
||
.y158{bottom:153.313333pt;}
|
||
.y87{bottom:153.944000pt;}
|
||
.y265{bottom:154.224000pt;}
|
||
.yd9{bottom:154.316000pt;}
|
||
.y138{bottom:154.536000pt;}
|
||
.y1cd{bottom:154.996000pt;}
|
||
.y7d{bottom:155.120000pt;}
|
||
.y52{bottom:155.750667pt;}
|
||
.yfc{bottom:157.394667pt;}
|
||
.y1a2{bottom:157.410667pt;}
|
||
.y123{bottom:157.653333pt;}
|
||
.y2a0{bottom:157.849333pt;}
|
||
.y72{bottom:157.996000pt;}
|
||
.y3c{bottom:158.408000pt;}
|
||
.y9b{bottom:158.484000pt;}
|
||
.y197{bottom:158.685333pt;}
|
||
.y5e{bottom:158.986667pt;}
|
||
.y293{bottom:159.674667pt;}
|
||
.y248{bottom:159.737333pt;}
|
||
.y12c{bottom:159.778667pt;}
|
||
.yf0{bottom:160.221333pt;}
|
||
.yb7{bottom:160.732000pt;}
|
||
.y14e{bottom:160.768000pt;}
|
||
.y22f{bottom:161.134667pt;}
|
||
.y17c{bottom:161.508000pt;}
|
||
.y66{bottom:161.601333pt;}
|
||
.y21e{bottom:162.018667pt;}
|
||
.y32{bottom:162.050667pt;}
|
||
.y277{bottom:162.486667pt;}
|
||
.y144{bottom:163.109333pt;}
|
||
.y1f5{bottom:163.130667pt;}
|
||
.y1bf{bottom:164.472000pt;}
|
||
.y286{bottom:164.669333pt;}
|
||
.y28d{bottom:164.962667pt;}
|
||
.y204{bottom:165.014667pt;}
|
||
.ya9{bottom:165.082667pt;}
|
||
.y1da{bottom:165.774667pt;}
|
||
.ye7{bottom:165.780000pt;}
|
||
.y16e{bottom:166.448000pt;}
|
||
.y1e7{bottom:166.693333pt;}
|
||
.ycd{bottom:167.366667pt;}
|
||
.y8f{bottom:168.244000pt;}
|
||
.y15f{bottom:168.256000pt;}
|
||
.y119{bottom:168.280000pt;}
|
||
.y264{bottom:168.736000pt;}
|
||
.y186{bottom:169.466667pt;}
|
||
.y13{bottom:170.153333pt;}
|
||
.y106{bottom:170.561333pt;}
|
||
.y3{bottom:170.710667pt;}
|
||
.yd8{bottom:171.120000pt;}
|
||
.y1aa{bottom:171.278667pt;}
|
||
.y137{bottom:171.338667pt;}
|
||
.y48{bottom:171.594667pt;}
|
||
.y211{bottom:172.416000pt;}
|
||
.y10d{bottom:172.716000pt;}
|
||
.y9a{bottom:172.996000pt;}
|
||
.ya{bottom:173.206667pt;}
|
||
.y1b3{bottom:173.446667pt;}
|
||
.y157{bottom:174.088000pt;}
|
||
.y292{bottom:174.188000pt;}
|
||
.y1a1{bottom:174.214667pt;}
|
||
.y12b{bottom:174.290667pt;}
|
||
.y196{bottom:175.489333pt;}
|
||
.y1cc{bottom:175.770667pt;}
|
||
.y5d{bottom:175.790667pt;}
|
||
.y7c{bottom:175.894667pt;}
|
||
.y276{bottom:176.998667pt;}
|
||
.yc2{bottom:177.024000pt;}
|
||
.yb6{bottom:177.536000pt;}
|
||
.y1f4{bottom:177.642667pt;}
|
||
.y247{bottom:178.068000pt;}
|
||
.y1be{bottom:178.984000pt;}
|
||
.y3b{bottom:179.182667pt;}
|
||
.y225{bottom:179.461333pt;}
|
||
.y254{bottom:179.474667pt;}
|
||
.y25{bottom:179.913333pt;}
|
||
.y1d9{bottom:180.286667pt;}
|
||
.y239{bottom:181.262667pt;}
|
||
.y51{bottom:181.840000pt;}
|
||
.y31{bottom:181.842667pt;}
|
||
.y122{bottom:182.413333pt;}
|
||
.ye6{bottom:182.584000pt;}
|
||
.y263{bottom:183.248000pt;}
|
||
.y16d{bottom:183.250667pt;}
|
||
.y1e6{bottom:183.497333pt;}
|
||
.ycc{bottom:184.170667pt;}
|
||
.y20{bottom:184.330667pt;}
|
||
.y15e{bottom:185.060000pt;}
|
||
.ya8{bottom:185.857333pt;}
|
||
.y185{bottom:186.270667pt;}
|
||
.y71{bottom:186.708000pt;}
|
||
.y210{bottom:186.928000pt;}
|
||
.y29f{bottom:187.178667pt;}
|
||
.y285{bottom:187.218667pt;}
|
||
.y99{bottom:187.508000pt;}
|
||
.yd7{bottom:187.922667pt;}
|
||
.y136{bottom:188.142667pt;}
|
||
.y291{bottom:188.700000pt;}
|
||
.y12a{bottom:188.802667pt;}
|
||
.y105{bottom:188.892000pt;}
|
||
.y1a{bottom:190.586667pt;}
|
||
.y86{bottom:190.660000pt;}
|
||
.y1a0{bottom:191.018667pt;}
|
||
.y275{bottom:191.510667pt;}
|
||
.y1f3{bottom:192.154667pt;}
|
||
.y195{bottom:192.293333pt;}
|
||
.y5c{bottom:192.594667pt;}
|
||
.y1a9{bottom:193.349333pt;}
|
||
.y1bd{bottom:193.496000pt;}
|
||
.yc1{bottom:193.828000pt;}
|
||
.y253{bottom:193.986667pt;}
|
||
.y1b2{bottom:194.222667pt;}
|
||
.yb5{bottom:194.338667pt;}
|
||
.y118{bottom:194.672000pt;}
|
||
.y22e{bottom:194.741333pt;}
|
||
.y1d8{bottom:194.798667pt;}
|
||
.y17b{bottom:195.116000pt;}
|
||
.y65{bottom:195.342667pt;}
|
||
.y21d{bottom:195.625333pt;}
|
||
.y12{bottom:195.757333pt;}
|
||
.y238{bottom:195.774667pt;}
|
||
.y143{bottom:196.717333pt;}
|
||
.yfb{bottom:196.766667pt;}
|
||
.y203{bottom:196.945333pt;}
|
||
.y262{bottom:197.760000pt;}
|
||
.ye5{bottom:199.386667pt;}
|
||
.y16c{bottom:200.054667pt;}
|
||
.y224{bottom:200.237333pt;}
|
||
.y1e5{bottom:200.300000pt;}
|
||
.ycb{bottom:200.974667pt;}
|
||
.y20f{bottom:201.440000pt;}
|
||
.y15d{bottom:201.864000pt;}
|
||
.y8e{bottom:201.984000pt;}
|
||
.y98{bottom:202.020000pt;}
|
||
.y246{bottom:203.041333pt;}
|
||
.y184{bottom:203.073333pt;}
|
||
.y290{bottom:203.212000pt;}
|
||
.y129{bottom:203.314667pt;}
|
||
.y14d{bottom:203.492000pt;}
|
||
.yd6{bottom:204.726667pt;}
|
||
.y135{bottom:204.946667pt;}
|
||
.y7b{bottom:205.969333pt;}
|
||
.y274{bottom:206.022667pt;}
|
||
.y121{bottom:207.174667pt;}
|
||
.y104{bottom:207.224000pt;}
|
||
.y50{bottom:207.928000pt;}
|
||
.y29e{bottom:207.953333pt;}
|
||
.y284{bottom:207.994667pt;}
|
||
.y1bc{bottom:208.009333pt;}
|
||
.y252{bottom:208.498667pt;}
|
||
.y24{bottom:208.625333pt;}
|
||
.y194{bottom:209.096000pt;}
|
||
.y1d7{bottom:209.310667pt;}
|
||
.y237{bottom:210.286667pt;}
|
||
.yc0{bottom:210.632000pt;}
|
||
.yb4{bottom:211.142667pt;}
|
||
.y85{bottom:211.434667pt;}
|
||
.y22d{bottom:211.545333pt;}
|
||
.y9{bottom:211.665333pt;}
|
||
.y1cb{bottom:211.686667pt;}
|
||
.y47{bottom:211.816000pt;}
|
||
.y17a{bottom:211.918667pt;}
|
||
.y261{bottom:212.273333pt;}
|
||
.y3a{bottom:213.241333pt;}
|
||
.y156{bottom:213.461333pt;}
|
||
.y142{bottom:213.520000pt;}
|
||
.ya7{bottom:213.905333pt;}
|
||
.y70{bottom:214.756000pt;}
|
||
.yfa{bottom:215.097333pt;}
|
||
.y5b{bottom:215.158667pt;}
|
||
.y20e{bottom:215.952000pt;}
|
||
.y19{bottom:216.190667pt;}
|
||
.y1f2{bottom:216.286667pt;}
|
||
.y16b{bottom:216.858667pt;}
|
||
.y1e4{bottom:217.104000pt;}
|
||
.y28f{bottom:217.724000pt;}
|
||
.y128{bottom:217.828000pt;}
|
||
.y117{bottom:219.433333pt;}
|
||
.y183{bottom:219.877333pt;}
|
||
.y273{bottom:220.534667pt;}
|
||
.y11{bottom:221.360000pt;}
|
||
.y245{bottom:221.372000pt;}
|
||
.y10c{bottom:221.392000pt;}
|
||
.y64{bottom:221.430667pt;}
|
||
.y2{bottom:221.544000pt;}
|
||
.y1bb{bottom:222.521333pt;}
|
||
.y251{bottom:223.010667pt;}
|
||
.y30{bottom:223.057333pt;}
|
||
.ye2{bottom:223.429333pt;}
|
||
.y21c{bottom:223.804000pt;}
|
||
.y1d6{bottom:223.822667pt;}
|
||
.y19f{bottom:224.625333pt;}
|
||
.y134{bottom:224.738667pt;}
|
||
.y14c{bottom:225.141333pt;}
|
||
.y103{bottom:225.554667pt;}
|
||
.y193{bottom:225.900000pt;}
|
||
.y7a{bottom:226.744000pt;}
|
||
.y202{bottom:227.018667pt;}
|
||
.yca{bottom:227.408000pt;}
|
||
.ybf{bottom:227.434667pt;}
|
||
.y22c{bottom:228.348000pt;}
|
||
.y46{bottom:228.620000pt;}
|
||
.y4f{bottom:228.704000pt;}
|
||
.y179{bottom:228.722667pt;}
|
||
.y283{bottom:230.065333pt;}
|
||
.y141{bottom:230.324000pt;}
|
||
.y20d{bottom:230.464000pt;}
|
||
.y97{bottom:231.044000pt;}
|
||
.y23{bottom:232.057333pt;}
|
||
.y28e{bottom:232.236000pt;}
|
||
.y127{bottom:232.340000pt;}
|
||
.y120{bottom:232.565333pt;}
|
||
.ye4{bottom:232.994667pt;}
|
||
.yf9{bottom:233.429333pt;}
|
||
.y16a{bottom:233.661333pt;}
|
||
.yd5{bottom:233.817333pt;}
|
||
.y1e3{bottom:233.908000pt;}
|
||
.y39{bottom:234.017333pt;}
|
||
.y223{bottom:234.044000pt;}
|
||
.y155{bottom:234.236000pt;}
|
||
.ya6{bottom:234.681333pt;}
|
||
.y272{bottom:235.046667pt;}
|
||
.y6f{bottom:235.530667pt;}
|
||
.y1f1{bottom:236.494667pt;}
|
||
.y1ba{bottom:237.033333pt;}
|
||
.y8{bottom:237.269333pt;}
|
||
.y250{bottom:237.522667pt;}
|
||
.y1d5{bottom:238.334667pt;}
|
||
.y236{bottom:239.310667pt;}
|
||
.y2f{bottom:239.861333pt;}
|
||
.yb3{bottom:240.233333pt;}
|
||
.y19e{bottom:241.429333pt;}
|
||
.y1b1{bottom:241.565333pt;}
|
||
.y18{bottom:241.794667pt;}
|
||
.y10b{bottom:242.168000pt;}
|
||
.y192{bottom:242.704000pt;}
|
||
.ye1{bottom:244.205333pt;}
|
||
.ybe{bottom:244.238667pt;}
|
||
.y21b{bottom:244.578667pt;}
|
||
.y20c{bottom:244.977333pt;}
|
||
.y22b{bottom:245.152000pt;}
|
||
.y45{bottom:245.424000pt;}
|
||
.y178{bottom:245.526667pt;}
|
||
.y1ca{bottom:245.745333pt;}
|
||
.y102{bottom:246.542667pt;}
|
||
.y14b{bottom:246.790667pt;}
|
||
.y140{bottom:247.128000pt;}
|
||
.y63{bottom:247.520000pt;}
|
||
.y84{bottom:248.150667pt;}
|
||
.y182{bottom:248.968000pt;}
|
||
.y1{bottom:249.041333pt;}
|
||
.y244{bottom:249.413333pt;}
|
||
.y271{bottom:249.560000pt;}
|
||
.ye3{bottom:249.797333pt;}
|
||
.y169{bottom:250.465333pt;}
|
||
.y1e2{bottom:250.710667pt;}
|
||
.y8d{bottom:251.504000pt;}
|
||
.y24f{bottom:252.034667pt;}
|
||
.y22{bottom:252.833333pt;}
|
||
.y1d4{bottom:252.846667pt;}
|
||
.y235{bottom:253.824000pt;}
|
||
.yf8{bottom:254.417333pt;}
|
||
.y5a{bottom:254.532000pt;}
|
||
.y38{bottom:254.792000pt;}
|
||
.y79{bottom:255.456000pt;}
|
||
.y6e{bottom:256.306667pt;}
|
||
.y2e{bottom:256.665333pt;}
|
||
.y19d{bottom:258.232000pt;}
|
||
.y1b9{bottom:259.441333pt;}
|
||
.y20b{bottom:259.489333pt;}
|
||
.y191{bottom:259.506667pt;}
|
||
.y201{bottom:260.826667pt;}
|
||
.yb2{bottom:261.009333pt;}
|
||
.yef{bottom:261.042667pt;}
|
||
.y222{bottom:262.092000pt;}
|
||
.y1f0{bottom:262.098667pt;}
|
||
.y1b0{bottom:262.340000pt;}
|
||
.y7{bottom:262.872000pt;}
|
||
.y154{bottom:262.948000pt;}
|
||
.y270{bottom:264.072000pt;}
|
||
.y24e{bottom:266.548000pt;}
|
||
.y13f{bottom:266.920000pt;}
|
||
.y44{bottom:266.982667pt;}
|
||
.y168{bottom:267.269333pt;}
|
||
.y1d3{bottom:267.358667pt;}
|
||
.y17{bottom:267.398667pt;}
|
||
.y83{bottom:268.925333pt;}
|
||
.y181{bottom:269.744000pt;}
|
||
.y11f{bottom:273.272000pt;}
|
||
.y20a{bottom:274.001333pt;}
|
||
.y19c{bottom:275.036000pt;}
|
||
.y59{bottom:275.422667pt;}
|
||
.y2d{bottom:275.568000pt;}
|
||
.y21{bottom:276.232000pt;}
|
||
.y190{bottom:276.310667pt;}
|
||
.ybd{bottom:277.845333pt;}
|
||
.y22a{bottom:278.758667pt;}
|
||
.y1b8{bottom:280.217333pt;}
|
||
.y24d{bottom:281.060000pt;}
|
||
.y1d2{bottom:281.872000pt;}
|
||
.y26f{bottom:282.494667pt;}
|
||
.y1ef{bottom:282.873333pt;}
|
||
.y167{bottom:284.072000pt;}
|
||
.y209{bottom:288.513333pt;}
|
||
.y6{bottom:314.865333pt;}
|
||
.hd{height:19.666665pt;}
|
||
.h8{height:21.253600pt;}
|
||
.hf{height:22.061329pt;}
|
||
.hc{height:22.125090pt;}
|
||
.hb{height:23.910400pt;}
|
||
.h9{height:24.512424pt;}
|
||
.he{height:24.583269pt;}
|
||
.h5{height:26.566933pt;}
|
||
.ha{height:29.090933pt;}
|
||
.h4{height:29.500120pt;}
|
||
.h6{height:31.880533pt;}
|
||
.h7{height:38.256533pt;}
|
||
.h3{height:52.602133pt;}
|
||
.h2{height:66.098933pt;}
|
||
.h0{height:340.157333pt;}
|
||
.h1{height:340.666667pt;}
|
||
.w0{width:604.724000pt;}
|
||
.w1{width:605.333333pt;}
|
||
.x0{left:0.000000pt;}
|
||
.x4{left:14.222667pt;}
|
||
.x1{left:37.794667pt;}
|
||
.x5{left:42.636000pt;}
|
||
.x12{left:44.656000pt;}
|
||
.x9{left:48.300000pt;}
|
||
.xa{left:50.057333pt;}
|
||
.x11{left:52.272000pt;}
|
||
.x17{left:60.609333pt;}
|
||
.x20{left:62.569333pt;}
|
||
.x15{left:64.362667pt;}
|
||
.x6{left:67.314667pt;}
|
||
.xb{left:70.870667pt;}
|
||
.xc{left:77.390667pt;}
|
||
.x19{left:84.276000pt;}
|
||
.x13{left:85.325333pt;}
|
||
.x16{left:86.944000pt;}
|
||
.x14{left:91.992000pt;}
|
||
.xd{left:95.977333pt;}
|
||
.xe{left:99.962667pt;}
|
||
.x1a{left:109.526667pt;}
|
||
.x18{left:117.097333pt;}
|
||
.xf{left:125.068000pt;}
|
||
.x2{left:140.005333pt;}
|
||
.x8{left:142.362667pt;}
|
||
.x1f{left:154.690667pt;}
|
||
.x1e{left:171.626667pt;}
|
||
.x1d{left:222.436000pt;}
|
||
.x21{left:223.797333pt;}
|
||
.x1b{left:306.662667pt;}
|
||
.x1c{left:331.769333pt;}
|
||
.x3{left:504.940000pt;}
|
||
.x10{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">
|
||
</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-01-28</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Undefined<span class="_ _b"> </span>Behavio<span class="_ _3"></span>r<span class="_ _b"> </span>Common<span class="_ _b"> </span>Cases</div><div class="t m0 x6 h5 y9 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 x5 h7 ya 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 yb ff4 fs3 fc0 sc0 ls0 ws0">C++<span class="_ _b"> </span>Exceptions</div><div class="t m0 x6 h5 yc ff4 fs3 fc0 sc0 ls0 ws0">Defining<span class="_ _b"> </span>Custom<span class="_ _b"> </span>Exceptions</div><div class="t m0 x6 h5 yd ff5 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 ye 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 yf 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 y10 ff6 fs5 fc0 sc0 ls0 ws0">1/64</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:70.614000px;bottom:291.498000px;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:74.235000px;bottom:265.432500px;width:150.201000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfc" data-dest-detail='[12,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:233.722500px;width:126.539000px;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:70.614000px;bottom:189.178500px;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:74.235000px;bottom:161.653500px;width:71.648000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf16" data-dest-detail='[22,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:132.849000px;width:119.551000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf17" data-dest-detail='[23,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:103.714500px;width:82.883000px;height:11.068000px;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:74.235000px;bottom:75.240000px;width:108.178000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1d" data-dest-detail='[29,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:46.435500px;width:162.889000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 y11 ff1 fs3 fc2 sc0 ls0 ws0">3<span class="_ _9"> </span><span class="fs4 fc0">C++<span class="_ _a"> </span>Idioms</span></div><div class="t m0 x6 h5 y12 ff4 fs3 fc0 sc0 ls0 ws0">R<span class="_ _3"></span>ule<span class="_ _b"> </span>of<span class="_ _b"> </span>Zero/Three/Five</div><div class="t m0 x6 h5 y13 ff4 fs3 fc0 sc0 ls0 ws0">Singleton</div><div class="t m0 x6 h5 y14 ff4 fs3 fc0 sc0 ls0 ws0">PIMPL</div><div class="t m0 x6 h5 y15 ff4 fs3 fc0 sc0 ls0 ws0">CRTP</div><div class="t m0 x6 h5 y16 ff4 fs3 fc0 sc0 ls0 ws0">T<span class="_ _d"></span>emplate<span class="_ _b"> </span>Virtual<span class="_ _b"> </span>F<span class="_ _3"></span>unctions</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">2/64</div><a class="l" href="#pf1f" data-dest-detail='[31,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:70.614000px;bottom:244.797000px;width:84.716000px;height:13.781000px;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:74.235000px;bottom:214.996500px;width:104.898000px;height:11.955000px;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:74.235000px;bottom:187.021500px;width:40.570000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf24" data-dest-detail='[36,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:161.122500px;width:31.604000px;height:8.912000px;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:74.235000px;bottom:132.319500px;width:27.936000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf2b" data-dest-detail='[43,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:100.608000px;width:115.650000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">4<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 ff5 fs3 fc0 sc0 ls0 ws0">std::unique<span class="_ _e"> </span>ptr</div><div class="t m0 x6 h9 y19 ff5 fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _e"> </span>ptr</div><div class="t m0 x6 h9 y1a ff5 fs3 fc0 sc0 ls0 ws0">std::weak<span class="_ _e"> </span>ptr</div><div class="t m0 x5 h7 y1b ff1 fs3 fc2 sc0 ls0 ws0">5<span class="_ _9"> </span><span class="fs4 fc0">Concurrency</span></div><div class="t m0 x6 h5 y1c ff4 fs3 fc0 sc0 ls0 ws0">Thread<span class="_ _b"> </span>Metho<span class="_ _c"></span>ds</div><div class="t m0 x6 h5 y1d ff4 fs3 fc0 sc0 ls0 ws0">Mutex</div><div class="t m0 x6 h5 y1e ff4 fs3 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>tomic</div><div class="t m0 x6 h5 y1f ff4 fs3 fc0 sc0 ls0 ws0">T<span class="_ _d"></span>ask-based<span class="_ _b"> </span>pa<span class="_ _3"></span>rallelism</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">3/64</div><a class="l" href="#pf2e" data-dest-detail='[46,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:70.614000px;bottom:295.144500px;width:99.299000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf31" data-dest-detail='[49,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:267.288000px;width:78.983000px;height:10.327000px;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:74.235000px;bottom:238.483500px;width:78.983000px;height:10.327000px;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:74.235000px;bottom:209.679000px;width:68.523000px;height:10.328000px;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:70.614000px;bottom:162.756000px;width:83.328000px;height:14.744000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3e" data-dest-detail='[62,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:138.135000px;width:71.122000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf41" data-dest-detail='[65,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:109.330500px;width:28.476000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf44" data-dest-detail='[68,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:80.526000px;width:31.659000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf45" data-dest-detail='[69,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:74.235000px;bottom:48.816000px;width:94.922000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXUlEQVR42u3ZwQnCQBCG0V1x8GgNgiWkA0ltacIOPeXoXDYtBCJkhPcKmMN/+mB6ZjYAACgjIi5WAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAP7M1QSca10eBy985rcZAX7uOb2MwIl6ZloBAIA6IsK7HwCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAHr3fb2P9tjbGsAYAACVsKx0T9cxLA6gAAAAASUVORK5CYII="/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Undefined<span class="_ _1"> </span>Behavio<span class="_ _d"></span>r</div><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:158.662500px;bottom:205.878000px;width:224.109000px;height:19.206000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIfUlEQVR42u3ZsQkCMQCG0UQuWDqDWDmBiLVwK1g4j0u4gYUzCBYO4QZWV3mmiZ0DWEgi700Q/jQfSVysNgEAAKpxv10nVgAAoDYiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQCAj5hztgIAAPVIKXlJBQCgOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAKBFXSsHfY5jv9u7MGjL5XwyAgBfiDlnKwAAUI+Uku9+AACqI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQDgR7rhMG/lrI/t0YUBAPy95bqPcTYtwyuEUopBAACowhvJnh0C3zzpZAAAAABJRU5ErkJggg=="/><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="_ _e"> </span>b<span class="_ _c"></span>ehavior<span class="_ _b"> </span><span class="ff4">means<span class="_ _e"> </span>that<span class="_ _e"> </span>the<span class="_ _e"> </span>semantic<span class="_ _b"> </span>of<span class="_ _e"> </span>certain<span class="_ _e"> </span>operations<span class="_ _e"> </span>is</span></div><div class="t m0 x9 ha y22 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">undefined/unsp<span class="_ _c"></span>ecified<span class="_ _e"> </span>behavior<span class="_ _f"></span><span class="ff4">:<span class="_ _10"> </span>outside<span class="_ _e"> </span>the<span class="_ _b"> </span>language/libra<span class="_ _3"></span>ry<span class="_ _e"> </span>specification,<span class="_ _e"> </span>tw<span class="_ _3"></span>o<span class="_ _b"> </span>or</span></span></div><div class="t m0 x6 ha y23 ff4 fs6 fc0 sc0 ls0 ws0">mo<span class="_ _3"></span>re<span class="_ _e"> </span>choices</div><div class="t m0 x9 ha y24 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">illegal<span class="ff4">,<span class="_ _e"> </span>and<span class="_ _e"> </span>the<span class="_ _b"> </span>compiler<span class="_ _e"> </span>presumes<span class="_ _b"> </span>that<span class="_ _e"> </span>such<span class="_ _e"> </span>operations<span class="_ _e"> </span>never<span class="_ _e"> </span>happen</span></span></div><div class="t m0 x1 ha y25 ff4 fs6 fc0 sc0 ls0 ws0">Motivations<span class="_ _e"> </span>behind<span class="_ _e"> </span>undefined<span class="_ _e"> </span>behavior:</div><div class="t m0 x9 ha y26 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Compiler<span class="_ _e"> </span>optimizations<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _10"> </span>signed<span class="_ _e"> </span>overflo<span class="_ _3"></span>w<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>NULL<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>dereferencing</span></span></div><div class="t m0 x9 ha y27 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Simplify<span class="_ _e"> </span>compile<span class="_ _e"> </span>checks</span></div><div class="t m0 x1 ha y28 ff4 fs6 fc0 sc0 ls0 ws0">Some<span class="_ _e"> </span>undefined<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _e"> </span>cases<span class="_ _e"> </span>p<span class="_ _3"></span>rovide<span class="_ _e"> </span>an<span class="_ _e"> </span><span class="ff8">implementation-defined<span class="_ _b"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _10"> </span><span class="ff4">dep<span class="_ _c"></span>ending</span></span></div><div class="t m0 x1 ha y29 ff4 fs6 fc0 sc0 ls0 ws0">on<span class="_ _e"> </span>the<span class="_ _b"> </span>compiler<span class="_ _e"> </span>and<span class="_ _e"> </span>platfo<span class="_ _3"></span>rm.<span class="_ _10"> </span>In<span class="_ _e"> </span>this<span class="_ _e"> </span>case,<span class="_ _b"> </span>the<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>is<span class="_ _e"> </span><span class="ff8">not<span class="_ _e"> </span>portable</span></div><div class="t m0 xa hb y2a ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">What<span class="_ _10"> </span>Every<span class="_ _10"> </span>C<span class="_ _8"> </span>Programmer<span class="_ _10"> </span>Should<span class="_ _10"> </span>Know<span class="_ _10"> </span>About<span class="_ _8"> </span>Undefined<span class="_ _10"> </span>Behavior<span class="ffb">,<span class="_ _b"> </span><span class="ffc">Chris<span class="_ _11"> </span>Lattner</span></span></span></div><div class="t m0 xa hb y2b ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">What<span class="_ _10"> </span>are<span class="_ _10"> </span>all<span class="_ _8"> </span>the<span class="_ _10"> </span>common<span class="_ _10"> </span>undefined<span class="_ _10"> </span>behaviours<span class="_ _8"> </span>that<span class="_ _10"> </span>a<span class="_ _10"> </span>C++<span class="_ _8"> </span>programmer<span class="_ _10"> </span>should<span class="_ _10"> </span>know</span></div><div class="t m0 x6 hc y2c ffa fs7 fc3 sc0 ls0 ws0">about?</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">4/64</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:73.752000px;bottom:41.025000px;width:341.760000px;height:10.211000px;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:73.752000px;bottom:19.132500px;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:73.752000px;bottom:3.216000px;width:30.237000px;height:7.373000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI4klEQVR42u3dMUoDQRiG4Yzsj9XgGcTKE4haCzYWnspLeAoLT2AhnsEbWIWpHAxrZyPIghD+yT5PmSr5koWXCcuWs4vrDQAApPH++nJkBQAAshGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8KL13KwAAkEdEOEkFACAdkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAA/jaZYLnWmhH2rNZqBFeB3xjACjlJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDA2k0mWI+v3e7q7v7362/PT8YBAFIpvXcrLNRaM8Ke1VqN4CrwGwNYm4jwdz8AAOmIVAAARCoAAIhUAABEKgAA/Je7+wEAyMXd/QAAZCRSAQAQqQAAIFIBABjOZILlPBYVABjXWA+CdpIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAgKxK790KAADkERFOUgEASEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAWK/JBMu11owAAAyq1jrQu3WSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAQ1V671YAACCPiHCSCgBAOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIC9mUywXGvNCADAoGqtA71bJ6kAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAB6T03q0AAEAeEeEkFQCAdEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAIBxTduH08P7VB83j75aAIBBnV/elnJyPG8/N5t5ng0CAEAK30l7PfpF1jQuAAAAAElFTkSuQmCC"/><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>Common<span class="_ _8"> </span>Cases<span class="_ _12"> </span>1/5</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">const<span class="_ _6"> </span>cast<span class="_ _14"> </span><span class="ff1">applied<span class="_ _e"> </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 xb hc y2e ff5 fs7 fc4 sc0 ls0 ws0">const<span class="_ _10"> </span><span class="fc5">int<span class="_ _15"> </span><span class="ffa fc0">var<span class="_ _16"> </span><span class="fc6">=<span class="_ _10"> </span>3</span>;</span></span></div><div class="t m0 xb hc y2f ff5 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="_ _10"> </span></span>=<span class="_ _8"> </span>4<span class="fc0">;</span></span></span></div><div class="t m0 xb hc y30 ffa fs7 fc0 sc0 ls0 ws0">...<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>use<span class="_ _10"> </span>var</span></div><div class="t m0 x9 ha y31 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>alignment</span></div><div class="t m0 xb hc y32 ff5 fs7 fc5 sc0 ls0 ws0">char<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">ptr<span class="_ _1"> </span></span>=<span class="_ _10"> </span></span><span class="fc4">new<span class="_ _10"> </span></span>char<span class="ffa fc0">[<span class="fc6">512</span>];</span></div><div class="t m0 xb hc y33 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _16"> </span><span class="ffa fc0">ptr2<span class="_ _10"> </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="_ _10"> </span></span>+<span class="_ _10"> </span>1<span class="fc0">);</span></span></span></div><div class="t m0 xb hc y34 ffa fs7 fc0 sc0 ls0 ws0">ptr2[<span class="fc6">3</span>];<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _1"> </span>ptr2<span class="_ _10"> </span>is<span class="_ _10"> </span>not<span class="_ _10"> </span>aligned<span class="_ _8"> </span>to<span class="_ _10"> </span>8<span class="_ _10"> </span>bytes<span class="_ _8"> </span>(sizeof(uint64_t))</span></div><div class="t m0 x9 ha y35 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>initialization</span></div><div class="t m0 xb hc y36 ff5 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="_ _10"> </span>undefined<span class="_ _8"> </span>value</span></span></div><div class="t m0 xb hc y37 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">var2<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span></span>new<span class="_ _10"> </span><span class="fc5">int<span class="ffa fc0">;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>undefined<span class="_ _10"> </span>value</span></span></span></div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">5/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoUlEQVR42u3YsU0DQRCG0Vt0I6IVNVhEVIAQMZI7ownKIXARdEBkbcQkR0buC2AWv1fB+j8Hn6bdPz4vAABQxsfp/cYKAABUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPjRMtMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAADXbDXBXMYYE7229+6TAQA7uKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgL/VMtMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqSYAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAy6wmmMsYwwgAwA6994le65IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAPwLLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCADCz1QRzGWMYAQDYofc+0WtdUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAi7TMtAIAAHVEhEsqAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAX7SeXw/X/Ps/X978CQAASnl4OrZ2d7udv5Zl2zaDAABQwjfkhCX+y9h6rQAAAABJRU5ErkJggg=="/><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>Common<span class="_ _8"> </span>Cases<span class="_ _12"> </span>2/5</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Memory<span class="_ _e"> </span>access-related</span></div><div class="t m0 xc ha y38 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">NULL<span class="_ _18"> </span><span class="ff4">p<span class="_ _c"></span>ointer<span class="_ _b"> </span>dereferencing</span></span></div><div class="t m0 xc ha y39 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Out-of-b<span class="_ _c"></span>ound<span class="_ _e"> </span>access:<span class="_ _10"> </span><span class="ff4">the<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>could<span class="_ _e"> </span>crash<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>not<span class="_ _e"> </span>depending<span class="_ _e"> </span>on<span class="_ _e"> </span>the</span></span></div><div class="t m0 xd ha y3a ff4 fs6 fc0 sc0 ls0 ws0">platfo<span class="_ _3"></span>rm/compiler</div><div class="t m0 x9 ha y3b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Platform<span class="_ _e"> </span>sp<span class="_ _c"></span>ecific<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r</span></div><div class="t m0 xc ha y3c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Endianness</span></div><div class="t m0 xe hc y3d ff5 fs7 fc4 sc0 ls0 ws0">union<span class="_ _10"> </span><span class="fc8">U<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 xf hc y3e ff5 fs7 fc5 sc0 ls0 ws0">unsigned<span class="_ _10"> </span><span class="ffa fc0">x;</span></div><div class="t m0 xf hc y3f ff5 fs7 fc5 sc0 ls0 ws0">char<span class="_ _19"> </span><span class="ffa fc0">y;</span></div><div class="t m0 xe hc y40 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xc ha y41 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">T<span class="_ _d"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>definition</span></div><div class="t m0 xe hc y42 ff5 fs7 fc5 sc0 ls0 ws0">long<span class="_ _10"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span>1ul<span class="_ _10"> </span><<<span class="_ _8"> </span>32u</span>;<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>different<span class="_ _10"> </span>behavior<span class="_ _8"> </span>depending<span class="_ _10"> </span>on<span class="_ _10"> </span>the<span class="_ _8"> </span>OS</span></span></div><div class="t m0 xc ha y43 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Intrinsic<span class="_ _e"> </span>functions</span></div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">6/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _8"> </span>Common<span class="_ _8"> </span>Cases<span class="_ _12"> </span>3/5</div><div class="t m0 x9 ha y44 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 xb hc y45 ff5 fs7 fc5 sc0 ls0 ws0">float<span class="_ _10"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span>3</span>;</span></div><div class="t m0 xb hc y46 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _16"> </span><span class="ffa fc0">y<span class="_ _10"> </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 xb hc y47 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _10"> </span>x,<span class="_ _8"> </span>y<span class="_ _10"> </span>break<span class="_ _10"> </span>the<span class="_ _8"> </span>strict<span class="_ _10"> </span>aliasing<span class="_ _10"> </span>rule</div><div class="t m0 x9 ha y48 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 xb hc y49 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc8">f<span class="fc0">()<span class="_ _8"> </span>{</span></span></span></div><div class="t m0 xd hc y4a ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">tmp[<span class="fc6">10</span>];</span></div><div class="t m0 xd hc y4b ff5 fs7 fc4 sc0 ls0 ws0">return<span class="_ _10"> </span><span class="ffa fc0">tmp;</span></div><div class="t m0 xb hc y4c ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hc y4d ff5 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _10"> </span><span class="fc0">f();</span></span></div><div class="t m0 xb hc y4e ffa fs7 fc0 sc0 ls0 ws0">ptr[<span class="fc6">0</span>];</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">7/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _8"> </span>Common<span class="_ _8"> </span>Cases<span class="_ _12"> </span>4/5</div><div class="t m0 x9 ha y2d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Op<span class="_ _c"></span>erations<span class="_ _6"> </span>unsp<span class="_ _c"></span>ecified<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r</span></div><div class="t m0 xc ha y38 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">A<span class="_ _e"> </span>legal<span class="_ _e"> </span>operation<span class="_ _e"> </span>but<span class="_ _e"> </span>the<span class="_ _e"> </span>C++<span class="_ _b"> </span>standard<span class="_ _b"> </span>do<span class="_ _c"></span>es<span class="_ _e"> </span>not<span class="_ _b"> </span>do<span class="_ _c"></span>cument<span class="_ _e"> </span>the<span class="_ _e"> </span>result</span></div><div class="t m0 xc ha y4f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Signed<span class="_ _e"> </span>shift<span class="_ _18"> </span><span class="ffe">-2<span class="_ _1a"> </span><span class="fff">≪<span class="_ _1a"> </span></span>x<span class="_ _18"> </span></span>(before<span class="_ _e"> </span><span class="fc9">C++20</span>),<span class="_ _b"> </span>large-than-t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>shift<span class="_ _18"> </span><span class="ffe">3u<span class="_ _1a"> </span><span class="fff">≪<span class="_ _1a"> </span></span>32<span class="_ _11"> </span></span>,</span></div><div class="t m0 xd ha y50 ff4 fs6 fc0 sc0 ls0 ws0">etc.</div><div class="t m0 xc ha y51 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Arithmetic<span class="_ _e"> </span>op<span class="_ _c"></span>eration<span class="_ _b"> </span>ordering<span class="_ _18"> </span><span class="ffe">f(i++,<span class="_ _1a"> </span>i++)</span></span></div><div class="t m0 xc ha y52 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Function<span class="_ _b"> </span>evaluation<span class="_ _e"> </span>ordering</span></div><div class="t m0 xe hc y53 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">x<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>f()<span class="_ _10"> </span><span class="fc6">+<span class="_ _8"> </span></span>g();<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>C++<span class="_ _10"> </span>doesn<span class="ff10">'</span>t<span class="_ _8"> </span>ensure<span class="_ _10"> </span>that<span class="_ _10"> </span>f()<span class="_ _8"> </span>is<span class="_ _10"> </span>evaluated<span class="_ _10"> </span>before<span class="_ _8"> </span>g()</span></span></div><div class="t m0 xc ha y54 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Signed<span class="_ _e"> </span>overflow</span></div><div class="t m0 xe hc y55 ff5 fs7 fc4 sc0 ls0 ws0">for<span class="_ _10"> </span><span class="ffa fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ffa fc0">i<span class="_ _10"> </span><span class="fc6">=<span class="_ _10"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _10"> </span><span class="fc6"><<span class="_ _10"> </span></span>N;<span class="_ _10"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 xd hb y56 ffb fs7 fc0 sc0 ls0 ws0">if<span class="_ _1b"> </span><span class="ffa">N<span class="_ _1b"> </span></span>is<span class="_ _1b"> </span><span class="ffa">INT<span class="_ _b"> </span>MAX<span class="_ _11"> </span></span>,<span class="_ _b"> </span>the<span class="_ _11"> </span>last<span class="_ _b"> </span>iteration<span class="_ _11"> </span>is<span class="_ _b"> </span>undefined<span class="_ _11"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r.<span class="_ _8"> </span>The<span class="_ _11"> </span>compiler<span class="_ _b"> </span>can<span class="_ _11"> </span>assume<span class="_ _b"> </span>that</div><div class="t m0 xd hb y57 ffb fs7 fc0 sc0 ls0 ws0">the<span class="_ _11"> </span>lo<span class="_ _c"></span>op<span class="_ _b"> </span>is<span class="_ _11"> </span>finite<span class="_ _b"> </span>and<span class="_ _11"> </span>enable<span class="_ _11"> </span>imp<span class="_ _c"></span>ortant<span class="_ _11"> </span>optimizations,<span class="_ _b"> </span>as<span class="_ _11"> </span>opp<span class="_ _c"></span>osite<span class="_ _11"> </span>to<span class="_ _1b"> </span><span class="ffa">unsigned<span class="_ _1b"> </span></span>(wrap</div><div class="t m0 xd hb y58 ffb fs7 fc0 sc0 ls0 ws0">a<span class="_ _3"></span>round)</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">8/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r<span class="_ _8"> </span>Common<span class="_ _8"> </span>Cases<span class="_ _12"> </span>5/5</div><div class="t m0 x9 ha y59 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">One<span class="_ _6"> </span>Definition<span class="_ _6"> </span>Rule<span class="_ _e"> </span>violation</span></div><div class="t m0 xc ha y5a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Different<span class="_ _e"> </span>definitions<span class="_ _e"> </span>of<span class="_ _18"> </span><span class="ffe">inline<span class="_ _18"> </span></span>functions<span class="_ _b"> </span>in<span class="_ _e"> </span>distinct<span class="_ _e"> </span>translation<span class="_ _e"> </span>units</span></div><div class="t m0 x9 ha y5b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Missing<span class="_ _14"> </span><span class="ff5">return<span class="_ _14"> </span></span>statement</span></div><div class="t m0 xb hc y5c ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">f<span class="fc0">(</span></span>float<span class="_ _8"> </span><span class="ffa fc0">x)<span class="_ _10"> </span>{</span></div><div class="t m0 xd hc y5d ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">y<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>x<span class="_ _10"> </span><span class="fc6">*<span class="_ _8"> </span>2</span>;</span></div><div class="t m0 xb hc y5e ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x9 ha y5f 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 xb hc y60 ffa fs7 fc0 sc0 ls0 ws0">iint<span class="_ _10"> </span>n<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span>1</span>;</div><div class="t m0 xb hc y61 ff5 fs7 fc4 sc0 ls0 ws0">const<span class="_ _10"> </span><span class="fc5">int<span class="ffa fc6">&<span class="_ _8"> </span><span class="fc0">r<span class="_ _10"> </span></span>=<span class="_ _10"> </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="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>dagling</span></span></span></span></div><div class="t m0 xb hc y62 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _10"> </span>GCC<span class="_ _8"> </span>13<span class="_ _10"> </span>experimental<span class="_ _10"> </span>-Wdangling-reference<span class="_ _8"> </span>(enabled<span class="_ _10"> </span>by<span class="_ _10"> </span>-Wall)</div><div class="t m0 x7 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">9/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Detecting<span class="_ _8"> </span>Undefined<span class="_ _8"> </span>Behavio<span class="_ _3"></span>r</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">There<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>several<span class="_ _b"> </span>wa<span class="_ _3"></span>ys<span class="_ _e"> </span>to<span class="_ _b"> </span>detect<span class="_ _e"> </span>undefined<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>r<span class="_ _e"> </span>at<span class="_ _b"> </span>compile-time<span class="_ _e"> </span>and<span class="_ _e"> </span>at<span class="_ _b"> </span>run-time:</div><div class="t m0 x9 ha y63 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Using<span class="_ _e"> </span>GCC/Clang<span class="_ _e"> </span>undefined<span class="_ _b"> </span>b<span class="_ _c"></span>ehavior<span class="_ _b"> </span>sanitizer<span class="_ _e"> </span>(run-time<span class="_ _e"> </span>check)</span></div><div class="t m0 x9 ha y64 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Static<span class="_ _e"> </span>analysis<span class="_ _e"> </span>tools</span></div><div class="t m0 x9 ha y65 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Use<span class="_ _18"> </span><span class="ffe">constexpr<span class="_ _18"> </span></span>expressions<span class="_ _b"> </span>as<span class="_ _e"> </span>undefined<span class="_ _e"> </span>behavior<span class="_ _e"> </span>is<span class="_ _b"> </span>not<span class="_ _e"> </span>allo<span class="_ _3"></span>wed</span></div><div class="t m0 x5 hc y66 ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x1<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>2147483647<span class="_ _10"> </span>+<span class="_ _10"> </span>1</span>;<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 x5 hc y67 ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x2<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span></span>(<span class="fc6">1<span class="_ _10"> </span><<<span class="_ _10"> </span>32</span>);<span class="_ _15"> </span><span class="ffd fc7">//<span class="_ _10"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 x5 hc y68 ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x3<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span></span>(<span class="fc6">1<span class="_ _10"> </span><<<span class="_ _10"> </span>-1</span>);<span class="_ _15"> </span><span class="ffd fc7">//<span class="_ _10"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 x5 hc y69 ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x4<span class="_ _10"> </span><span class="fc6">=<span class="_ _1"> </span>3<span class="_ _10"> </span>/<span class="_ _10"> </span>0</span>;<span class="_ _1d"> </span><span class="ffd fc7">//<span class="_ _10"> </span>compile<span class="_ _8"> </span>error</span></span></span></div><div class="t m0 x5 hc y6a ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x5<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>*</span>((</span>int<span class="ffa fc6">*<span class="fc0">)<span class="_ _10"> </span></span></span></span>nullptr<span class="ffa fc0">)<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>compile<span class="_ _10"> </span>error</span></span></div><div class="t m0 x5 hc y6b ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">int<span class="_ _1c"> </span><span class="ffa fc0">x6<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>6</span></span></span></div><div class="t m0 x5 hc y6c ff5 fs7 fc4 sc0 ls0 ws0">constexpr<span class="_ _10"> </span><span class="fc5">float<span class="_ _8"> </span><span class="ffa fc0">x7<span class="_ _10"> </span><span class="fc6">=<span class="_ _10"> </span></span></span></span>reinterpret_cast<span class="ffa fc6"><</span><span class="fc5">float<span class="ffa fc6">&><span class="fc0">(x6);<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>compile<span class="_ _10"> </span>error</span></span></span></span></div><div class="t m0 x9 hc y6d ffa fs7 fc3 sc0 ls0 ws0">Exploring<span class="_ _10"> </span>Undefined<span class="_ _8"> </span>Behavior<span class="_ _10"> </span>Using<span class="_ _10"> </span>Constexpr</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">10/64</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:52.083000px;bottom:4.089000px;width:209.116000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Erro<span class="_ _d"></span>r<span class="_ _1"> </span>Handing</div><a class="l" href="#pfd" data-dest-detail='[13,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:158.662500px;bottom:198.648000px;width:161.938000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 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 y6e ff1 fs6 fc0 sc0 ls0 ws0">Recoverable<span class="_ _b"> </span><span class="ff8">Conditions<span class="_ _e"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>not<span class="_ _e"> </span>under<span class="_ _b"> </span>the<span class="_ _e"> </span>control<span class="_ _b"> </span>of<span class="_ _e"> </span>the<span class="_ _b"> </span>p<span class="_ _3"></span>rogram<span class="ff4">.<span class="_ _10"> </span>They<span class="_ _e"> </span>indicates</span></span></div><div class="t m0 x1 ha y6f ff8 fs6 fc0 sc0 ls0 ws0">“exceptional”<span class="_ _8"> </span><span class="ff4">run-time<span class="_ _e"> </span>conditions.<span class="_ _10"> </span>e.g.<span class="_ _10"> </span>file<span class="_ _e"> </span>not<span class="_ _b"> </span>found,<span class="_ _e"> </span>bad<span class="_ _e"> </span>allocation,<span class="_ _e"> </span>wrong<span class="_ _e"> </span>user</span></div><div class="t m0 x1 ha y70 ff4 fs6 fc0 sc0 ls0 ws0">input,<span class="_ _e"> </span>etc.</div><div class="t m0 x1 ha y71 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>common<span class="_ _b"> </span>wa<span class="_ _3"></span>ys<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>handling<span class="_ _b"> </span>recoverable<span class="_ _e"> </span>errors<span class="_ _b"> </span>are:</div><div class="t m0 x11 ha y72 ff1 fs6 fc0 sc0 ls0 ws0">Exceptions<span class="_ _a"> </span><span class="ff4">Robust<span class="_ _e"> </span>but<span class="_ _e"> </span>slo<span class="_ _3"></span>wer<span class="_ _b"> </span>and<span class="_ _e"> </span>requires<span class="_ _e"> </span>mo<span class="_ _3"></span>re<span class="_ _e"> </span>resources</span></div><div class="t m0 x12 ha y73 ff1 fs6 fc0 sc0 ls0 ws0">Erro<span class="_ _3"></span>r<span class="_ _6"> </span>values<span class="_ _1a"> </span><span class="ff4">F<span class="_ _3"></span>ast<span class="_ _e"> </span>but<span class="_ _b"> </span>difficult<span class="_ _e"> </span>to<span class="_ _e"> </span>handle<span class="_ _b"> </span>in<span class="_ _e"> </span>complex<span class="_ _e"> </span>p<span class="_ _3"></span>rograms</span></div><div class="t m0 xa hb y74 ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">Modern<span class="_ _10"> </span>C++<span class="_ _10"> </span>best<span class="_ _8"> </span>practices<span class="_ _10"> </span>for<span class="_ _10"> </span>exceptions<span class="_ _10"> </span>and<span class="_ _8"> </span>error<span class="_ _10"> </span>handling</span></div><div class="t m0 xa hb y75 ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">Back<span class="_ _10"> </span>to<span class="_ _10"> </span>Basics:<span class="_ _16"> </span>Exceptions<span class="_ _11"> </span><span class="ffb">-<span class="_ _b"> </span>CppCon2020</span></span></div><div class="t m0 xa hb y76 ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">ISO<span class="_ _10"> </span>C++<span class="_ _10"> </span>FAQ:<span class="_ _8"> </span>Exceptions<span class="_ _10"> </span>and<span class="_ _10"> </span>Error<span class="_ _10"> </span>Handling</span></div><div class="t m0 xa hb y77 ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">Zero-overhead<span class="_ _10"> </span>deterministic<span class="_ _10"> </span>exceptions:<span class="_ _16"> </span>Throwing<span class="_ _8"> </span>values</span></div><div class="t m0 xa hb y78 ff9 fs7 fc3 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ffa">C++<span class="_ _10"> </span>exceptions<span class="_ _10"> </span>are<span class="_ _8"> </span>becoming<span class="_ _10"> </span>more<span class="_ _10"> </span>and<span class="_ _10"> </span>more<span class="_ _8"> </span>problematic</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">11/64</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:73.752000px;bottom:94.627500px;width:279.726000px;height:9.366000px;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:73.752000px;bottom:72.735000px;width:187.400000px;height:10.212000px;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:73.752000px;bottom:50.842500px;width:199.701000px;height:9.365000px;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:73.752000px;bottom:28.950000px;width:265.604000px;height:9.365000px;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:73.752000px;bottom:7.057500px;width:251.482000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">C++<span class="_ _8"> </span>Exceptions<span class="_ _8"> </span>-<span class="_ _8"> </span>A<span class="_ _3"></span>dvantages</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>Exceptions<span class="_ _b"> </span>provide<span class="_ _b"> </span>a<span class="_ _e"> </span>well-defined<span class="_ _b"> </span>mechanism<span class="_ _e"> </span>to<span class="_ _e"> </span>detect<span class="_ _b"> </span>errors<span class="_ _b"> </span>passing<span class="_ _e"> </span>the</div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">info<span class="_ _3"></span>rmation<span class="_ _e"> </span>up<span class="_ _e"> </span>the<span class="_ _b"> </span>call<span class="_ _e"> </span>stack</div><div class="t m0 x9 ha y7a 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="_ _e"> </span>ignored<span class="ff4">.<span class="_ _10"> </span>Unhandled<span class="_ _b"> </span>exceptions<span class="_ _e"> </span>stop<span class="_ _e"> </span>p<span class="_ _3"></span>rogram<span class="_ _e"> </span>execution</span></span></div><div class="t m0 x6 ha y7b ff4 fs6 fc0 sc0 ls0 ws0">(call<span class="_ _18"> </span><span class="ffe">std::terminate()<span class="_ _11"> </span></span>)</div><div class="t m0 x9 ha y7c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Intermediate<span class="_ _6"> </span>functions<span class="_ _6"> </span>are<span class="_ _e"> </span>not<span class="_ _6"> </span>fo<span class="_ _3"></span>rced<span class="_ _6"> </span>to<span class="_ _6"> </span>handle<span class="_ _6"> </span>them<span class="ff4">.<span class="_ _10"> </span>They<span class="_ _e"> </span>don’t<span class="_ _b"> </span>have<span class="_ _e"> </span>to</span></span></div><div class="t m0 x6 ha y7d ff4 fs6 fc0 sc0 ls0 ws0">co<span class="_ _c"></span>o<span class="_ _3"></span>rdinate<span class="_ _e"> </span>with<span class="_ _b"> </span>other<span class="_ _e"> </span>lay<span class="_ _3"></span>ers<span class="_ _b"> </span>and,<span class="_ _e"> </span>for<span class="_ _b"> </span>this<span class="_ _e"> </span>reason,<span class="_ _e"> </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 x9 ha y7e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Throwing<span class="_ _b"> </span>an<span class="_ _e"> </span>exception<span class="_ _b"> </span><span class="ff1">acts<span class="_ _6"> </span>lik<span class="_ _3"></span>e<span class="_ _6"> </span>a<span class="_ _e"> </span>return<span class="_ _6"> </span>statement<span class="_ _e"> </span><span class="ff4">destro<span class="_ _3"></span>ying<span class="_ _b"> </span>all<span class="_ _e"> </span>objects<span class="_ _b"> </span>in<span class="_ _e"> </span>the</span></span></span></div><div class="t m0 x6 ha y7f ff4 fs6 fc0 sc0 ls0 ws0">current<span class="_ _e"> </span>scope</div><div class="t m0 x9 ha y80 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">An<span class="_ _e"> </span>exception<span class="_ _e"> </span>enables<span class="_ _b"> </span>a<span class="_ _e"> </span><span class="ff1">clean<span class="_ _6"> </span>separation<span class="_ _b"> </span></span>b<span class="_ _c"></span>et<span class="_ _3"></span>ween<span class="_ _b"> </span>the<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="_ _b"> </span>that<span class="_ _e"> </span>detects<span class="_ _e"> </span>the<span class="_ _b"> </span>error</span></div><div class="t m0 x6 ha y81 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>the<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>that<span class="_ _b"> </span>handles<span class="_ _e"> </span>the<span class="_ _e"> </span>erro<span class="_ _3"></span>r</div><div class="t m0 x9 ha y82 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Exceptions<span class="_ _e"> </span>wo<span class="_ _3"></span>rk<span class="_ _b"> </span>well<span class="_ _b"> </span>with<span class="_ _e"> </span>object-oriented<span class="_ _b"> </span>semantic<span class="_ _e"> </span>(constructo<span class="_ _3"></span>r)</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">12/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,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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="_ _1e"> </span>1/2</div><div class="t m0 x9 ha y83 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="_ _10"> </span>Using<span class="_ _e"> </span>exception<span class="_ _e"> </span>can<span class="_ _b"> </span>involve<span class="_ _e"> </span>more<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>than<span class="_ _b"> </span>the<span class="_ _e"> </span>functionalit<span class="_ _3"></span>y</span></span></div><div class="t m0 x6 ha y84 ff4 fs6 fc0 sc0 ls0 ws0">itself</div><div class="t m0 x9 ha y85 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="_ _10"> </span>Exception<span class="_ _e"> </span>control<span class="_ _e"> </span>flo<span class="_ _3"></span>w<span class="_ _e"> </span>is<span class="_ _b"> </span>invisible<span class="_ _e"> </span>and<span class="_ _e"> </span>it<span class="_ _e"> </span>is<span class="_ _b"> </span>not<span class="_ _e"> </span>explicit<span class="_ _e"> </span>in</span></span></div><div class="t m0 x6 ha y86 ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _e"> </span>function<span class="_ _b"> </span>signature</div><div class="t m0 x9 ha y87 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Perfo<span class="_ _3"></span>rmance:<span class="_ _10"> </span><span class="ff4">Extreme<span class="_ _e"> </span>performance<span class="_ _b"> </span>overhead<span class="_ _e"> </span>in<span class="_ _e"> </span>the<span class="_ _b"> </span>failure<span class="_ _e"> </span>case<span class="_ _e"> </span>(violate<span class="_ _e"> </span>the</span></span></div><div class="t m0 x6 ha y88 ff4 fs6 fc0 sc0 ls0 ws0">zero-overhead<span class="_ _e"> </span>p<span class="_ _3"></span>rinciple)</div><div class="t m0 x9 ha y89 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="_ _e"> </span>allo<span class="_ _c"></span>cation<span class="_ _b"> </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 y8a ffe fs6 fc0 sc0 ls0 ws0">RTTI<span class="ff4">.<span class="_ _e"> </span>It<span class="_ _b"> </span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>suited<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>real-time,<span class="_ _b"> </span>safety-critical,<span class="_ _b"> </span>or<span class="_ _b"> </span>emb<span class="_ _c"></span>edded<span class="_ _e"> </span>systems</span></div><div class="t m0 x9 ha y8b 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="_ _10"> </span>Exceptions<span class="_ _e"> </span>could<span class="_ _b"> </span>increase<span class="_ _e"> </span>executable<span class="_ _e"> </span>size<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>5-15%<span class="_ _b"> </span>(or<span class="_ _b"> </span>more*)</span></span></div><div class="t m0 x9 hb y8c ffb fs7 fc3 sc0 ls0 ws0">*<span class="ffa">Binary<span class="_ _10"> </span>size<span class="_ _8"> </span>and<span class="_ _10"> </span>exceptions</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">13/64</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:52.083000px;bottom:2.389500px;width:128.992000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">C++<span class="_ _8"> </span>Exceptions<span class="_ _8"> </span>-<span class="_ _8"> </span>Disadvantages<span class="_ _1e"> </span>2/2</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">14/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf12" class="pf w0 h0" data-page-no="12"><div class="pc pc12 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">C++<span class="_ _8"> </span>Exception<span class="_ _8"> </span>Basics</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>p<span class="_ _3"></span>rovides<span class="_ _e"> </span>three<span class="_ _b"> </span>keyw<span class="_ _3"></span>ords<span class="_ _b"> </span>for<span class="_ _b"> </span>exception<span class="_ _e"> </span>handling:</div><div class="t m0 x13 ha y8d ffe fs6 fc8 sc0 ls0 ws0">throw<span class="_ _a"> </span><span class="ff4 fc0">Throws<span class="_ _b"> </span>an<span class="_ _e"> </span>exception</span></div><div class="t m0 xe ha y7a ffe fs6 fc8 sc0 ls0 ws0">try<span class="_ _a"> </span><span class="ff4 fc0">Co<span class="_ _c"></span>de<span class="_ _e"> </span>block<span class="_ _e"> </span>containing<span class="_ _e"> </span>p<span class="_ _c"></span>otential<span class="_ _b"> </span>throwing<span class="_ _b"> </span>expressions</span></div><div class="t m0 x13 ha y8e ffe fs6 fc8 sc0 ls0 ws0">catch<span class="_ _a"> </span><span class="ff4 fc0">Co<span class="_ _c"></span>de<span class="_ _e"> </span>block<span class="_ _e"> </span>for<span class="_ _b"> </span>handling<span class="_ _e"> </span>the<span class="_ _e"> </span>exception</span></div><div class="t m0 x5 hc y8f ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">f<span class="fc0">()<span class="_ _8"> </span>{<span class="_ _10"> </span></span></span><span class="fc4">throw<span class="_ _10"> </span><span class="ffa fc6">3<span class="fc0">;<span class="_ _8"> </span>}</span></span></span></div><div class="t m0 x5 hc y90 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc y91 ff5 fs7 fc4 sc0 ls0 ws0">try<span class="_ _10"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc y92 ffa fs7 fc0 sc0 ls0 ws0">f();</div><div class="t m0 x6 hc y93 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc5">int<span class="_ _10"> </span></span>x)<span class="_ _10"> </span>{</div><div class="t m0 x14 hc y94 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>x;<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>"3"</span></div><div class="t m0 x6 hc y95 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y96 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">15/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIpElEQVR42u3YMUoDURSG0XkyF6uHaxCrrEDEWsjO3ITLsXAR7iBVeFVuM3YiYiEayJ3knBU8/pni47a7+8cJAADKeH97vbICAADViFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAD61zLQCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAABcunlFbx1jnNP0vXf/HwDAj1xSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMBptcy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAA/NdsAoDzMMYwwnr13o0AX7mkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAAEfVMtMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAcGrzit46xvDBAAD+pve+ote6pAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAH6lZaYVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMA38/751grUt3t6MQIAXIjNw7a1m+tlf5imZVkMAgBACR/AZiX+LF5qYwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff5 fs2 fc1 sc0 ls0 ws0">std<span class="_ _8"> </span><span class="ff1">Exceptions</span></div><div class="t m0 x5 ha y21 ffe fs6 fc0 sc0 ls0 ws0">throw<span class="_ _18"> </span><span class="ff4">can<span class="_ _e"> </span>thro<span class="_ _3"></span>w<span class="_ _e"> </span>everything<span class="_ _b"> </span>such<span class="_ _e"> </span>as<span class="_ _e"> </span>integers,<span class="_ _e"> </span>pointers,<span class="_ _e"> </span>objects,<span class="_ _e"> </span>etc.<span class="_ _10"> </span>The<span class="_ _b"> </span>standard</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">w<span class="_ _3"></span>ay<span class="_ _b"> </span>consists<span class="_ _e"> </span>in<span class="_ _e"> </span>using<span class="_ _b"> </span>the<span class="_ _e"> </span><span class="ffe">std<span class="_ _e"> </span></span>lib<span class="_ _3"></span>rary<span class="_ _b"> </span>exceptions<span class="_ _18"> </span><span class="ff11"><<span class="ffe">stdexcept</span>></span></div><div class="t m0 x5 hd y97 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _1a"> </span><span class="fc7"><stdexcept></span></div><div class="t m0 x5 hd y98 ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(</span></span>bool<span class="_ _8"> </span><span class="ff12 fc0">b)<span class="_ _8"> </span>{</span></div><div class="t m0 x15 hd y99 ff5 fs5 fc4 sc0 ls0 ws0">if<span class="_ _6"> </span><span class="ff12 fc0">(b)</span></div><div class="t m0 x16 hd y9a ff5 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff12 fc0">std<span class="fc6">::</span>runtime_error(<span class="fcb">"runtime<span class="_ _8"> </span>error"</span>);</span></div><div class="t m0 x15 hd y9b ff5 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff12 fc0">std<span class="fc6">::</span>logic_error(<span class="fcb">"logic<span class="_ _8"> </span>error"</span>);</span></div><div class="t m0 x5 hd y9c ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y9d ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y9e ff5 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff12 fc0">{</span></div><div class="t m0 x16 hd y9f ff12 fs5 fc0 sc0 ls0 ws0">f(<span class="fc4">false</span>);</div><div class="t m0 x15 hd ya0 ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _8"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&<span class="_ _6"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd ya1 ff12 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>e.what();</div><div class="t m0 x15 hd ya2 ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _8"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&<span class="_ _6"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd ya3 ff12 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>e.what();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print:<span class="_ _8"> </span>"logic<span class="_ _6"> </span>error"</span></div><div class="t m0 x15 hd ya4 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd ya5 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">16/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Exception<span class="_ _8"> </span>Capture</div><div class="t m0 x1 ha y21 ff8 fs6 fc0 sc0 ls0 ws0">NOTE:<span class="_ _e"> </span><span class="ff4">C++,<span class="_ _e"> </span>differently<span class="_ _e"> </span>from<span class="_ _b"> </span>other<span class="_ _e"> </span>programming<span class="_ _b"> </span>languages,<span class="_ _e"> </span>do<span class="_ _c"></span>es<span class="_ _b"> </span>not<span class="_ _e"> </span>require<span class="_ _e"> </span>explicit</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">dynamic<span class="_ _e"> </span>allocation<span class="_ _e"> </span>with<span class="_ _e"> </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="_ _b"> </span>throwing<span class="_ _e"> </span>an<span class="_ _b"> </span>exception.<span class="_ _10"> </span>The<span class="_ _e"> </span>compiler</div><div class="t m0 x1 ha ya6 ff4 fs6 fc0 sc0 ls0 ws0">implicitly<span class="_ _e"> </span>generates<span class="_ _b"> </span>the<span class="_ _e"> </span>approp<span class="_ _3"></span>riate<span class="_ _b"> </span>co<span class="_ _c"></span>de<span class="_ _e"> </span>to<span class="_ _e"> </span>construct<span class="_ _b"> </span>and<span class="_ _e"> </span>clean<span class="_ _e"> </span>up<span class="_ _b"> </span>the<span class="_ _e"> </span>exception</div><div class="t m0 x1 ha ya7 ff4 fs6 fc0 sc0 ls0 ws0">object.<span class="_ _10"> </span>Dynamically<span class="_ _e"> </span>allocated<span class="_ _e"> </span>objects<span class="_ _e"> </span>require<span class="_ _b"> </span>a<span class="_ _18"> </span><span class="ffe">delete<span class="_ _18"> </span></span>call</div><div class="t m0 x1 ha ya8 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>right<span class="_ _b"> </span>wa<span class="_ _3"></span>y<span class="_ _e"> </span>to<span class="_ _b"> </span>capture<span class="_ _e"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>is<span class="_ _b"> </span>by<span class="_ _18"> </span><span class="ffe">const<span class="_ _11"> </span></span>-reference.<span class="_ _10"> </span>Capturing<span class="_ _e"> </span>b<span class="_ _3"></span>y-value<span class="_ _e"> </span>is</div><div class="t m0 x1 ha ya9 ff4 fs6 fc0 sc0 ls0 ws0">also<span class="_ _e"> </span>possible<span class="_ _e"> </span>but,<span class="_ _e"> </span>it<span class="_ _b"> </span>involves<span class="_ _e"> </span>useless<span class="_ _e"> </span>cop<span class="_ _3"></span>y<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>non-trivial<span class="_ _e"> </span>exception<span class="_ _b"> </span>objects</div><div class="t m0 x5 ha yaa ffe fs6 fc0 sc0 ls0 ws0">catch(...)<span class="_ _18"> </span><span class="ff4">can<span class="_ _e"> </span>be<span class="_ _e"> </span>used<span class="_ _e"> </span>to<span class="_ _b"> </span>capture<span class="_ _e"> </span>any<span class="_ _e"> </span>thro<span class="_ _3"></span>wn<span class="_ _e"> </span>exception</span></div><div class="t m0 x5 hd yab ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd yac ff5 fs5 fc4 sc0 ls0 ws0">try<span class="_ _6"> </span><span class="ff12 fc0">{</span></div><div class="t m0 x16 hd yad ff5 fs5 fc4 sc0 ls0 ws0">throw<span class="_ _6"> </span><span class="ff12 fcb">"runtime<span class="_ _8"> </span>error"<span class="fc0">;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>throw<span class="_ _6"> </span>const<span class="_ _8"> </span>char*</span></span></span></div><div class="t m0 x15 hd yae ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _6"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _8"> </span>{</div><div class="t m0 x16 hd yaf ff12 fs5 fc0 sc0 ls0 ws0">cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"exception"</span></span>;<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>"exception"</span></div><div class="t m0 x15 hd yb0 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd yb1 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">17/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">Exception<span class="_ _8"> </span>Propagation</div><div class="t m0 x1 ha yb2 ff4 fs6 fc0 sc0 ls0 ws0">Exceptions<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>automatically<span class="_ _b"> </span>propagated<span class="_ _b"> </span>along<span class="_ _e"> </span>the<span class="_ _e"> </span>call<span class="_ _e"> </span>stack.<span class="_ _10"> </span>The<span class="_ _b"> </span>user<span class="_ _e"> </span>can<span class="_ _e"> </span>also</div><div class="t m0 x1 ha yb3 ff4 fs6 fc0 sc0 ls0 ws0">control<span class="_ _e"> </span>ho<span class="_ _3"></span>w<span class="_ _e"> </span>they<span class="_ _b"> </span>are<span class="_ _b"> </span>propagated</div><div class="t m0 x5 hc yb4 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yb5 ff5 fs7 fc4 sc0 ls0 ws0">try<span class="_ _10"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc yb6 ffa fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x6 hc yb7 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _10"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&<span class="_ _10"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc yb8 ff5 fs7 fc4 sc0 ls0 ws0">throw<span class="_ _10"> </span><span class="ffa fc0">e;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>propagate<span class="_ _10"> </span>a<span class="_ _8"> </span>copy<span class="_ _10"> </span>of<span class="_ _10"> </span>the<span class="_ _10"> </span>exception</span></span></div><div class="t m0 x6 hc yb9 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _10"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&<span class="_ _10"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc yba ff5 fs7 fc4 sc0 ls0 ws0">throw<span class="ffa fc0">;<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>propagate<span class="_ _10"> </span>the<span class="_ _8"> </span>exception</span></span></div><div class="t m0 x6 hc ybb ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc ybc ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">18/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRF0RjFooqYAVExAULUSGzGEoxDwRBsQBW5wo3pKCkoop/onAms5+bqp93h1AEAQBjPx31lBQAAohGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAB8pVqrFQAAiCPn7JIKAEA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAABL18/oraUUHwYA8J9hGGb0WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAACml2qtVgAAII6cs0sqAADhiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCABenH69YK8NvrfDMCAExmf7yktFm38d11rTWDAAAQwgcG6RoCcuHPAAAAAABJRU5ErkJggg=="/><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 x5 hc ybd ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _18"> </span><span class="fc7"><exception><span class="_ _1b"> </span>//<span class="_ _10"> </span>to<span class="_ _8"> </span>not<span class="_ _10"> </span>confuse<span class="_ _10"> </span>with<span class="_ _8"> </span><stdexcept></span></div><div class="t m0 x5 hc ybe ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">MyException<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">std<span class="fc6">::</span>exception<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc ybf ff5 fs7 fc4 sc0 ls0 ws0">const<span class="_ _10"> </span><span class="fc5">char<span class="ffa fc6">*<span class="_ _8"> </span><span class="fc8">what<span class="fc0">()<span class="_ _10"> </span></span></span></span></span>const<span class="_ _10"> </span>noexcept<span class="_ _8"> </span>override<span class="_ _10"> </span><span class="ffa fc0">{<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>could<span class="_ _8"> </span>be<span class="_ _10"> </span>also<span class="_ _10"> </span>"constexpr"</span></span></div><div class="t m0 x14 hc yc0 ff5 fs7 fc4 sc0 ls0 ws0">return<span class="_ _10"> </span><span class="ffa fcb">"C++<span class="_ _8"> </span>Exception"<span class="fc0">;</span></span></div><div class="t m0 x6 hc yc1 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc yc2 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc yc3 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yc4 ff5 fs7 fc4 sc0 ls0 ws0">try<span class="_ _10"> </span><span class="ffa fc0">{</span></div><div class="t m0 x14 hc yc5 ff5 fs7 fc4 sc0 ls0 ws0">throw<span class="_ _10"> </span><span class="ffa fc0">MyException();</span></div><div class="t m0 x6 hc yc6 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _10"> </span></span>std<span class="fc6">::</span>exception<span class="fc6">&<span class="_ _10"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x14 hc yc7 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>e.what();<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>"C++<span class="_ _10"> </span>Exception"</span></div><div class="t m0 x6 hc yc8 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc yc9 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">19/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 ff5 fs2 fc1 sc0 ls0 ws0">noexcept<span class="_ _8"> </span><span class="ff1">Keyw<span class="_ _3"></span>o<span class="_ _3"></span>rd</span></div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++03<span class="_ _e"> </span><span class="fc0">allo<span class="_ _3"></span>ws<span class="_ _e"> </span>listing<span class="_ _b"> </span>the<span class="_ _e"> </span>exceptions<span class="_ _e"> </span>that<span class="_ _e"> </span>a<span class="_ _b"> </span>function<span class="_ _e"> </span>might<span class="_ _e"> </span>directly<span class="_ _b"> </span>or<span class="_ _b"> </span>indirectly<span class="_ _e"> </span>throw,</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">e.g.<span class="_ _5"> </span><span class="ffe">void<span class="_ _1a"> </span>f()<span class="_ _1a"> </span><span class="fc8">throw</span>(int,<span class="_ _1a"> </span>const<span class="_ _1a"> </span>char*)<span class="_ _21"> </span><span class="ff13">{</span></span></div><div class="t m0 x1 ha yca ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">dep<span class="_ _3"></span>recates<span class="_ _18"> </span><span class="ffe">throw<span class="_ _18"> </span></span>and<span class="_ _e"> </span>introduces<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ffe fc8">noexcept<span class="_ _b"> </span></span>keyw<span class="_ _3"></span>ord</span></div><div class="t m0 x5 hc ycb ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">f1<span class="fc0">();<span class="_ _22"> </span><span class="ffd fc7">//<span class="_ _10"> </span>may<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 x5 hc ycc ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </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="_ _23"> </span><span class="ffd fc7">//<span class="_ _10"> </span>does<span class="_ _8"> </span>not<span class="_ _10"> </span>throw</span></span></span></div><div class="t m0 x5 hc ycd ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </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="_ _10"> </span>does<span class="_ _10"> </span>not<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 x5 hc yce ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </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="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>may<span class="_ _8"> </span>throw</span></span></span></div><div class="t m0 x5 hc ycf ff5 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6"><</span><span class="fc5">bool<span class="_ _10"> </span><span class="ffa fc0">X<span class="fc6">></span></span></span></div><div class="t m0 x5 hc yd0 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">f5()<span class="_ _8"> </span></span><span class="fc4">noexcept<span class="ffa fc0">(X);<span class="_ _19"> </span><span class="ffd fc7">//<span class="_ _10"> </span>may<span class="_ _10"> </span>throw<span class="_ _8"> </span>if<span class="_ _10"> </span>X<span class="_ _10"> </span>is<span class="_ _10"> </span>false</span></span></span></div><div class="t m0 x1 h5 yd1 ff4 fs3 fc0 sc0 ls0 ws0">If<span class="_ _b"> </span>a<span class="_ _24"> </span><span class="ffe">noexcept<span class="_ _1b"> </span></span>function<span class="_ _b"> </span>throw<span class="_ _b"> </span>an<span class="_ _b"> </span>exception,<span class="_ _b"> </span>the<span class="_ _b"> </span>runtime<span class="_ _b"> </span>calls<span class="_ _1b"> </span><span class="ffe">std::terminate()</span></div><div class="t m0 x5 ha yd2 ffe fs6 fc0 sc0 ls0 ws0">noexcept<span class="_ _18"> </span><span class="ff4">should<span class="_ _e"> </span>be<span class="_ _e"> </span>used<span class="_ _e"> </span>when<span class="_ _b"> </span>throwing<span class="_ _b"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>is<span class="_ _e"> </span>impossible<span class="_ _e"> </span>o<span class="_ _3"></span>r<span class="_ _e"> </span>unacceptable.</span></div><div class="t m0 x1 ha yd3 ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _e"> </span>is<span class="_ _b"> </span>also<span class="_ _e"> </span>useful<span class="_ _e"> </span>when<span class="_ _e"> </span>the<span class="_ _b"> </span>function<span class="_ _e"> </span>contains<span class="_ _e"> </span>code<span class="_ _e"> </span>outside<span class="_ _e"> </span>user<span class="_ _b"> </span>control,<span class="_ _e"> </span>e.g.<span class="_ _10"> </span><span class="ffe">std</span></div><div class="t m0 x1 ha yd4 ff4 fs6 fc0 sc0 ls0 ws0">functions/objects</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">20/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">F<span class="_ _3"></span>unction-try-blo<span class="_ _c"></span>ck</div><div class="t m0 x1 ha yd5 ff4 fs6 fc0 sc0 ls0 ws0">Exception<span class="_ _e"> </span>handlers<span class="_ _b"> </span>can<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>defined<span class="_ _e"> </span>around<span class="_ _b"> </span>the<span class="_ _e"> </span>b<span class="_ _c"></span>ody<span class="_ _e"> </span>of<span class="_ _e"> </span>a<span class="_ _b"> </span>function</div><div class="t m0 x5 hc yd6 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">f<span class="fc0">()<span class="_ _8"> </span></span></span><span class="fc4">try<span class="_ _10"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc yd7 ffa fs7 fc0 sc0 ls0 ws0">...<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>do<span class="_ _10"> </span>something</span></div><div class="t m0 x5 hc yd8 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(<span class="ff5 fc4">const<span class="_ _10"> </span></span>std<span class="fc6">::</span>runtime_error<span class="fc6">&<span class="_ _10"> </span></span>e)<span class="_ _8"> </span>{</div><div class="t m0 x6 hc yd9 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>e.what();</div><div class="t m0 x5 hc yda ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _10"> </span>{<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>other<span class="_ _10"> </span>exception</span></div><div class="t m0 x6 hc ydb ffa fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x5 hc ydc ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">21/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,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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="_ _25"> </span>1/4</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _18"> </span><span class="ff5">new<span class="_ _18"> </span></span>op<span class="_ _c"></span>erato<span class="_ _3"></span>r<span class="_ _e"> </span>automatically<span class="_ _b"> </span>throws<span class="_ _b"> </span>an<span class="_ _e"> </span>exception<span class="_ _e"> </span>(<span class="_ _11"> </span><span class="ffe">std::bad<span class="_ _6"> </span>alloc<span class="_ _b"> </span></span>)<span class="_ _b"> </span>if<span class="_ _e"> </span>it<span class="_ _e"> </span>cannot</div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">allo<span class="_ _c"></span>cate<span class="_ _b"> </span>the<span class="_ _e"> </span>memo<span class="_ _3"></span>ry</div><div class="t m0 x5 ha yca ffe fs6 fc0 sc0 ls0 ws0">delete<span class="_ _18"> </span><span class="ff4">never<span class="_ _e"> </span>thro<span class="_ _3"></span>ws<span class="_ _e"> </span>an<span class="_ _b"> </span>exception<span class="_ _e"> </span>(unrecoverable<span class="_ _e"> </span>erro<span class="_ _3"></span>r)</span></div><div class="t m0 x5 hc ycb ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x17 hc ycc ff5 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _10"> </span></span><span class="fc4">nullptr<span class="ffa fc0">;</span></span></div><div class="t m0 x17 hc ycd ff5 fs7 fc4 sc0 ls0 ws0">try<span class="_ _10"> </span><span class="ffa fc0">{</span></div><div class="t m0 x13 hc yce ffa fs7 fc0 sc0 ls0 ws0">ptr<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">new<span class="_ _10"> </span><span class="fc5">int</span></span></span>[<span class="fc6">1000</span>];</div><div class="t m0 x17 hc ycf ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x17 hc yd0 ff5 fs7 fc4 sc0 ls0 ws0">catch<span class="_ _10"> </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="_ _10"> </span></span>e)<span class="_ _10"> </span>{</span></div><div class="t m0 x13 hc ydd ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"bad<span class="_ _10"> </span>allocation:<span class="_ _10"> </span>"<span class="_ _8"> </span></span><<<span class="_ _10"> </span></span>e.what();</div><div class="t m0 x17 hc yde ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x17 hc ydf ff5 fs7 fc4 sc0 ls0 ws0">delete<span class="ffa fc0">[]<span class="_ _10"> </span>ptr;</span></div><div class="t m0 x5 hc ye0 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">22/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 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="_ _25"> </span>2/4</div><div class="t m0 x1 ha ye1 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>also<span class="_ _b"> </span>provides<span class="_ _b"> </span>an<span class="_ _e"> </span>overload<span class="_ _e"> </span>of<span class="_ _e"> </span>the<span class="_ _24"> </span><span class="ff5">new<span class="_ _18"> </span></span>op<span class="_ _c"></span>erato<span class="_ _3"></span>r<span class="_ _e"> </span>with<span class="_ _e"> </span>non-thro<span class="_ _3"></span>wing<span class="_ _e"> </span>memo<span class="_ _3"></span>ry</div><div class="t m0 x1 ha ye2 ff4 fs6 fc0 sc0 ls0 ws0">allo<span class="_ _c"></span>cation</div><div class="t m0 x5 hc yb5 ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><new><span class="_ _24"> </span>//<span class="_ _10"> </span>std::nothrow</span></div><div class="t m0 x5 hc yb7 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc yb8 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">ptr<span class="_ _8"> </span></span>=<span class="_ _10"> </span></span><span class="fc4">new<span class="_ _10"> </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 yb9 ff5 fs7 fc4 sc0 ls0 ws0">if<span class="_ _10"> </span><span class="ffa fc0">(ptr<span class="_ _8"> </span><span class="fc6">==<span class="_ _10"> </span></span></span>nullptr<span class="ffa fc0">)</span></div><div class="t m0 x14 hc yba ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"bad<span class="_ _10"> </span>allocation"</span></span>;</div><div class="t m0 x5 hc ybb ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">23/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjklEQVR42u3YsU0DQRCG0VvrRkQrarCIqMBCji3RGU1QjgMX4Q6IrI2Y5MgIHVgCz8nvVbD6N/k07WW3nwAAoIzz6bixAgAA1YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAAB+tcy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAD3M6/orWMMHwYAcJve+4pe65IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgCwZi0zrQAAQB0R4ZIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAPyt2QTwUMYYRrhB790IAP/JJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAKxby0wrAABQR0S4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAXDNfPrZWgAf0dfg0AgA1vb69t/b8tFy+p2lZFoMAAFDCDzH0IACKQ2r9AAAAAElFTkSuQmCC"/><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="_ _25"> </span>3/4</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">Thro<span class="_ _3"></span>wing<span class="_ _e"> </span>exceptions<span class="_ _e"> </span>in<span class="_ _b"> </span><span class="ff8">constructors<span class="_ _8"> </span></span>is<span class="_ _e"> </span>fine<span class="_ _b"> </span>while<span class="_ _e"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>not<span class="_ _b"> </span>allow<span class="_ _3"></span>ed<span class="_ _e"> </span>in<span class="_ _b"> </span><span class="ff8">destructors</span></div><div class="t m0 x5 hc ye3 ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc ye4 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _16"> </span>{<span class="_ _10"> </span><span class="ff5 fc4">new<span class="_ _8"> </span><span class="fc5">int</span></span>[<span class="fc6">10</span>];<span class="_ _10"> </span>}</div><div class="t m0 x6 hc y19 ff14 fs7 fc0 sc0 ls0 ws0">∼<span class="ffa">A()<span class="_ _10"> </span>{<span class="_ _8"> </span><span class="ff5 fc4">throw<span class="_ _10"> </span></span><span class="fc6">-2</span>;<span class="_ _26"> </span>}</span></div><div class="t m0 x5 hc ye5 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc ye6 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc ye7 ff5 fs7 fc4 sc0 ls0 ws0">try<span class="_ _10"> </span><span class="ffa fc0">{</span></div><div class="t m0 x13 hc ye8 ffa fs7 fc0 sc0 ls0 ws0">A<span class="_ _10"> </span>a;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>could<span class="_ _10"> </span>throw<span class="_ _8"> </span>"bad_alloc"</span></div><div class="t m0 x18 hc ye9 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _10"> </span>"a"<span class="_ _8"> </span>is<span class="_ _10"> </span>out-of-scope<span class="_ _10"> </span>-><span class="_ _8"> </span>throw<span class="_ _10"> </span>2</div><div class="t m0 x6 hc yea ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ff5 fc4">catch<span class="_ _8"> </span></span>(...)<span class="_ _10"> </span>{</div><div class="t m0 x18 hc yeb ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _10"> </span>two<span class="_ _8"> </span>exceptions<span class="_ _10"> </span>at<span class="_ _10"> </span>the<span class="_ _8"> </span>same<span class="_ _10"> </span>time</div><div class="t m0 x6 hc yec ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc yed ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha yee ff8 fs6 fc0 sc0 ls0 ws0">Destructo<span class="_ _3"></span>rs<span class="_ _10"> </span><span class="ff4">should<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>ma<span class="_ _3"></span>rk<span class="_ _3"></span>ed<span class="_ _18"> </span><span class="ffe">noexcept</span></span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">24/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1c" class="pf w0 h0" data-page-no="1c"><div class="pc pc1c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsWkDQRCG0Vtxg6PFNQhHrkAYxQJ1piZcjgIX4Q4cHRt5knPmUIECMSfeq2D5N/mY9nY4TgAAUMb313VnBQAAqhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8a5lpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAHh284beOsbwYQAA9+m9b+i1LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAABQRctMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMCzmzf01jGGDwMAuE/vfUOvdUkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAKlpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAKqbl8veCsANP6dPIwDwSO8f59ZeX9bld5rWdTUIAAAl/AGJTSAAgNACFwAAAABJRU5ErkJggg=="/><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="_ _25"> </span>4/4</div><div class="t m0 x5 hc ybd ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc yef ff5 fs7 fc5 sc0 ls0 ws0">int<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">ptr1,<span class="_ _8"> </span></span>*<span class="fc0">ptr2;</span></span></div><div class="t m0 x6 hc ybf ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _10"> </span>{</div><div class="t m0 x14 hc yc0 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">new<span class="_ _10"> </span><span class="fc5">int</span></span></span>[<span class="fc6">10</span>];</div><div class="t m0 x14 hc yc1 ffa fs7 fc0 sc0 ls0 ws0">ptr2<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">new<span class="_ _10"> </span><span class="fc5">int</span></span></span>[<span class="fc6">10</span>];<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>if<span class="_ _10"> </span>bad_alloc<span class="_ _10"> </span>here,<span class="_ _10"> </span>ptr1<span class="_ _8"> </span>is<span class="_ _10"> </span>lost</span></div><div class="t m0 x6 hc yc2 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc yf0 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc yf1 ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc yf2 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _10"> </span></span>ptr1,<span class="_ _8"> </span>ptr2;</div><div class="t m0 x6 hc yf3 ffa fs7 fc0 sc0 ls0 ws0">A()<span class="_ _10"> </span>{</div><div class="t m0 x14 hc yf4 ffa fs7 fc0 sc0 ls0 ws0">ptr1<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6"><<span class="ff5 fc5">int</span></span>[]<span class="fc6">></span>(<span class="fc6">10</span>);</div><div class="t m0 x14 hc yf5 ffa fs7 fc0 sc0 ls0 ws0">ptr2<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6"><<span class="ff5 fc5">int</span></span>[]<span class="fc6">></span>(<span class="fc6">10</span>);<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>if<span class="_ _8"> </span>bad_alloc<span class="_ _10"> </span>here,</span></div><div class="t m0 x6 hc yf6 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _27"> </span><span class="ffd fc7">//<span class="_ _10"> </span>ptr1<span class="_ _8"> </span>is<span class="_ _10"> </span>deallocated</span></div><div class="t m0 x5 hc yf7 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">25/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">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="_ _28"> </span>1/2</div><div class="t m0 x9 ha yf8 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Global<span class="_ _6"> </span>state<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _5"> </span><span class="ffe">errno</span></span></span></div><div class="t m0 x19 h5 yf9 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 x19 h5 yfa 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="_ _24"> </span><span class="ffe">if<span class="_ _24"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>early<span class="_ _1b"> </span><span class="ffe">return<span class="_ _24"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 x19 h5 yfb 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 x9 ha yfc ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Simple<span class="_ _6"> </span>error<span class="_ _e"> </span>co<span class="_ _c"></span>de<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _5"> </span><span class="ffe">int<span class="_ _11"> </span></span>,<span class="_ _18"> </span><span class="ffe">enum<span class="_ _11"> </span></span>,<span class="_ _e"> </span>etc.</span></span></div><div class="t m0 x19 h5 yfd 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="_ _24"> </span><span class="ffe">[[nodiscard]]<span class="_ _b"> </span></span>)</div><div class="t m0 x19 h5 yfe 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="_ _24"> </span><span class="ffe">if<span class="_ _24"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>early<span class="_ _1b"> </span><span class="ffe">return<span class="_ _24"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 x19 h5 yff 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="_ _b"> </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>erro<span class="_ _3"></span>r</div><div class="t m0 xd h5 y100 ff4 fs3 fc0 sc0 ls0 ws0">info<span class="_ _3"></span>rmation</div><div class="t m0 x19 h5 y101 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 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">26/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,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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="_ _28"> </span>2/2</div><div class="t m0 x9 ha y102 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">std::error<span class="_ _6"> </span>code<span class="_ _11"> </span><span class="ff4">,<span class="_ _e"> </span>standardized<span class="_ _b"> </span>error<span class="_ _b"> </span>co<span class="_ _c"></span>de</span></span></div><div class="t m0 x19 h5 y103 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="_ _24"> </span><span class="ffe">[[nodiscard]]<span class="_ _b"> </span></span>)</div><div class="t m0 x19 h5 y104 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="_ _24"> </span><span class="ffe">if<span class="_ _24"> </span></span>statements<span class="_ _b"> </span>and<span class="_ _b"> </span>early<span class="_ _1b"> </span><span class="ffe">return<span class="_ _24"> </span></span>is<span class="_ _b"> </span>manual</div><div class="t m0 x19 h5 y105 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="_ _a"> </span>error<span class="_ _10"> </span>code</span>)</div><div class="t m0 x19 h5 y106 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 x9 ha y107 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff1">Supp<span class="_ _c"></span>o<span class="_ _3"></span>rting<span class="_ _6"> </span>libra<span class="_ _3"></span>ries<span class="ff4">,<span class="_ _e"> </span>e.g.<span class="_ _10"> </span><span class="ffe">Boost<span class="_ _21"> </span>Outcome</span>,<span class="_ _e"> </span><span class="ffe">STX</span>,<span class="_ _b"> </span>etc.</span></span></div><div class="t m0 x19 h5 y108 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 x19 h5 y109 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 x19 h5 y10a 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 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">27/64</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:406.936500px;bottom:207.273000px;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:259.945500px;bottom:142.911000px;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:381.627000px;bottom:142.911000px;width:19.175000px;height:11.690000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1f" class="pf w0 h0" data-page-no="1f"><div class="pc pc1f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">C++<span class="_ _1"> </span>Idioms</div><a class="l" href="#pf1f" data-dest-detail='[31,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:158.662500px;bottom:201.528000px;width:144.921000px;height:22.106000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">R<span class="_ _3"></span>ule<span class="_ _8"> </span>of<span class="_ _8"> </span>Zero</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _3"></span>ule<span class="_ _e"> </span>of<span class="_ _6"> </span>Zero<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _b"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>C++</span></span></div><div class="t m0 xa ha y10b ff4 fs6 fc0 sc0 ls0 ws0">Utilize<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ff8">value<span class="_ _e"> </span>semantics<span class="_ _8"> </span></span>of<span class="_ _e"> </span>existing<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>es<span class="_ _b"> </span>to<span class="_ _e"> </span>avoid<span class="_ _e"> </span>having<span class="_ _e"> </span>to<span class="_ _b"> </span>implement<span class="_ _e"> </span><span class="ff8">custom</span></div><div class="t m0 xa ha y10c ff4 fs6 fc0 sc0 ls0 ws0">cop<span class="_ _3"></span>y<span class="_ _e"> </span>and<span class="_ _e"> </span>move<span class="_ _b"> </span>op<span class="_ _c"></span>erations</div><div class="t m0 x1 ha y10d ff1 fs6 fc0 sc0 ls0 ws0">Note:<span class="_ _10"> </span><span class="ff4">many<span class="_ _b"> </span>classes<span class="_ _b"> </span>(such<span class="_ _e"> </span>as<span class="_ _b"> </span><span class="ff5">std<span class="_ _b"> </span></span>classes)<span class="_ _e"> </span>manage<span class="_ _b"> </span>resources<span class="_ _b"> </span>themselves<span class="_ _b"> </span>and<span class="_ _e"> </span>should<span class="_ _b"> </span>not</span></div><div class="t m0 x1 ha y10e ff4 fs6 fc0 sc0 ls0 ws0">implement<span class="_ _e"> </span>cop<span class="_ _3"></span>y/move<span class="_ _e"> </span>constructo<span class="_ _3"></span>r<span class="_ _e"> </span>and<span class="_ _b"> </span>assignment<span class="_ _e"> </span>op<span class="_ _c"></span>erato<span class="_ _3"></span>r</div><div class="t m0 x5 hd y10f ff5 fs5 fc4 sc0 ls0 ws0">class<span class="_ _6"> </span><span class="fc8">X<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x5 hd y110 ff5 fs5 fc4 sc0 ls0 ws0">public<span class="ff12 fc6">:</span></div><div class="t m0 x15 hd y111 ff12 fs5 fc0 sc0 ls0 ws0">X(...);<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>constructor</span></div><div class="t m0 x1a hd y112 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _6"> </span>NO<span class="_ _8"> </span>need<span class="_ _6"> </span>to<span class="_ _8"> </span>define<span class="_ _6"> </span>copy/move<span class="_ _6"> </span>semantic</div><div class="t m0 x5 hd y113 ff5 fs5 fc4 sc0 ls0 ws0">private<span class="ff12 fc6">:</span></div><div class="t m0 x15 hd y114 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _29"> </span></span>v;<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>instead<span class="_ _6"> </span>raw<span class="_ _8"> </span>allocation</span></div><div class="t m0 x15 hd y115 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _6"> </span></span>p;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>instead<span class="_ _8"> </span>raw<span class="_ _6"> </span>allocation</span></div><div class="t m0 x5 hd y116 ff12 fs5 fc0 sc0 ls0 ws0">};<span class="_ _2a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>see<span class="_ _8"> </span>smart<span class="_ _6"> </span>pointer</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">28/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf21" class="pf w0 h0" data-page-no="21"><div class="pc pc21 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">R<span class="_ _3"></span>ule<span class="_ _8"> </span>of<span class="_ _8"> </span>Three</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _3"></span>ule<span class="_ _e"> </span>of<span class="_ _6"> </span>Three<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _b"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>C++(03)</span></span></div><div class="t m0 xa ha y10b ff4 fs6 fc0 sc0 ls0 ws0">If<span class="_ _e"> </span>y<span class="_ _3"></span>our<span class="_ _e"> </span>class<span class="_ _b"> </span>needs<span class="_ _e"> </span>any<span class="_ _e"> </span>of</div><div class="t m0 x17 ha y117 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">a<span class="_ _e"> </span>copy<span class="_ _b"> </span>constructor<span class="_ _24"> </span><span class="ff5">X(const<span class="_ _1a"> </span>X&)</span></span></div><div class="t m0 x17 ha y118 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>operator<span class="_ _24"> </span><span class="ff5">X&<span class="_ _1a"> </span>operator=(const<span class="_ _1a"> </span>X&)</span></span></div><div class="t m0 x17 ha y119 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">or<span class="_ _b"> </span>a<span class="_ _e"> </span>destructor<span class="_ _24"> </span><span class="fff">∼<span class="ff5">X()</span></span></span></div><div class="t m0 xa ha y11a ff4 fs6 fc0 sc0 ls0 ws0">defined<span class="_ _e"> </span>explicitly<span class="_ _7"></span>,<span class="_ _e"> </span>then<span class="_ _b"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>lik<span class="_ _3"></span>ely<span class="_ _e"> </span>to<span class="_ _e"> </span>need<span class="_ _b"> </span>all<span class="_ _e"> </span>three<span class="_ _e"> </span>of<span class="_ _e"> </span>them</div><div class="t m0 x1 ha y11b ff4 fs6 fc0 sc0 ls0 ws0">Some<span class="_ _e"> </span>resources<span class="_ _b"> </span>cannot<span class="_ _e"> </span>or<span class="_ _b"> </span>should<span class="_ _e"> </span>not<span class="_ _e"> </span>be<span class="_ _e"> </span>copied.<span class="_ _10"> </span>In<span class="_ _e"> </span>this<span class="_ _b"> </span>case,<span class="_ _e"> </span>they<span class="_ _e"> </span>should<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>decla<span class="_ _3"></span>red</div><div class="t m0 x1 ha y11c ff4 fs6 fc0 sc0 ls0 ws0">as<span class="_ _e"> </span>deleted</div><div class="t m0 x5 he y11d ffe fs3 fc0 sc0 ls0 ws0">X(const<span class="_ _a"> </span>X&)<span class="_ _a"> </span>=<span class="_ _a"> </span>delete</div><div class="t m0 x5 he y11e ffe fs3 fc0 sc0 ls0 ws0">X&<span class="_ _a"> </span>operator=(const<span class="_ _a"> </span>X&)<span class="_ _a"> </span>=<span class="_ _a"> </span>delete</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">29/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 ff1 fs2 fc1 sc0 ls0 ws0">R<span class="_ _3"></span>ule<span class="_ _8"> </span>of<span class="_ _8"> </span>Five</div><div class="t m0 x1 ha y11f ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _3"></span>ule<span class="_ _e"> </span>of<span class="_ _6"> </span>Five<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _b"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span><span class="fc9">C++11</span></span></span></div><div class="t m0 xa ha y120 ff4 fs6 fc0 sc0 ls0 ws0">If<span class="_ _e"> </span>y<span class="_ _3"></span>our<span class="_ _e"> </span>class<span class="_ _b"> </span>needs<span class="_ _e"> </span>any<span class="_ _e"> </span>of</div><div class="t m0 x17 ha y121 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">a<span class="_ _e"> </span>copy<span class="_ _b"> </span>constructor<span class="_ _24"> </span><span class="ff5">X(const<span class="_ _1a"> </span>X&)</span></span></div><div class="t m0 x17 ha y122 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">a<span class="_ _e"> </span>move<span class="_ _e"> </span>constructo<span class="_ _3"></span>r<span class="_ _18"> </span><span class="ff5">X(X&&)</span></span></div><div class="t m0 x17 ha y123 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>operator<span class="_ _24"> </span><span class="ff5">X&<span class="_ _1a"> </span>operator=(const<span class="_ _1a"> </span>X&)</span></span></div><div class="t m0 x17 ha y124 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>operator<span class="_ _24"> </span><span class="ff5">X&<span class="_ _1a"> </span>operator=(X&&)</span></span></div><div class="t m0 x17 ha y125 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">or<span class="_ _b"> </span>a<span class="_ _e"> </span>destructor<span class="_ _24"> </span><span class="fff">∼<span class="ff5">X()</span></span></span></div><div class="t m0 xa ha y126 ff4 fs6 fc0 sc0 ls0 ws0">defined<span class="_ _e"> </span>explicitly<span class="_ _7"></span>,<span class="_ _e"> </span>then<span class="_ _b"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>lik<span class="_ _3"></span>ely<span class="_ _e"> </span>to<span class="_ _e"> </span>need<span class="_ _b"> </span>all<span class="_ _e"> </span>five<span class="_ _e"> </span>of<span class="_ _e"> </span>them</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">30/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4YtcsDqcQaycQMRauM1cwnEsHMINrI6rTBM7OwuvkD/wPBOEL83Ln3aHUwcAAGE87reVFQAAiEakAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADwkUopVgAAII6cs0sqAADhiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAALBM39Bb53n2YQAAywzD0NBrXVIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCANqVSihUAAIgj5+ySCgBAOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAAftRPl60VAL55nq9GAPiz/XFMabOu06vraq0GAQAghDc6yRoCK/veKwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Singleton</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Singleton<span class="_ _e"> </span><span class="ff4">is<span class="_ _b"> </span>a<span class="_ _e"> </span>softw<span class="_ _3"></span>a<span class="_ _3"></span>re<span class="_ _e"> </span>design<span class="_ _e"> </span>pattern<span class="_ _b"> </span>that<span class="_ _e"> </span>restricts<span class="_ _e"> </span>the<span class="_ _b"> </span>instantiation<span class="_ _e"> </span>of<span class="_ _e"> </span>a<span class="_ _b"> </span>class<span class="_ _e"> </span>to<span class="_ _e"> </span>one</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>only<span class="_ _b"> </span>one<span class="_ _e"> </span>object<span class="_ _e"> </span>(<span class="ffb fs7">a<span class="_ _11"> </span>common<span class="_ _b"> </span>application<span class="_ _11"> </span>is<span class="_ _b"> </span>fo<span class="_ _3"></span>r<span class="_ _b"> </span>logging<span class="ff4 fs6">)</span></span></div><div class="t m0 x5 hd y127 ff5 fs5 fc4 sc0 ls0 ws0">class<span class="_ _6"> </span><span class="fc8">Singleton<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x5 hd y128 ff5 fs5 fc4 sc0 ls0 ws0">public<span class="ff12 fc6">:</span></div><div class="t m0 x15 hd y129 ff5 fs5 fc4 sc0 ls0 ws0">static<span class="_ _6"> </span><span class="ff12 fc0">Singleton<span class="fc6">&<span class="_ _8"> </span></span>get_instance()<span class="_ _6"> </span>{<span class="_ _2b"> </span><span class="ffd fc7">//<span class="_ _6"> </span>note<span class="_ _8"> </span>"static"</span></span></div><div class="t m0 x16 hd y12a ff5 fs5 fc4 sc0 ls0 ws0">static<span class="_ _6"> </span><span class="ff12 fc0">Singleton<span class="_ _8"> </span>instance<span class="_ _8"> </span>{<span class="_ _6"> </span>..init..<span class="_ _8"> </span>}<span class="_ _6"> </span>;</span></div><div class="t m0 x16 hd y12b ff5 fs5 fc4 sc0 ls0 ws0">return<span class="_ _6"> </span><span class="ff12 fc0">instance;<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _8"> </span>destroyed<span class="_ _6"> </span>at<span class="_ _8"> </span>the<span class="_ _6"> </span>end<span class="_ _6"> </span>of<span class="_ _8"> </span>the<span class="_ _6"> </span>program</span></span></div><div class="t m0 x15 hd y12c ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _2c"> </span><span class="ffd fc7">//<span class="_ _6"> </span>initiliazed<span class="_ _8"> </span>at<span class="_ _6"> </span>first<span class="_ _8"> </span>use</span></div><div class="t m0 x15 hd y12d ff12 fs5 fc0 sc0 ls0 ws0">Singleton(<span class="ff5 fc4">const</span><span class="fc6">&<span class="_ _6"> </span></span>Singleton)<span class="_ _2d"> </span><span class="fc6">=<span class="_ _6"> </span><span class="ff5 fc4">delete</span></span>;</div><div class="t m0 x15 hd y12e ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="fc4">operator<span class="ff12 fc6">=<span class="fc0">(</span></span>const<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">Singleton)<span class="_ _8"> </span></span>=<span class="_ _6"> </span></span>delete<span class="ff12 fc0">;</span></span></div><div class="t m0 x15 hd y12f ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">()<span class="_ _8"> </span>{}</span></span></div><div class="t m0 x5 hd y130 ff5 fs5 fc4 sc0 ls0 ws0">private<span class="ff12 fc6">:</span></div><div class="t m0 x15 hd y131 ff12 fs5 fc0 sc0 ls0 ws0">T<span class="_ _6"> </span>_data;</div><div class="t m0 x15 hd y132 ff12 fs5 fc0 sc0 ls0 ws0">Singleton(<span class="_ _6"> </span>..args..<span class="_ _8"> </span>)<span class="_ _8"> </span>{<span class="_ _6"> </span>...<span class="_ _8"> </span>}<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>used<span class="_ _8"> </span>in<span class="_ _6"> </span>the<span class="_ _6"> </span>initialization</span></div><div class="t m0 x5 hd y133 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">31/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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">PIMPL<span class="_ _8"> </span>-<span class="_ _8"> </span>Compilation<span class="_ _8"> </span>Firew<span class="_ _3"></span>alls</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>ointer<span class="_ _6"> </span>to<span class="_ _6"> </span>IMPLementation<span class="_ _6"> </span>(PIMPL)<span class="_ _e"> </span><span class="ff4">idiom<span class="_ _b"> </span>allows<span class="_ _b"> </span>decoupling<span class="_ _e"> </span>the<span class="_ _e"> </span>interface<span class="_ _e"> </span>from</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _e"> </span>implementation<span class="_ _b"> </span>in<span class="_ _e"> </span>a<span class="_ _e"> </span>clea<span class="_ _3"></span>r<span class="_ _e"> </span>w<span class="_ _3"></span>ay</div><div class="t m0 x1 hf y134 ff5 fs7 fc0 sc0 ls0 ws0">header.hpp</div><div class="t m0 x5 hc y135 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x5 hc y136 ff5 fs7 fc4 sc0 ls0 ws0">public<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y137 ffa fs7 fc0 sc0 ls0 ws0">A();</div><div class="t m0 x6 hc y138 ff14 fs7 fc0 sc0 ls0 ws0">∼<span class="ffa">A();</span></div><div class="t m0 x6 hc y139 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">f<span class="fc0">();</span></span></div><div class="t m0 x5 hc y13a ff5 fs7 fc4 sc0 ls0 ws0">private<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y13b ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">Impl<span class="ffa fc0">;<span class="_ _1"> </span><span class="ffd fc7">//<span class="_ _10"> </span>forward<span class="_ _10"> </span>declaration</span></span></span></div><div class="t m0 x6 hc y13c ffa fs7 fc0 sc0 ls0 ws0">Impl<span class="fc6">*<span class="_ _10"> </span></span>ptr;<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>opaque<span class="_ _8"> </span>pointer</span></div><div class="t m0 x5 hc y13d ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y13e ff4 fs6 fc0 sc0 ls0 ws0">NOTE:<span class="_ _e"> </span>The<span class="_ _b"> </span>class<span class="_ _e"> </span>do<span class="_ _c"></span>es<span class="_ _b"> </span>not<span class="_ _e"> </span>exp<span class="_ _c"></span>ose<span class="_ _e"> </span>internal<span class="_ _b"> </span>data<span class="_ _e"> </span>memb<span class="_ _c"></span>ers<span class="_ _b"> </span>or<span class="_ _b"> </span>metho<span class="_ _c"></span>ds</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">32/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSNmMJRiHgiHYgCpKhRvT0dFQwI84ZwLrubn6ebM7JAAACON2vSysAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICXXGu1AgAAcZRSXFIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAmK9uRm+dpsmHAQB8pu/7Gb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAfiXXWq0AAEAcpRSXVAAAwhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAf6QbT2srAHzZ/Xg2AsA72/2Q82rZxkdKrTWDAAAQwhNG3xoCvgIvkwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">PIMPL<span class="_ _8"> </span>-<span class="_ _8"> </span>Implementation</div><div class="t m0 x1 hb y13f ff5 fs7 fc0 sc0 ls0 ws0">source.cpp<span class="_ _11"> </span><span class="ffb">(<span class="ffa">Impl<span class="_ _b"> </span></span>actual<span class="_ _11"> </span>implementation)</span></div><div class="t m0 x5 hc y140 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">A<span class="ffa fc6">::<span class="fc0">Impl<span class="_ _8"> </span>{<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>could<span class="_ _8"> </span>be<span class="_ _10"> </span>a<span class="_ _10"> </span>class<span class="_ _10"> </span>with<span class="_ _8"> </span>a<span class="_ _10"> </span>complex<span class="_ _10"> </span>logic</span></span></span></span></div><div class="t m0 x5 hc y141 ff5 fs7 fc4 sc0 ls0 ws0">public<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y142 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">internal_f()<span class="_ _8"> </span>{</span></div><div class="t m0 x14 hc y143 ffa fs7 fc0 sc0 ls0 ws0">..<span class="ff5 fc4">do<span class="_ _10"> </span></span>something..</div><div class="t m0 x6 hc y25 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y144 ff5 fs7 fc4 sc0 ls0 ws0">private<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y145 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _1c"> </span><span class="ffa fc0">_data1;</span></div><div class="t m0 x6 hc y146 ff5 fs7 fc5 sc0 ls0 ws0">float<span class="_ _10"> </span><span class="ffa fc0">_data2;</span></div><div class="t m0 x5 hc y147 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y148 ffa fs7 fc0 sc0 ls0 ws0">A<span class="fc6">::</span>A()<span class="_ _26"> </span><span class="fc6">:<span class="_ _10"> </span></span>ptr{<span class="ff5 fc4">new<span class="_ _8"> </span></span>Impl()}<span class="_ _10"> </span>{}</div><div class="t m0 x5 hc y149 ffa fs7 fc0 sc0 ls0 ws0">A<span class="fc6">::</span><span class="ff14">∼</span>A()<span class="_ _26"> </span>{<span class="_ _10"> </span><span class="ff5 fc4">delete<span class="_ _8"> </span></span>ptr;<span class="_ _10"> </span>}</div><div class="t m0 x5 hc y14a ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">A<span class="fc6">::</span>f()<span class="_ _8"> </span>{<span class="_ _10"> </span>ptr<span class="fc6">-></span>internal_f();<span class="_ _10"> </span>}</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">33/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf26" class="pf w0 h0" data-page-no="26"><div class="pc pc26 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI3UlEQVR42u3dsU3DQBiG4RzyierEDIiKCRBQUCHRUEDBSizBFCkyAQXKDGxAFV1BOBGZjiJFisiI387zlC4/ydars2Sns4vrGQAAhPH+9npkBQAAohGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8Sq01KwAAEEfO2UkqAADhiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAExOZ4JxqbUaYW+lFCO4ccCDCEbBSSoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAA5dZwKAcfnebK7uH7YuLhdzywBTklprVhiRWqsR9lZKMYIbBzyIIL6cs9f9AACEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAADw3/xxCgCAWPxxCgCAiEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAGF0JhiXWqsRGEopxQgAxOQkFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAADs1pmAP/W5Xt88Pm1dXC7mlgEAdkitNSuMSK3VCAyllGIEAALKOXvdDwBAOCIVAACRCgAAIhUAAJEKAAAiFQCAyfEJKgAAYvEJKgAAIhKpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAADKZbPZ9aASCsj9sXIwCH5vzyLqWT4371NZv1fW8QAABC+AGyLD38vaZO2QAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">PIMPL<span class="_ _8"> </span>-<span class="_ _8"> </span>A<span class="_ _3"></span>dvantages,<span class="_ _8"> </span>Disadvantages</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>dvantages<span class="ff4">:</span></div><div class="t m0 x9 ha y14b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">ABI<span class="_ _e"> </span>stability</span></div><div class="t m0 x9 ha y14c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Hide<span class="_ _e"> </span>private<span class="_ _b"> </span>data<span class="_ _e"> </span>members<span class="_ _e"> </span>and<span class="_ _e"> </span>metho<span class="_ _c"></span>ds</span></div><div class="t m0 x9 ha y14d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Reduce<span class="_ _e"> </span>compile<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>and<span class="_ _e"> </span>dep<span class="_ _c"></span>endencies</span></div><div class="t m0 x1 ha y14e ff1 fs6 fc0 sc0 ls0 ws0">Disadvantages<span class="ff4">:</span></div><div class="t m0 x9 ha y14f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Manual<span class="_ _e"> </span>resource<span class="_ _e"> </span>management</span></div><div class="t m0 x19 h5 y150 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _13"> </span><span class="ffe">Impl*<span class="_ _a"> </span>ptr<span class="_ _1b"> </span></span>can<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>replaced<span class="_ _b"> </span>by<span class="_ _1b"> </span><span class="ffe">unique<span class="_ _e"> </span>ptr<impl><span class="_ _a"> </span>ptr<span class="_ _1b"> </span></span>in<span class="_ _b"> </span><span class="fc9">C++11</span></div><div class="t m0 x9 ha y151 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Perfo<span class="_ _3"></span>rmance:<span class="_ _10"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>indirection<span class="_ _e"> </span>+<span class="_ _e"> </span>dynamic<span class="_ _e"> </span>memo<span class="_ _3"></span>ry</span></div><div class="t m0 x19 h5 y152 ff4 fs3 fc0 sc0 ls0 ws0">-<span class="_ _a"> </span>dynamic<span class="_ _b"> </span>memory<span class="_ _b"> </span>could<span class="_ _b"> </span>be<span class="_ _b"> </span>avoided<span class="_ _b"> </span>by<span class="_ _b"> </span>using<span class="_ _b"> </span>a<span class="_ _b"> </span>reserved<span class="_ _b"> </span>space<span class="_ _b"> </span>in<span class="_ _b"> </span>the<span class="_ _b"> </span>interface<span class="_ _b"> </span>e.g.</div><div class="t m0 xe he y153 ffe fs3 fc0 sc0 ls0 ws0">uint8<span class="_ _e"> </span>t<span class="_ _a"> </span>data[1024]</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">34/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf27" class="pf w0 h0" data-page-no="27"><div class="pc pc27 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI7ElEQVR42u3ZMS5EURTH4bnyTlQ31iAqKxBRqCRahUJhPTZhBwprkCgswg5UcgvjNKNTkCiYcN74vnKql/9tfjnT9g6OFgAAUMbjw/2WFQAAqEakAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADwrmWmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAAfmIyAcBPjDFm9LW9d08GzIJLKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAALBWLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAA1U0mANhUY4wZfW3v3ZMB71xSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMBma5lpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAOqaTADArxljzOhre++eDP6KSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAACwVi0zrQAAQB0R4ZIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAEBdkwlgvcYYM/ra3rsnA6Agl1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBgrVpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIDPprl86MtyeXpx6cFgXu5ub4wAwDe0zLQCAAB1RIS/+wEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICvTSaA/+P47PzDL3e3N2YBoKCWmVYAAKCOiPB3PwAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQCYmen5atcKABvg6eTaCMBm2D88bW1ne/X8ulisViuDAABQwht7tTr4sfZfmQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">PIMPL<span class="_ _8"> </span>-<span class="_ _8"> </span>Implementation<span class="_ _8"> </span>Alternatives</div><div class="t m0 x1 ha y154 ff4 fs6 fc0 sc0 ls0 ws0">What<span class="_ _e"> </span>pa<span class="_ _3"></span>rts<span class="_ _e"> </span>of<span class="_ _b"> </span>the<span class="_ _e"> </span>class<span class="_ _e"> </span>should<span class="_ _e"> </span>go<span class="_ _b"> </span>into<span class="_ _e"> </span>the<span class="_ _18"> </span><span class="ffe">Impl<span class="_ _18"> </span></span>object?</div><div class="t m0 x9 ha y155 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Put<span class="_ _e"> </span>all<span class="_ _e"> </span>p<span class="_ _3"></span>rivate<span class="_ _e"> </span>and<span class="_ _e"> </span>p<span class="_ _3"></span>rotected<span class="_ _e"> </span>members<span class="_ _e"> </span>into<span class="_ _18"> </span><span class="ffd">Impl<span class="_ _11"> </span><span class="ff4">:</span></span></span></div><div class="t m0 x6 ha y156 ff1 fs6 fc0 sc0 ls0 ws0">Erro<span class="_ _3"></span>r<span class="_ _6"> </span>prone<span class="ff4">.<span class="_ _8"> </span>Inheritance<span class="_ _e"> </span>is<span class="_ _e"> </span>ha<span class="_ _3"></span>rd<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>opaque<span class="_ _e"> </span>objects</span></div><div class="t m0 x9 ha y157 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Put<span class="_ _e"> </span>all<span class="_ _e"> </span>p<span class="_ _3"></span>rivate<span class="_ _e"> </span>memb<span class="_ _c"></span>ers<span class="_ _b"> </span>(but<span class="_ _e"> </span>not<span class="_ _e"> </span>functions)<span class="_ _b"> </span>into<span class="_ _18"> </span><span class="ffd">Impl<span class="_ _b"> </span><span class="ff4">:</span></span></span></div><div class="t m0 x6 ha y158 ff1 fs6 fc0 sc0 ls0 ws0">Go<span class="_ _c"></span>od<span class="ff4">.<span class="_ _10"> </span>Do<span class="_ _e"> </span>we<span class="_ _b"> </span>need<span class="_ _e"> </span>to<span class="_ _e"> </span>expose<span class="_ _e"> </span>all<span class="_ _e"> </span>functions?</span></div><div class="t m0 x9 ha y159 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff8">Put<span class="_ _e"> </span>everything<span class="_ _e"> </span>into<span class="_ _24"> </span><span class="ffd">Impl<span class="_ _b"> </span></span>,<span class="_ _b"> </span>and<span class="_ _e"> </span>write<span class="_ _e"> </span>the<span class="_ _e"> </span>public<span class="_ _b"> </span>class<span class="_ _e"> </span>itself<span class="_ _e"> </span>as<span class="_ _b"> </span>only<span class="_ _e"> </span>the<span class="_ _e"> </span>public</span></div><div class="t m0 x6 ha y15a ff8 fs6 fc0 sc0 ls0 ws0">interface,<span class="_ _e"> </span>each<span class="_ _b"> </span>implemented<span class="_ _e"> </span>as<span class="_ _e"> </span>a<span class="_ _b"> </span>simple<span class="_ _e"> </span>forw<span class="_ _3"></span>a<span class="_ _3"></span>rding<span class="_ _e"> </span>function<span class="ff4">:</span></div><div class="t m0 x6 ha y15b ff1 fs6 fc0 sc0 ls0 ws0">Go<span class="_ _c"></span>od</div><div class="t m0 x9 hc y15c ffa fs7 fc3 sc0 ls0 ws0">https://herbsutter.com/gotw/<span class="_ _b"> </span>100/</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">35/64</div><a class="l" href="https://herbsutter.com/gotw/_100/"><div class="d m1" style="border-style:none;position:absolute;left:52.083000px;bottom:9.715500px;width:156.017000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAItElEQVR42u3ZMUoDURCA4X2yg9XDM4iVJxCxFiy9Sw5hlRt4CA9h4SG8gVV4ldNsuhSWEXSW/b4yRRjmQfiZtJu7hwkAAMr4/Hi/sAUAAKoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAnLTMtAUAAOqICJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAf2he0axjjN9/Se/dqwP4ZQaKc0kFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAP+rZaYtAABQR0S4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA2JB5RbOOMTwYAMB5eu8rmtYlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoFAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBANio2Qo26Hm///HJ225nLQBAHS0z1zLrGMODAQCcp/e+llEjwt/9AACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAADhpmWkLAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAIBNmQ8v17YAsClfj6+WAFR2e//U2tXlcviepmVZLAQAgBKOxcUr/jb2k4EAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">CRTP<span class="_ _2e"> </span>1/3</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">Curiously<span class="_ _e"> </span>Recurring<span class="_ _6"> </span>T<span class="_ _7"></span>emplate<span class="_ _6"> </span>Pattern<span class="_ _e"> </span>(CRTP)<span class="_ _e"> </span><span class="ff4">is<span class="_ _b"> </span>an<span class="_ _e"> </span>idiom<span class="_ _e"> </span>in<span class="_ _e"> </span>which<span class="_ _b"> </span>a<span class="_ _e"> </span>class</span></span></div><div class="t m0 x5 ha y79 ffe fs6 fc0 sc0 ls0 ws0">X<span class="_ _18"> </span><span class="ff4">derives<span class="_ _e"> </span>from<span class="_ _b"> </span>a<span class="_ _e"> </span>class<span class="_ _e"> </span>template<span class="_ _e"> </span>instantiation<span class="_ _b"> </span>using<span class="_ _18"> </span></span>X<span class="_ _18"> </span><span class="ff4">itself<span class="_ _e"> </span>as<span class="_ _e"> </span>template<span class="_ _b"> </span>argument</span></div><div class="t m0 x1 ha yca ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _e"> </span>common<span class="_ _b"> </span>application<span class="_ _e"> </span>is<span class="_ _e"> </span><span class="ff8">static<span class="_ _b"> </span>p<span class="_ _c"></span>olymorphism</span></div><div class="t m0 x5 hc y15d ff5 fs7 fc4 sc0 ls0 ws0">template<span class="_ _10"> </span><span class="ffa fc6"><</span>class<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x5 hc y15e ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">Base<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y15f ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">my_method<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x14 hc y160 ff5 fs7 fc4 sc0 ls0 ws0">static_cast<span class="ffa fc6"><<span class="fc0">T</span>*><span class="fc0">(</span></span>this<span class="ffa fc0">)<span class="fc6">-></span>my_method_impl();</span></div><div class="t m0 x6 hc y161 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y162 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y163 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">Derived<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Base<span class="fc6"><</span>Derived<span class="fc6">><span class="_ _8"> </span></span>{</span></div><div class="t m0 x5 hc y164 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _16"> </span><span class="ff15">void<span class="_ _10"> </span>my<span class="_ _b"> </span>method()<span class="_ _10"> </span>is<span class="_ _8"> </span>inherited</span></div><div class="t m0 x6 hc y165 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">my_method_impl<span class="fc0">()<span class="_ _8"> </span>{<span class="_ _10"> </span>...<span class="_ _10"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>private<span class="_ _10"> </span>method</span></span></span></div><div class="t m0 x5 hc y166 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">36/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIeElEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGIt3GYu4TgWDuEGVsdVpomdlVgIyn/wPBOEL83Lnze7QwIAgDBu18vCCgAARCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAB4ybVWKwAAEEcpxSUVAIBwRCoAACIVAABEKgAAIhUAAEQqAAAiFQAAfq2b0VunafJhAADf6ft+Rq91SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASDUBAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgg1xrtQIAAHGUUlxSAQAIR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFACC6bjytrQDAW/fj2QjA/233Q86rZRsfKbXWDAIAQAhPixUaAqu5VXwAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">CRTP<span class="_ _2e"> </span>2/3</div><div class="t m0 x5 hc y167 ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hc y168 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="_ _10"> </span><span class="ffa fc6"><</span>typename<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x5 hc y169 ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">Writer<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y16a ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">write<span class="fc0">(</span></span><span class="fc4">const<span class="_ _8"> </span></span>char<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">str)<span class="_ _10"> </span>{</span></span></div><div class="t m0 x14 hc y16b ff5 fs7 fc4 sc0 ls0 ws0">static_cast<span class="ffa fc6"><</span>const<span class="_ _10"> </span><span class="ffa fc0">T<span class="fc6">*></span>(</span>this<span class="ffa fc0">)<span class="fc6">-></span>write_impl(str);</span></div><div class="t m0 x6 hc y16c ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y16d ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y16e ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">CerrWriter<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Writer<span class="fc6"><</span>CerrWriter<span class="fc6">><span class="_ _8"> </span></span>{</span></div><div class="t m0 x6 hc y16f ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">write_impl<span class="fc0">(</span></span><span class="fc4">const<span class="_ _8"> </span></span>char<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">str)<span class="_ _10"> </span>{<span class="_ _16"> </span>std</span>::<span class="fc0">cerr<span class="_ _8"> </span></span><<<span class="_ _10"> </span><span class="fc0">str;<span class="_ _16"> </span>}</span></span></div><div class="t m0 x5 hc y170 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y171 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">CoutWriter<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Writer<span class="fc6"><</span>CoutWriter<span class="fc6">><span class="_ _8"> </span></span>{</span></div><div class="t m0 x6 hc y172 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc8">write_impl<span class="fc0">(</span></span><span class="fc4">const<span class="_ _8"> </span></span>char<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">str)<span class="_ _10"> </span>{<span class="_ _16"> </span>std</span>::<span class="fc0">cout<span class="_ _8"> </span></span><<<span class="_ _10"> </span><span class="fc0">str;<span class="_ _16"> </span>}</span></span></div><div class="t m0 x5 hc y173 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y174 ffa fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _10"> </span>x;</div><div class="t m0 x5 hc y175 ffa fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _10"> </span>y;</div><div class="t m0 x5 hc y176 ffa fs7 fc0 sc0 ls0 ws0">x.write(<span class="fcb">"abc"</span>);</div><div class="t m0 x5 hc y177 ffa fs7 fc0 sc0 ls0 ws0">y.write(<span class="fcb">"abc"</span>);</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">37/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImUlEQVR42u3ZsU0DQRCG0Vt0I6ITNSAiV4AQMZJbIHA9NEEHBNRgyQFF0AGRdQH2JEdGbNkEs+K9Clb/Jp9229394wAAAGV8fuyurAAAQDUiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQCAXy0zrQAAQB0R4SUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAID/a+zorPM8uzAAgPNM09TRab2kAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAnKJlphUAAKgjIrykAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEA6MDYy0G/D4f188aFQV+2729GAOAMLTOtAABAHRHhux8AgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCANCVcf9yawUALvf19GoE4E+sHtat3Vwv++MwLMtiEAAASvgB5/UjAOI2gt8AAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">CRTP<span class="_ _2e"> </span>3/3</div><div class="t m0 x5 hc y178 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="_ _10"> </span><span class="ffa fc6"><</span>typename<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x5 hc y179 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">f(Writer<span class="fc6"><</span>T<span class="fc6">>&<span class="_ _8"> </span></span>writer)<span class="_ _10"> </span>{</span></div><div class="t m0 x6 hc y17a ffa fs7 fc0 sc0 ls0 ws0">writer.write(<span class="fcb">"abc);</span></div><div class="t m0 x5 hc y17b ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y17c ffa fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _10"> </span>x;</div><div class="t m0 x5 hc y17d ffa fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _10"> </span>y;</div><div class="t m0 x5 hc y17e ffa fs7 fc0 sc0 ls0 ws0">f(x);</div><div class="t m0 x5 hc y17f ffa fs7 fc0 sc0 ls0 ws0">f(y);</div><div class="t m0 x9 hc y180 ffa fs7 fc3 sc0 ls0 ws0">CRTP<span class="_ _10"> </span>C++<span class="_ _8"> </span>Examples</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">38/64</div><a class="l" href="http://www.vishalchovatiya.com/crtp-c-examples/"><div class="d m1" style="border-style:none;position:absolute;left:52.083000px;bottom:6.001500px;width:82.018000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGItuJlLOI6FQ7iB1XGVaWJnKWoh/8nzTBC+NC9/Xm12CQAAwrhezjMrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAp11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgDAX+gm9NZxHH0YAMB3+r6f0GtdUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAADwsVxrtQIAAHGUUlxSAQAIR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAb+mG49IKAPzSbX8yAvDCenvIeTFvwz2l1ppBAAAI4QFh/BoCMvPhUwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Virtual<span class="_ _8"> </span>F<span class="_ _3"></span>unction<span class="_ _2f"> </span>1/3</div><div class="t m0 x1 ha y181 ff1 fs6 fc0 sc0 ls0 ws0">Virtual<span class="_ _e"> </span>functions<span class="_ _6"> </span>cannot<span class="_ _6"> </span>have<span class="_ _6"> </span>template<span class="_ _6"> </span>arguments<span class="ff4">,<span class="_ _b"> </span>but<span class="_ _e"> </span>they<span class="_ _e"> </span>can<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>emulated<span class="_ _b"> </span>by</span></div><div class="t m0 x1 ha y182 ff4 fs6 fc0 sc0 ls0 ws0">using<span class="_ _e"> </span>the<span class="_ _b"> </span>following<span class="_ _b"> </span>pattern</div><div class="t m0 x5 hc y183 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">Base<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x5 hc y184 ff5 fs7 fc4 sc0 ls0 ws0">public<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y185 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6"><</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x6 hc y186 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">method(T<span class="_ _8"> </span>t)<span class="_ _10"> </span>{</span></div><div class="t m0 x14 hc y187 ffa fs7 fc0 sc0 ls0 ws0">v_method(t);<span class="_ _26"> </span><span class="ffd fc7">//<span class="_ _10"> </span>call<span class="_ _8"> </span>the<span class="_ _10"> </span>actual<span class="_ _10"> </span>implementation</span></div><div class="t m0 x6 hc y188 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y189 ff5 fs7 fc4 sc0 ls0 ws0">protected<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y18a ff5 fs7 fc4 sc0 ls0 ws0">virtual<span class="_ _10"> </span><span class="fc5">void<span class="_ _8"> </span><span class="ffa fc0">v_method(</span>int<span class="_ _10"> </span><span class="ffa fc0">t)<span class="_ _26"> </span><span class="fc6">=<span class="_ _10"> </span>0</span>;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _10"> </span>v_method<span class="_ _10"> </span>is<span class="_ _8"> </span>valid<span class="_ _10"> </span>only</span></span></span></div><div class="t m0 x6 hc y18b ff5 fs7 fc4 sc0 ls0 ws0">virtual<span class="_ _10"> </span><span class="fc5">void<span class="_ _8"> </span><span class="ffa fc8">v_method<span class="fc0">(</span></span>double<span class="_ _10"> </span><span class="ffa fc0">t)<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>0</span>;<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>for<span class="_ _10"> </span>"int"<span class="_ _8"> </span>and<span class="_ _10"> </span>"double"</span></span></span></div><div class="t m0 x5 hc y18c ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">39/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsW0CQRCG0Vt0I0crakCOqABZjpHojCYoh8BFuANHaCMmOQeWXIBB8iDeK+B091/yadrr7n0CAIAyPj/OKysAAFCNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4FfLTCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMCzm00A8GOMcftDeu8+CuB2LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4H+1zLQCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAC4s/mB3nWM4YcBAPxN7/2B3tYlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAFPLTCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAEB18+W4sQIANX3tT0aAJ7R9O7S2flku12lalsUgAACU8A1fpSMAsvbAFQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Virtual<span class="_ _8"> </span>F<span class="_ _3"></span>unction<span class="_ _2f"> </span>2/3</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>ctual<span class="_ _e"> </span>implementations<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>derived<span class="_ _b"> </span>class<span class="_ _18"> </span><span class="ffe">A<span class="_ _18"> </span></span>and<span class="_ _18"> </span><span class="ffe">B</span></div><div class="t m0 x5 hc ye3 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">AImpl<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Base<span class="_ _8"> </span>{</span></div><div class="t m0 x5 hc ye4 ff5 fs7 fc4 sc0 ls0 ws0">protected<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y19 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6"><</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x6 hc ye5 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">t_method(T<span class="_ _8"> </span>t)<span class="_ _10"> </span>{<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>template<span class="_ _10"> </span>"method()"<span class="_ _10"> </span>implementation<span class="_ _10"> </span>for<span class="_ _8"> </span>A</span></span></div><div class="t m0 x14 hc ye6 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"A<span class="_ _10"> </span>"<span class="_ _10"> </span></span><<<span class="_ _8"> </span></span>t<span class="_ _10"> </span><span class="fc6"><<<span class="_ _10"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 x6 hc ye7 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc ye8 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc yea ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">BImpl<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Base<span class="_ _8"> </span>{</span></div><div class="t m0 x5 hc yeb ff5 fs7 fc4 sc0 ls0 ws0">protected<span class="ffa fc6">:</span></div><div class="t m0 x6 hc yec ff5 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6"><</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">></span></span></div><div class="t m0 x6 hc yed ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">t_method(T<span class="_ _8"> </span>t)<span class="_ _10"> </span>{<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>template<span class="_ _10"> </span>"method()"<span class="_ _10"> </span>implementation<span class="_ _10"> </span>for<span class="_ _8"> </span>B</span></span></div><div class="t m0 x14 hc y18d ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"B<span class="_ _10"> </span>"<span class="_ _10"> </span></span><<<span class="_ _8"> </span></span>t<span class="_ _10"> </span><span class="fc6"><<<span class="_ _10"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 x6 hc y18e ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc y18f ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">40/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2d" class="pf w0 h0" data-page-no="2d"><div class="pc pc2d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJEUlEQVR42u3cMUoDQRSA4azsYCwGzyBWXkARi1SCWFikyJW8hKdIkRNYiGfwBlZhisRpYmcRQRBMfLP5vnKrzZth+ZlN0p1f3YwAACCMt5fnI1MAACAakQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwJeu1moKAADEkVJykgoAQDgiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8rG/oXkspFgyII+fsMQW09ZhqiJNUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqhEAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAACwK12t1RQAAIgjpeQkFQCAcEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAHJi+oXstpViw38o5W1ba2hIAMHKSCgBAQL0RABBTW29avKaAv+UkFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAILpjYAWrdbryXS2dfF1MTcZABCp8G9OxmNJCgAD5nU/AAAiFQAARCoAACIVAABEKgAAg+PX/QAElXM2BDhYTlIBAAinq7WaAgAAcaSUnKQCABBOS99JLaVYsH2K/20wW8KWAGConKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAEBj+sF/wtV6PZnOti6+LubW/mBd3j98v2hLAEAoXa21lXstpViwfco52xK0tSUAGIaUktf9AACEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAsGst/U8qAACHwP+kAgAQkUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDA0PXLxzNTAKB177dPhgCDcXF913Wnx5vlx2i02WwMBACAED4Bx7FMdrR06HcAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Virtual<span class="_ _8"> </span>F<span class="_ _3"></span>unction<span class="_ _2f"> </span>3/3</div><div class="t m0 x5 hc y190 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="ffa fc6"><</span>class<span class="_ _10"> </span><span class="fc8">Impl<span class="ffa fc6">></span></span></div><div class="t m0 x5 hc y191 ff5 fs7 fc4 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc8">DerivedWrapper<span class="_ _8"> </span><span class="ffa fc6">:<span class="_ _10"> </span></span></span>public<span class="_ _10"> </span><span class="ffa fc0">Impl<span class="_ _8"> </span>{</span></div><div class="t m0 x5 hc y192 ff5 fs7 fc4 sc0 ls0 ws0">private<span class="ffa fc6">:</span></div><div class="t m0 x6 hc y193 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">v_method(</span>int<span class="_ _8"> </span><span class="ffa fc0">t)<span class="_ _10"> </span></span><span class="fc4">override<span class="_ _10"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x14 hc y194 ffa fs7 fc0 sc0 ls0 ws0">Impl<span class="fc6">::</span>t_method(t);</div><div class="t m0 x6 hc y195 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x6 hc y196 ff5 fs7 fc5 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ffa fc0">v_method(</span>double<span class="_ _8"> </span><span class="ffa fc0">t)<span class="_ _10"> </span></span><span class="fc4">override<span class="_ _10"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x14 hc y197 ffa fs7 fc0 sc0 ls0 ws0">Impl<span class="fc6">::</span>t_method(t);</div><div class="t m0 x6 hc y198 ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>call<span class="_ _10"> </span>the<span class="_ _10"> </span>base<span class="_ _8"> </span>method</span></div><div class="t m0 x5 hc y199 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y19a ff5 fs7 fc4 sc0 ls0 ws0">using<span class="_ _10"> </span><span class="ffa fc0">A<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>DerivedWrapper<span class="fc6"><</span>AImpl<span class="fc6">></span>;</span></div><div class="t m0 x5 hc y19b ff5 fs7 fc4 sc0 ls0 ws0">using<span class="_ _10"> </span><span class="ffa fc0">B<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>DerivedWrapper<span class="fc6"><</span>BImpl<span class="fc6">></span>;</span></div><div class="t m0 x1b hc y19c ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">(</span></span>int<span class="_ _8"> </span><span class="ffa fc0">argc,<span class="_ _10"> </span></span>char<span class="ffa fc6">*<span class="_ _10"> </span><span class="fc0">argv[])<span class="_ _8"> </span>{</span></span></div><div class="t m0 x1c hc y19d ffa fs7 fc0 sc0 ls0 ws0">A<span class="_ _10"> </span>a;</div><div class="t m0 x1c hc y19e ffa fs7 fc0 sc0 ls0 ws0">B<span class="_ _10"> </span>b;</div><div class="t m0 x1c hc y19f ffa fs7 fc0 sc0 ls0 ws0">Base<span class="fc6">*<span class="_ _10"> </span></span>base<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span><span class="ff5 fc4">nullptr</span></span>;</div><div class="t m0 x1c hc y1a0 ffa fs7 fc0 sc0 ls0 ws0">base<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>&</span>a;</div><div class="t m0 x1c hc y1a1 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-></span>method(<span class="fc6">1</span>);<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>"A<span class="_ _8"> </span>1"</span></div><div class="t m0 x1c hc y1a2 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-></span>method(<span class="fc6">2.0</span>);<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _10"> </span>"A<span class="_ _10"> </span>2.0"</span></div><div class="t m0 x1c hc y1a3 ffa fs7 fc0 sc0 ls0 ws0">base<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span>&</span>b;</div><div class="t m0 x1c hc y1a4 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-></span>method(<span class="fc6">1</span>);<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>"B<span class="_ _8"> </span>1"</span></div><div class="t m0 x1c hc y1a5 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-></span>method(<span class="fc6">2.0</span>);<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _10"> </span>"B<span class="_ _10"> </span>2.0"</span></div><div class="t m0 x1b hc y1a6 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 ha y1a7 ff5 fs6 fc0 sc0 ls0 ws0">method()<span class="_ _18"> </span><span class="ff4">calls<span class="_ _18"> </span></span>v<span class="_ _6"> </span>method()<span class="_ _18"> </span><span class="ff4">(pure<span class="_ _e"> </span>virtual<span class="_ _e"> </span>method<span class="_ _e"> </span>of<span class="_ _18"> </span><span class="ffe">Base<span class="_ _11"> </span></span>)</span></div><div class="t m0 x5 ha y1a8 ff5 fs6 fc0 sc0 ls0 ws0">v<span class="_ _6"> </span>method()<span class="_ _18"> </span><span class="ff4">calls<span class="_ _18"> </span></span>t<span class="_ _6"> </span>method()<span class="_ _18"> </span><span class="ff4">(actual<span class="_ _e"> </span>implementation)</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">41/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2e" class="pf w0 h0" data-page-no="2e"><div class="pc pc2e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Sma<span class="_ _d"></span>rt<span class="_ _1"> </span>p<span class="_ _0"></span>ointers</div><a class="l" href="#pf2e" data-dest-detail='[46,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:158.662500px;bottom:198.648000px;width:170.118000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2f" class="pf w0 h0" data-page-no="2f"><div class="pc pc2f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _6"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span><span class="ff4">is<span class="_ _b"> </span>a<span class="_ _e"> </span>p<span class="_ _c"></span>ointer-lik<span class="_ _3"></span>e<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _b"> </span>with<span class="_ _e"> </span>some<span class="_ _e"> </span>additional<span class="_ _b"> </span>functionality<span class="_ _7"></span>,<span class="_ _e"> </span>e.g.<span class="_ _10"> </span><span class="ff8">automatic</span></span></div><div class="t m0 x1 ha y79 ff8 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _e"> </span>deallo<span class="_ _c"></span>cation<span class="_ _e"> </span><span class="ff4">(when<span class="_ _b"> </span>the<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>is<span class="_ _b"> </span>no<span class="_ _e"> </span>longer<span class="_ _e"> </span>in<span class="_ _b"> </span>use,<span class="_ _e"> </span>the<span class="_ _e"> </span>memo<span class="_ _3"></span>ry<span class="_ _e"> </span>it<span class="_ _e"> </span>points<span class="_ _e"> </span>to<span class="_ _e"> </span>is</span></div><div class="t m0 x1 ha ya6 ff4 fs6 fc0 sc0 ls0 ws0">deallo<span class="_ _c"></span>cated),<span class="_ _b"> </span>reference<span class="_ _e"> </span>counting,<span class="_ _e"> </span>etc.</div><div class="t m0 x1 ha y1a9 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">p<span class="_ _3"></span>rovides<span class="_ _e"> </span>three<span class="_ _b"> </span>smart<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>es:</span></div><div class="t m0 x9 ha y1aa ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff5">std::unique<span class="_ _8"> </span>ptr</span></div><div class="t m0 x9 ha y1ab ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff5">std::shared<span class="_ _8"> </span>ptr</span></div><div class="t m0 x9 ha y1ac ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff5">std::weak<span class="_ _8"> </span>ptr</span></div><div class="t m0 x1 ha y1ad ff4 fs6 fc0 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _e"> </span>p<span class="_ _c"></span>ointers<span class="_ _b"> </span>prevent<span class="_ _b"> </span>most<span class="_ _e"> </span>situations<span class="_ _e"> </span>of<span class="_ _e"> </span>memo<span class="_ _3"></span>ry<span class="_ _e"> </span>leaks<span class="_ _b"> </span>by<span class="_ _b"> </span>making<span class="_ _e"> </span>the<span class="_ _e"> </span>memo<span class="_ _3"></span>ry</div><div class="t m0 x1 ha y1ae ff4 fs6 fc0 sc0 ls0 ws0">deallo<span class="_ _c"></span>cation<span class="_ _b"> </span>automatic</div><div class="t m0 x9 hc y1af ffa fs7 fc3 sc0 ls0 ws0">C++<span class="_ _10"> </span>Smart<span class="_ _8"> </span>Pointers</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">42/64</div><a class="l" href="http://embeddedartistry.com/blog/2016/9/19/rfr0r76r0ovd0gk574kfsldxfbklgs"><div class="d m1" style="border-style:none;position:absolute;left:52.083000px;bottom:4.350000px;width:86.725000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIy0lEQVR42u3dIU4DURSG0T4yL6gX1kBQrIAQBIoEjWBLbIJVIFgBgrAGdoBqnqBcMzhEm4aGDPSWniPHzV/z5VZMOTm7mAEAQBqvz08HVgAAIBuRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgDAlxIRVgAAII9aq0sqAADpiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAAPCNwQQA/0nv3QhLWmtGgJ3jkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAABMqkSEFQAAyKPW6pIKAEA6IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAC/ZTDB5nrvRmCd1poRAGAqLqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAACQzGACdtT7YnF5c7v6/OXxwTgAsOtKRFhhQ713I7BOa80IADCJWqu/+wEASEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMASn0UFACAXn0UFACAjkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA7JXBBPyN3vu+vXJrze8OAD/jkgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAtqtEhBUAAMij1uqSCgBAOiIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAYALD/O7YCgCw6u3q3giwFafn16UcHY7zj9lsHEeDAACQwick0DH8l26PUAAAAABJRU5ErkJggg=="/><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 x9 ha y1b0 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">If<span class="_ _e"> </span>a<span class="_ _e"> </span>sma<span class="_ _3"></span>rt<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>go<span class="_ _c"></span>es<span class="_ _e"> </span><span class="ff8">out-of-scope</span>,<span class="_ _e"> </span>the<span class="_ _e"> </span>app<span class="_ _3"></span>rop<span class="_ _3"></span>riate<span class="_ _e"> </span>metho<span class="_ _c"></span>d<span class="_ _b"> </span>to<span class="_ _e"> </span>release<span class="_ _e"> </span>resources</span></div><div class="t m0 x6 ha y1b1 ff4 fs6 fc0 sc0 ls0 ws0">is<span class="_ _e"> </span>called<span class="_ _b"> </span>automatically<span class="_ _d"></span>.<span class="_ _10"> </span>The<span class="_ _e"> </span>memo<span class="_ _3"></span>ry<span class="_ _e"> </span>is<span class="_ _e"> </span>not<span class="_ _b"> </span>left<span class="_ _e"> </span>dangling</div><div class="t m0 x9 ha y1b2 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">Smart<span class="_ _b"> </span>p<span class="_ _c"></span>ointers<span class="_ _e"> </span>will<span class="_ _b"> </span>automatically<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>set<span class="_ _b"> </span>to<span class="_ _18"> </span><span class="ffe">nullptr<span class="_ _18"> </span></span>if<span class="_ _e"> </span>not<span class="_ _e"> </span>initialized<span class="_ _b"> </span>or<span class="_ _b"> </span>when</span></div><div class="t m0 x6 ha y1b3 ff4 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _e"> </span>has<span class="_ _e"> </span>been<span class="_ _e"> </span>released</div><div class="t m0 x9 ha y1b4 ff7 fs6 fc0 sc0 ls0 ws0">•</div><div class="t m0 xb ha y1b5 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="_ _e"> </span>reference<span class="_ _e"> </span>count</span></div><div class="t m0 x9 ha y1b6 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _a"> </span><span class="ff4">If<span class="_ _e"> </span>a<span class="_ _e"> </span>special<span class="_ _18"> </span><span class="ffe">delete<span class="_ _18"> </span></span>function<span class="_ _e"> </span>needs<span class="_ _e"> </span>to<span class="_ _e"> </span>be<span class="_ _e"> </span>called,<span class="_ _e"> </span>it<span class="_ _b"> </span>will<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>sp<span class="_ _c"></span>ecified<span class="_ _e"> </span>in<span class="_ _e"> </span>the<span class="_ _b"> </span>p<span class="_ _c"></span>ointer</span></div><div class="t m0 x6 ha y1b7 ff4 fs6 fc0 sc0 ls0 ws0">t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>and<span class="_ _b"> </span>declaration,<span class="_ _b"> </span>and<span class="_ _e"> </span>will<span class="_ _e"> </span>automatically<span class="_ _e"> </span>be<span class="_ _e"> </span>called<span class="_ _e"> </span>on<span class="_ _b"> </span>delete</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">43/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJP0lEQVR42u3bMUpcQQDH4R19Q6rBA6RMtYVtggSLBQOSIniXPUEOsDfwEJLCThRMEVILNt7ASqbK4Lq2QUXh7S7OvP2+cgsZ/s/ix3tM+PTl6wgAAKpx8+f3lhUAAKiNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAACa0plg2La3t64uzp7/Pt6fGAcAEKm8j/n8QY8CAM3xuR8AAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAAsJ5RSrAAAQD1ijN6kAgBQHZEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAE90DZ015+yB8aKUkhEAYEi8SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAr+tMQD+fv/94/uPf01+WAQCWF0oprZw15+yB8aKUkhEAYDBijD73AwBQHZEKAIBIBQAAkQoAQHPc7gcAeNv9/Xx3crC+v399eW7k/7ndzxC43Q8AQ+J2PwAANRKpAACIVAAAEKkAADSnpYtTAABsAhenAACokUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAO+ra+Wg4/1JW8teX5779wIA6CeUUqwAAEA9Yow+9wMAUB2RCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAABPdA2dNefsgQEA9JNSaui03qQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAgelMAGyOo9nMCCtxMp0aAVirUEpp5aw5Zw8MAKCflFIrR40x+twPAEB1RCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAADSmMwGwOY5mMyOsxMl0agRgrUIppZWz5pw9MACAflJKrRw1xuhzPwAA1RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAFQj3P78aAUAWNLtt2MjwKqM9w5D2PmwuPs3Gi0WC4MAAFCFR70cUIiQNc6zAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff5 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="_ _30"> </span>1/4</span></div><div class="t m0 x5 ha y1b8 ff5 fs6 fc0 sc0 ls0 ws0">std::unique<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _e"> </span>used<span class="_ _e"> </span>to<span class="_ _b"> </span>manage<span class="_ _e"> </span>any<span class="_ _e"> </span>dynamically<span class="_ _b"> </span>allo<span class="_ _c"></span>cated<span class="_ _e"> </span>object<span class="_ _b"> </span>that<span class="_ _e"> </span>is<span class="_ _e"> </span>not</span></div><div class="t m0 x1 ha y1b9 ff4 fs6 fc0 sc0 ls0 ws0">sha<span class="_ _3"></span>red<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _e"> </span>multiple<span class="_ _e"> </span>objects</div><div class="t m0 x5 hd y1ba ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y1bb ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hd y1bc ff5 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x15 hd y1bd ff12 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="fcb">"Constructor<span class="ff5 fcc">\n</span>"</span></span>;<span class="_ _6"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>called<span class="_ _8"> </span>when<span class="_ _6"> </span>A()</span></div><div class="t m0 x15 hd y1be ff16 fs5 fc0 sc0 ls0 ws0">∼<span class="ff12">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="fcb">"Destructor<span class="ff5 fcc">\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 x5 hd y1bf ff12 fs5 fc0 sc0 ls0 ws0">};<span class="_ _31"> </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 x5 hd y1c0 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1c1 ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _32"> </span><span class="ff12 fc0">raw_ptr<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span></span>new<span class="_ _8"> </span><span class="ff12 fc0">A();</span></div><div class="t m0 x15 hd y1c2 ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1c3 ff12 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 x5 hd y1c4 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 x5 hd y1c5 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>u_ptr1<span class="_ _6"> </span>=<span class="_ _6"> </span>raw_ptr;<span class="_ _22"> </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 x5 hd y1c6 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>u_ptr1<span class="_ _6"> </span>=<span class="_ _6"> </span>u_ptr2;<span class="_ _33"> </span>//<span class="_ _6"> </span>compile<span class="_ _8"> </span>error<span class="_ _6"> </span>(not<span class="_ _8"> </span>unique)</div><div class="t m0 x15 hd y1c7 ff12 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 x5 hd y1c8 ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _34"> </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 x1d hd y1c9 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 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">44/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 x4 h6 y6 ff5 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="_ _30"> </span>2/4</span></div><div class="t m0 x5 ha y21 ff5 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 x9 ha y1ca ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">get<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _b"> </span>underlying<span class="_ _e"> </span>p<span class="_ _c"></span>ointer</span></span></span></div><div class="t m0 x9 ha y1cb ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">operator*<span class="_ _16"> </span>operator-><span class="_ _18"> </span></span><span class="ff4">dereferences<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object</span></div><div class="t m0 x9 ha y1cc ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">operator[]<span class="_ _18"> </span></span><span class="ff4">p<span class="_ _3"></span>rovides<span class="_ _e"> </span>indexed<span class="_ _e"> </span>access<span class="_ _b"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>sto<span class="_ _3"></span>red<span class="_ _e"> </span>a<span class="_ _3"></span>rray<span class="_ _b"> </span>(if<span class="_ _e"> </span>it<span class="_ _e"> </span>supports<span class="_ _b"> </span>random</span></div><div class="t m0 x6 ha y1cd ff4 fs6 fc0 sc0 ls0 ws0">access<span class="_ _e"> </span>iterato<span class="_ _3"></span>r)</div><div class="t m0 x9 ha y1ce ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">release<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>a<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>to<span class="_ _b"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object<span class="_ _e"> </span>and<span class="_ _b"> </span>releases<span class="_ _e"> </span>the<span class="_ _e"> </span>o<span class="_ _3"></span>wnership</span></span></span></div><div class="t m0 x9 ha y1cf ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _b"> </span>managed<span class="_ _e"> </span>object<span class="_ _e"> </span>with<span class="_ _b"> </span></span>ptr</span></span></div><div class="t m0 x1 ha y1d0 ff4 fs6 fc0 sc0 ls0 ws0">Utilit<span class="_ _3"></span>y<span class="_ _e"> </span>metho<span class="_ _c"></span>d:<span class="_ _5"> </span><span class="ffe fc8">std::make<span class="_ _6"> </span>unique<span class="ff11"><</span>T<span class="ff11">></span><span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _e"> </span>a<span class="_ _b"> </span>unique<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>to<span class="_ _e"> </span>a<span class="_ _e"> </span>class<span class="_ _18"> </span><span class="ffe">T</span></div><div class="t m0 x1 ha y1d1 ff4 fs6 fc0 sc0 ls0 ws0">that<span class="_ _e"> </span>manages<span class="_ _b"> </span>a<span class="_ _e"> </span>new<span class="_ _e"> </span>object</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">45/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIlUlEQVR42u3ZMc4BQQCG4R12oto4g6icQEQUCombuYSrSBSK/wB/6QYq2cokrAOoUJjhecqtJt82b2bCeDqvAAAgG8e/Q88KAADkRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAARalN8N36/d7/fvf4fbJYGgcAEKl8xvV606MAQHE89wMAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAID3hJSSFQAAyEeM0U0qAADZEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAADwpLqgs7Zt64cBALymaZqCTusmFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCAFCWkFKyAgAA+YgxukkFACA7IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAAC8pz5vRlYAgAydVlsj8Jsms3UIw0F3vlRV13UGAQAgC3eNaCClWZFlbgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff5 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="_ _30"> </span>3/4</span></div><div class="t m0 x5 hd y1d2 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y1d3 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hd y1d4 ff5 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x15 hd y1d5 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">value;</span></div><div class="t m0 x5 hd y1d6 ff12 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hd y1d7 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1d8 ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1d9 ff12 fs5 fc0 sc0 ls0 ws0">u_ptr1<span class="fc6">-></span>value;<span class="_ _2d"> </span><span class="ffd fc7">//<span class="_ _e"> </span>dereferencing</span></div><div class="t m0 x15 hd y1da ff12 fs5 fc0 sc0 ls0 ws0">(<span class="fc6">*</span>u_ptr1).value;<span class="_ _35"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 hd y1db ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff12 fc0">u_ptr2<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>std<span class="fc6">::</span>make_unique<span class="fc6"><</span>A<span class="fc6">></span>();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>create<span class="_ _6"> </span>a<span class="_ _8"> </span>new<span class="_ _6"> </span>unique<span class="_ _8"> </span>pointer</span></span></div><div class="t m0 x15 hd y1dc ff12 fs5 fc0 sc0 ls0 ws0">u_ptr1.reset(<span class="ff5 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _36"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 hd y1dd ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff12 fc0">raw_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>u_ptr1.release();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>release</span></span></div><div class="t m0 x15 hd y1de ff5 fs5 fc4 sc0 ls0 ws0">delete<span class="ff12 fc0">[]<span class="_ _6"> </span>raw_ptr;</span></div><div class="t m0 x15 hd y1df ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A[<span class="fc6">10</span>]);</div><div class="t m0 x15 hd y1e0 ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="ff12 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="_ _37"> </span><span class="ffd fc7">//<span class="_ _6"> </span>access</span></span></span></div><div class="t m0 x5 hd y1e1 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">46/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkklEQVR42u3ZMQ4BQQCG0R12oto4g6icQEQUCombuYSrSBQKB1C6gUq2MgnrADoKM7xXbjX5t/kyE8bTeQUAANk4Hw89KwAAkBuRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAABSlNsFv6/d7p/3u9ftksTQOACBS+Y77/aFHAYDieO4HAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAnwkpJSsAAJCPGKObVAAAsiNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAHxPXdBZ27b1wwAA3tM0TUGndZMKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPynkFKyAgAA+YgxukkFACA7IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAoSn3djKwAAEW7rLZG4JdMZusQhoPuequqrusMAgBAFp7KtyClnQswCgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff5 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="_ _30"> </span>4/4</span></div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Implement<span class="_ _e"> </span>a<span class="_ _6"> </span>custom<span class="_ _6"> </span>deleter</div><div class="t m0 x5 hc y1e2 ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hc y1e3 ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hc y1e4 ff5 fs7 fc4 sc0 ls0 ws0">struct<span class="_ _10"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ffa fc0">{</span></span></div><div class="t m0 x6 hc y1e5 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">value;</span></div><div class="t m0 x5 hc y1e6 ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hc y1e7 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x6 hc y1e8 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">DeleteLambda<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>[](A<span class="fc6">*<span class="_ _10"> </span></span>x)<span class="_ _8"> </span>{</span></div><div class="t m0 x14 hc y1e9 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"delete"<span class="_ _10"> </span></span><<<span class="_ _10"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 x14 hc y1ea ff5 fs7 fc4 sc0 ls0 ws0">delete<span class="_ _10"> </span><span class="ffa fc0">x;</span></div><div class="t m0 x6 hc y1eb ffa fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x6 hc y1ec ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>unique_ptr<span class="fc6"><</span>A,<span class="_ _10"> </span><span class="ff5 fc4">decltype</span>(DeleteLambda)<span class="fc6">></span></div><div class="t m0 x14 hc y1ed ffa fs7 fc0 sc0 ls0 ws0">x(<span class="ff5 fc4">new<span class="_ _10"> </span></span>A(),<span class="_ _8"> </span>DeleteLambda);</div><div class="t m0 x5 hc y1ee ffa fs7 fc0 sc0 ls0 ws0">}<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _10"> </span>"delete"</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">47/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf35" class="pf w0 h0" data-page-no="35"><div class="pc pc35 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h6 y6 ff5 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="_ _38"> </span>1/3</span></div><div class="t m0 x5 ha y1ef ff5 fs6 fc0 sc0 ls0 ws0">std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span><span class="ff4">is<span class="_ _e"> </span>the<span class="_ _e"> </span>pointer<span class="_ _e"> </span>t<span class="_ _3"></span>yp<span class="_ _c"></span>e<span class="_ _e"> </span>to<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>used<span class="_ _b"> </span>for<span class="_ _b"> </span>memory<span class="_ _e"> </span>that<span class="_ _b"> </span>can<span class="_ _e"> </span>b<span class="_ _c"></span>e<span class="_ _b"> </span>owned<span class="_ _b"> </span>by</span></div><div class="t m0 x1 ha y1f0 ff4 fs6 fc0 sc0 ls0 ws0">multiple<span class="_ _e"> </span>resources<span class="_ _b"> </span>at<span class="_ _e"> </span>one<span class="_ _e"> </span>time</div><div class="t m0 x5 h5 y1f1 ffe fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _e"> </span>ptr<span class="_ _1b"> </span><span class="ff4">maintains<span class="_ _b"> </span>a<span class="_ _b"> </span>reference<span class="_ _b"> </span>count<span class="_ _e"> </span>of<span class="_ _b"> </span>pointer<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 x5 h5 y1f2 ffe fs3 fc0 sc0 ls0 ws0">std::shared<span class="_ _e"> </span>ptr<span class="_ _1b"> </span><span class="ff4">is<span class="_ _b"> </span>only<span class="_ _e"> </span>freed<span class="_ _b"> </span>when<span class="_ _b"> </span>there<span class="_ _b"> </span>a<span class="_ _3"></span>re<span class="_ _b"> </span>no<span class="_ _b"> </span>remaining<span class="_ _b"> </span>objects<span class="_ _b"> </span>p<span class="_ _c"></span>ointing<span class="_ _b"> </span>to<span class="_ _b"> </span>the<span class="_ _b"> </span>data</span></div><div class="t m0 x5 hd y1f3 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y1f4 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hd y1f5 ff5 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x15 hd y1f6 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">value;</span></div><div class="t m0 x5 hd y1f7 ff12 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hd y1f8 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1f9 ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1fa ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6"><</span>A<span class="fc6">><span class="_ _6"> </span></span>sh_ptr2(sh_ptr1);</div><div class="t m0 x15 hd y1fb ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y1fc ff12 fs5 fc0 sc0 ls0 ws0">sh_ptr3<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 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 x1e hd y1fd ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _20"> </span>sh_ptr3<span class="_ _e"> </span>:<span class="_ _8"> </span>zero<span class="_ _6"> </span>references</div><div class="t m0 x15 hd y1fe ff12 fs5 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr1;<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>allowed.<span class="_ _6"> </span>sh_ptr1,<span class="_ _8"> </span>sh_ptr2:<span class="_ _6"> </span>two<span class="_ _8"> </span>references</span></div><div class="t m0 x15 hd y1ff ff12 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 x5 hd y200 ff12 fs5 fc0 sc0 ls0 ws0">}<span class="_ _39"> </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 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">48/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,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"/><div class="t m0 x4 h6 y6 ff5 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="_ _38"> </span>2/3</span></div><div class="t m0 x5 ha y201 ff5 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 x9 ha y202 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">get<span class="fc0">()<span class="_ _18"> </span><span class="ff4">returns<span class="_ _e"> </span>the<span class="_ _b"> </span>underlying<span class="_ _e"> </span>p<span class="_ _c"></span>ointer</span></span></span></div><div class="t m0 x9 ha y203 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">operator*<span class="_ _16"> </span>operator-><span class="_ _18"> </span></span><span class="ff4">dereferences<span class="_ _e"> </span>p<span class="_ _c"></span>ointer<span class="_ _b"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>managed<span class="_ _e"> </span>object</span></div><div class="t m0 x9 ha y204 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="_ _e"> </span>the<span class="_ _e"> </span>number<span class="_ _e"> </span>of<span class="_ _e"> </span>objects<span class="_ _b"> </span>referring<span class="_ _e"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>same<span class="_ _b"> </span>managed</span></span></span></div><div class="t m0 x6 ha y205 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 x9 ha y206 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _b"> </span>managed<span class="_ _e"> </span>object<span class="_ _e"> </span>with<span class="_ _b"> </span></span>ptr</span></span></div><div class="t m0 x1 ha y207 ff4 fs6 fc0 sc0 ls0 ws0">Utilit<span class="_ _3"></span>y<span class="_ _e"> </span>metho<span class="_ _c"></span>d:<span class="_ _5"> </span><span class="ffe fc8">std::make<span class="_ _6"> </span>shared<span class="fc0">()<span class="_ _18"> </span></span></span>creates<span class="_ _e"> </span>a<span class="_ _b"> </span>shared<span class="_ _b"> </span>p<span class="_ _c"></span>ointer<span class="_ _e"> </span>that<span class="_ _b"> </span>manages<span class="_ _e"> </span>a<span class="_ _e"> </span>new</div><div class="t m0 x1 ha y208 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">49/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIlElEQVR42u3ZsQnCQACG0ZzmsArOIFZOICIWFoKbuYSrCBYWDmDpBlaSyoMYe+1U8CLvlamOP83HXRhP5wUAAGTjfDz0rAAAQG5EKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCANAppQn+W7/fO+13r98ni6VxAACRym80zV2PAgCd47kfAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAfCaklKwAAEA+YoxuUgEAyI5IBQAgO2WHzlrXtR8GAPCeqqo6dFo3qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQTAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqSYAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAAD8UEgpWQEAgHzEGN2kAgCQHZEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAE/K62ZkBQDgE5fV1gh80WS2DmE4aK+3omjb1iAAAGThARKiIKXLoDG7AAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff5 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="_ _38"> </span>3/3</span></div><div class="t m0 x5 hd y209 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y20a ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hd y20b ff5 fs5 fc4 sc0 ls0 ws0">struct<span class="_ _6"> </span><span class="fc8">A<span class="_ _8"> </span><span class="ff12 fc0">{</span></span></div><div class="t m0 x15 hd y20c ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">value;</span></div><div class="t m0 x5 hd y20d ff12 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x5 hd y20e ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y20f ff12 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="ff5 fc4">new<span class="_ _8"> </span></span>A());</div><div class="t m0 x15 hd y210 ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff12 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="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>std::make_shared</span></span></div><div class="t m0 x15 hd y211 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1</span></div><div class="t m0 x15 hd y212 ff12 fs5 fc0 sc0 ls0 ws0">sh_ptr1<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr2;<span class="_ _3a"> </span><span class="ffd fc7">//<span class="_ _6"> </span>copy</span></div><div class="t m0 x5 hd y213 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _13"> </span>std::shared_ptr<A><span class="_ _6"> </span>sh_ptr2(sh_ptr1);<span class="_ _6"> </span>//<span class="_ _8"> </span>copy<span class="_ _6"> </span>(constructor)</div><div class="t m0 x15 hd y214 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd y215 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>sh_ptr2.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd y216 ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff12 fc0">raw_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>sh_ptr1.get();<span class="_ _3b"> </span><span class="ffd fc7">//<span class="_ _6"> </span>get</span></span></div><div class="t m0 x15 hd y217 ff12 fs5 fc0 sc0 ls0 ws0">sh_ptr1.reset(<span class="ff5 fc4">new<span class="_ _6"> </span></span>A());<span class="_ _36"> </span><span class="ffd fc7">//<span class="_ _6"> </span>reset</span></div><div class="t m0 x15 hd y218 ff12 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="_ _3c"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x15 hd y219 ff12 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="_ _3d"> </span><span class="ffd fc7">//<span class="_ _6"> </span>dereferencing</span></div><div class="t m0 x5 hd y21a ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">50/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI4klEQVR42u3dPUrEQBiA4WQ3g9XgGcRqL6CoWFgIIih4Ki/hKSzsBIstxNrSG1gtUzkY4wEWFH/YTJLnKVNlvmHgZVKk3t0/qgAAoBgvj8uZKQAAUBqRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAAxKYwQFms9nzw/3688XxyeGAwCIVPrRth96FACYMp/7AQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAwN/UOWdTAACgHCEEN6kAABRHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsDHNpFabUrLl4xNjNARnBAcNGBk3qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDga40R8FPvbXt4cbX+/Onu1nDgH+2dXzpowGTVOefprDalZMvHJ8ZoCM4IDhowJiEEn/sBACiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAEDfpvXHKQAAyuePUwAAlEikAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAIasGdC7ppRsGADA78QYB/S2blIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpRgAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAOhRnXM2BQAAyhFCcJMKAEBxRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAC9a1bXO6YAAGzG6+mNIfCtxcFZXW9vdau3quq6zkAAACjCJ2/mO6E8fEc9AAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff5 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="_ _3e"> </span>1/3</span></div><div class="t m0 x1 ha y21b ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _18"> </span><span class="ff5">std::weak<span class="_ _6"> </span>ptr<span class="_ _18"> </span></span>is<span class="_ _e"> </span>simply<span class="_ _e"> </span>a<span class="_ _24"> </span><span class="ffe">std::shared<span class="_ _6"> </span>ptr<span class="_ _18"> </span></span>that<span class="_ _e"> </span>is<span class="_ _e"> </span>allo<span class="_ _3"></span>wed<span class="_ _b"> </span>to<span class="_ _e"> </span>dangle<span class="_ _e"> </span>(pointer</div><div class="t m0 x1 ha y21c ff4 fs6 fc0 sc0 ls0 ws0">not<span class="_ _e"> </span>deallocated)</div><div class="t m0 x5 hc y21d ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hc y21e ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>shared_ptr<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _10"> </span></span>sh_ptr(<span class="ff5 fc4">new<span class="_ _8"> </span><span class="fc5">int</span></span>);</div><div class="t m0 x5 hc y21f ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>weak_ptr<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _1c"> </span></span>w_ptr<span class="_ _10"> </span><span class="fc6">=<span class="_ _10"> </span></span>sh_ptr;</div><div class="t m0 x5 hc y220 ffa fs7 fc0 sc0 ls0 ws0">sh_ptr<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">nullptr</span></span>;</div><div class="t m0 x5 hc y221 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span><span class="ff10">'</span>true<span class="ff10">'</span></span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">51/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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 ff5 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="_ _3e"> </span>2/3</span></div><div class="t m0 x1 ha y222 ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _e"> </span>must<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>converted<span class="_ _b"> </span>to<span class="_ _18"> </span><span class="ffe">std::shared<span class="_ _8"> </span>ptr<span class="_ _18"> </span></span>in<span class="_ _e"> </span>o<span class="_ _3"></span>rder<span class="_ _e"> </span>to<span class="_ _b"> </span>access<span class="_ _e"> </span>the<span class="_ _e"> </span>referenced<span class="_ _b"> </span>object</div><div class="t m0 x5 ha y223 ff5 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 x9 ha y224 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="_ _e"> </span>the<span class="_ _e"> </span>number<span class="_ _e"> </span>of<span class="_ _e"> </span>objects<span class="_ _b"> </span>referring<span class="_ _e"> </span>to<span class="_ _e"> </span>the<span class="_ _e"> </span>same<span class="_ _b"> </span>managed</span></span></span></div><div class="t m0 x6 ha y225 ff4 fs6 fc0 sc0 ls0 ws0">object</div><div class="t m0 x9 ha y226 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">reset<span class="fc0">(ptr)<span class="_ _18"> </span><span class="ff4">replaces<span class="_ _e"> </span>the<span class="_ _b"> </span>managed<span class="_ _e"> </span>object<span class="_ _e"> </span>with<span class="_ _24"> </span></span>ptr</span></span></div><div class="t m0 x9 ha y227 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">expired<span class="fc0">()<span class="_ _18"> </span><span class="ff4">checks<span class="_ _e"> </span>whether<span class="_ _b"> </span>the<span class="_ _e"> </span>referenced<span class="_ _e"> </span>object<span class="_ _b"> </span>was<span class="_ _e"> </span>already<span class="_ _b"> </span>deleted<span class="_ _e"> </span>(</span>true<span class="ff4">,</span></span></span></div><div class="t m0 x6 ha y228 ffe fs6 fc0 sc0 ls0 ws0">false<span class="ff4">)</span></div><div class="t m0 x9 ha y229 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe fc8">lock<span class="fc0">()<span class="_ _18"> </span><span class="ff4">creates<span class="_ _e"> </span>a<span class="_ _24"> </span></span>std::shared<span class="_ _8"> </span>ptr<span class="_ _24"> </span><span class="ff4">that<span class="_ _e"> </span>manages<span class="_ _e"> </span>the<span class="_ _e"> </span>referenced<span class="_ _b"> </span>object</span></span></span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">52/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIk0lEQVR42u3ZsQnCQACG0ZzmsArOIFZOICIWFoKbuYSrCBYWDmDpBlaSyoMYB7BTwYu+V6Y6/jQfd2E8nRcAAJCN8/HQswIAALkRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAECnlCbIUL/fO+13z98ni6VxAACRync0zV2PAgD/zHM/AAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAeE9IKVkBAIB8xBjdpAIAkB2RCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgF9XduisdV37YQAAr6mqqkOndZMKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPynkFKyAgAA+YgxukkFACA7IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAAPqS8bkZWAAC667LaGuHHTGbrEIaD9norirZtDQIAQBYee/wgpcGfKpcAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff5 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="_ _3e"> </span>3/3</span></div><div class="t m0 x5 hc y22a ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><memory></span></div><div class="t m0 x5 hc y22b ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">sh_ptr1<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </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 x5 hc y22c ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _16"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>1</span></div><div class="t m0 x5 hc y22d ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>weak_ptr<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _10"> </span></span>w_ptr<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>sh_ptr1;</div><div class="t m0 x5 hc y22e ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>w_ptr.use_count();<span class="_ _26"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>1</span></div><div class="t m0 x5 hc y22f ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">sh_ptr2<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>w_ptr.lock();</span></div><div class="t m0 x5 hc y230 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>w_ptr.use_count();<span class="_ _26"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>2<span class="_ _8"> </span>(sh_ptr1<span class="_ _10"> </span>+<span class="_ _10"> </span>sh_ptr2)</span></div><div class="t m0 x5 hc y231 ffa fs7 fc0 sc0 ls0 ws0">sh_ptr1<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">nullptr</span></span>;</div><div class="t m0 x5 hc y232 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _3f"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>false</span></div><div class="t m0 x5 hc y233 ffa fs7 fc0 sc0 ls0 ws0">sh_ptr2<span class="_ _10"> </span><span class="fc6">=<span class="_ _8"> </span><span class="ff5 fc4">nullptr</span></span>;</div><div class="t m0 x5 hc y234 ffa fs7 fc0 sc0 ls0 ws0">cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span></span>w_ptr.expired();<span class="_ _3f"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>true</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">53/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Concurrency</div><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:158.662500px;bottom:198.648000px;width:142.522000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI0ElEQVR42u3cMU6EQBSAYRAmVsQzGCtrCmO2NvFmXsLjWNiQcABvYLWhcgjBzkI7Npudh993gpc3FH+GQH33cKgAAKAYH+9vV7YAAEBpRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAD/qnLMtAABQjpSSm1QAAIojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAAB2pA006zRNDgwAYJuu6wJN6yYVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagUAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIAzqHPOtgAAQDlSSm5SAQAojkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAsF9toFlTSg4MAGCbeZ4DTesmFQAAkQoAACIVAACRCgAAIhUAgN1p446+LMs4jo4QAOCvvu9F6mU0TbODAwAAOIdhGEJnktf9AACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAS2rjjr4sS1VVwzA4RQCAX/q+Dz1/nXOOMmtKyQMHALDNPM+Bqs/rfgAAiiNSAQAQqQAAIFIBABCpAABwqki/oAr0SRoAAKdwkwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACE0h5fbm0BAPgPPp9eLSGE+8fnur65Xo9fVbWuq4UAAFCEb6siNZK4nS7TAAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Overview</div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">introduces<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff5">Concurrency<span class="_ _b"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _e"> </span>to<span class="_ _e"> </span>simplify<span class="_ _b"> </span>managing<span class="_ _e"> </span>OS<span class="_ _e"> </span>threads</span></div><div class="t m0 x5 hd y235 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y236 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread></span></div><div class="t m0 x5 hd y237 ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y238 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"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 x5 hd y239 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y23a ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">(){</span></span></div><div class="t m0 x15 hd y23b ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff5 fc4">thread<span class="_ _6"> </span></span></span>th(f);</div><div class="t m0 x15 hd y23c ff12 fs5 fc0 sc0 ls0 ws0">th.join();<span class="_ _40"> </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 x5 hd y23d ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y23e ff4 fs6 fc0 sc0 ls0 ws0">Ho<span class="_ _3"></span>w<span class="_ _e"> </span>to<span class="_ _e"> </span>compile:</div><div class="t m0 x9 hc y23f ff17 fs7 fcd sc0 ls0 ws0">$<span class="ffa fc0">g++<span class="_ _10"> </span>-std=c++<span class="fce">11<span class="_ _8"> </span></span>main.cpp<span class="_ _10"> </span>-pthread</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">54/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdUlEQVR42u3YsQkCMRiG4UQuWAVnECsnELEWbjOXcBwLh3ADqyOVaWJnYafN5eB5Jvj50rwk7g6nAAAA3XjcbysrAADQG5EKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMBHrLVaAQCAfqSU/KQCANAdkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAA/GhZ0aynFgwEA/CfnvKBr/aQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAMKNYa7UCAAD9SCkN02VrCACAL8/z1Qhz2R/HGDfrNr1CaK0ZBACALrwBgtIaApJhHrcAAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Example</div><div class="t m0 x5 hd y1d2 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y1d3 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread></span></div><div class="t m0 x5 hd y1d4 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><vector></span></div><div class="t m0 x5 hd y1d5 ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(</span></span>int<span class="_ _8"> </span><span class="ff12 fc0">id)<span class="_ _8"> </span>{</span></div><div class="t m0 x15 hd y1d6 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"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 x5 hd y1d7 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y1d8 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y1d9 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>><span class="_ _6"> </span></span>thread_vect;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>vector</span></div><div class="t m0 x15 hd y1da ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y240 ff12 fs5 fc0 sc0 ls0 ws0">thread_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff5 fc4">thread</span></span>(<span class="fc6">&</span>f,<span class="_ _8"> </span>i)<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y241 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span>auto<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">th<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">thread_vect)</span></span></div><div class="t m0 x16 hd y1dc ff12 fs5 fc0 sc0 ls0 ws0">th.join();</div><div class="t m0 x15 hd y1de ff12 fs5 fc0 sc0 ls0 ws0">thread_vect.clear();</div><div class="t m0 x15 hd y242 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>+<span class="_ _6"> </span>lambda<span class="_ _8"> </span>expression</span></span></span></div><div class="t m0 x16 hd y1df ff12 fs5 fc0 sc0 ls0 ws0">thread_vect.push_back(</div><div class="t m0 x1a hd y1e0 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff5 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="fcb">"thread<span class="ff5 fcc">\n</span>"</span></span>;<span class="_ _8"> </span>}<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y1e1 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y243 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">55/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3e" class="pf w0 h0" data-page-no="3e"><div class="pc pc3e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJiElEQVR42u3dMYpTURiG4Vy5B6sf1yBWFrYjjoUICjIwA2PhltyEq0iR1kILyQZs3IHV8BeOh4RYCFMkEq4hyZwkz1OeLl+al3OL0z15/nIEAADN+PHt6wMrAADQGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMCdrtZqBQAA2lFKcZMKAEBzRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMAJ6U0wXGYaATYWEUYAYCA3qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBgvd4E7Miv29tX7z8sHU4nY8vsyNnF1eqhwQE4UF2t1QoDZaYRYGMRYQQAhiil+NwPAEBzRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAADumxenAABoixenAABokUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAEDrehMMl5lGAE5NRBgB2D83qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBgvd4EsGez+fz88nrpcDoZW8aeANzpaq1WGCgzjQCcmogwArBnpRSf+wEAaI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIAlnkUFAKAtnkUFAKBFIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAADHrjcBALAHs9n82es3S4ffv3y2DP/U1VqtAABAO0opPvcDANAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAe9abYLjMNAKwOxFhBIC/3KQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgPV6E8CRObu4Wj2cTsaWAeCAdLVWKwyUmUYAdicijAAwGo1KKT73AwDQHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCA++bFKQAA2uLFKQAAWiRSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAHCqehMMl5lGWBURRgAAtstNKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABYrzdBy2bz+fnl9dLhdDK2DABw3LpaqxUGykwjrIoIIwAAW1RK8bkfAIDmiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAADcNy9OAQDQFi9OAQDQIpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIDW9SYYLjOP+wdGhH8ZAGiBm1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBgq7paqxUAAGhHKcVNKgAAzRGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQBoXW+C4TLTCGtEhBEAgK1wkwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAA/Jeu1moFAADaUUpxkwoAQHNEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAw9XffHxsBQCAjf18+8kI2/X0xbuue/RwcfN7NFosFgYBAKAJfwCgPHbuuwcQ4gAAAABJRU5ErkJggg=="/><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="_ _41"> </span>1/2</div><div class="t m0 x1 ha y21 ff1 fs6 fc0 sc0 ls0 ws0">Lib<span class="_ _3"></span>rary<span class="_ _e"> </span>metho<span class="_ _c"></span>ds:</div><div class="t m0 xa h5 y244 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">std::this<span class="_ _e"> </span>thread::<span class="ff5">get<span class="_ _e"> </span>id</span>()<span class="_ _24"> </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 xa h5 y245 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">std::thread::<span class="ff5">sleep<span class="_ _e"> </span>for</span>(<span class="_ _a"> </span>sleep<span class="_ _e"> </span>duration<span class="_ _a"> </span>)</span></div><div class="t m0 x6 h5 y246 ff4 fs3 fc0 sc0 ls0 ws0">Blo<span class="_ _c"></span>cks<span class="_ _b"> </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>fo<span class="_ _3"></span>r<span class="_ _b"> </span>at<span class="_ _b"> </span>least<span class="_ _b"> </span>the<span class="_ _b"> </span>sp<span class="_ _c"></span>ecified<span class="_ _b"> </span><span class="ffe">sleep<span class="_ _e"> </span>duration</span></div><div class="t m0 xa h5 y247 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">std::thread::<span class="ff5">hardware<span class="_ _e"> </span>concurrency</span>()<span class="_ _24"> </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 y248 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 y249 ff1 fs6 fc0 sc0 ls0 ws0">Thread<span class="_ _e"> </span>object<span class="_ _6"> </span>metho<span class="_ _c"></span>ds:</div><div class="t m0 xa h5 y24a ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">get<span class="_ _e"> </span>id<span class="ffe">()<span class="_ _24"> </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 xa h5 y24b ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">join<span class="ffe">()<span class="_ _1b"> </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 xa h5 y24c ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">detach<span class="ffe">()<span class="_ _24"> </span><span class="ff4">p<span class="_ _c"></span>ermits<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>to<span class="_ _b"> </span>execute<span class="_ _b"> </span>independently<span class="_ _b"> </span>from<span class="_ _b"> </span>the<span class="_ _b"> </span>thread<span class="_ _b"> </span>handle</span></span></span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">56/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3f" class="pf w0 h0" data-page-no="3f"><div class="pc pc3f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIb0lEQVR42u3YsQkCMRiG4UQMVsEBrrRyAhFrwbXcw3GucAg3uEpSmSZ22qqF5OB5Jvj50rwkbnaHAAAA3bhdx4UVAADojUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAl1lqtAABAP1JKflIBAOiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIAvLWd0aynFgwEA/CbnPKNr/aQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAtTufBCgAAfzAdL0b4xHZ/inG9avdHCK01gwAA0IUnf2oW8R4YJWsAAAAASUVORK5CYII="/><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="_ _41"> </span>2/2</div><div class="t m0 x5 hd y24d ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><chrono><span class="_ _1c"> </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 x5 hd y24e ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream><span class="_ _21"> </span>//<span class="_ _8"> </span>produces<span class="_ _6"> </span>the<span class="_ _6"> </span>output:</span></div><div class="t m0 x5 hd y24f ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread><span class="_ _1c"> </span>//<span class="_ _35"> </span>child<span class="_ _6"> </span>thread<span class="_ _6"> </span>exit</span></div><div class="t m0 x1f hd y250 ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _35"> </span>main<span class="_ _e"> </span>thread<span class="_ _8"> </span>exit</div><div class="t m0 x5 hd y251 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y252 ff5 fs5 fc4 sc0 ls0 ws0">using<span class="_ _6"> </span>namespace<span class="_ _8"> </span><span class="fc8">std<span class="ff12 fc6">::</span>chrono_literals<span class="ff12 fc0">;</span></span></div><div class="t m0 x15 hd y253 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span></span>std<span class="fc6">::</span>this_thread<span class="fc6">::</span>get_id();</div><div class="t m0 x15 hd y254 ff12 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="ff5 fc4">thread</span>::</span>hardware_concurrency();<span class="_ _6"> </span><span class="ffd fc7">//<span class="_ _8"> </span>e.g.<span class="_ _6"> </span>print<span class="_ _8"> </span>6</span></div><div class="t m0 x15 hd y255 ff5 fs5 fc4 sc0 ls0 ws0">auto<span class="_ _6"> </span><span class="ff12 fc0">lambda<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span></span>[]()<span class="_ _6"> </span>{</span></div><div class="t m0 x16 hd y256 ff12 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 hd y257 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"child<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff5 fcc">\n</span>"</span></span>;</div><div class="t m0 x15 hd y258 ff12 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 x15 hd y259 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff5 fc4">thread<span class="_ _6"> </span></span><span class="fc8">child</span></span>(lambda);</div><div class="t m0 x15 hd y25a ff12 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 x1f hd y25b ffd fs5 fc7 sc0 ls0 ws0">//<span class="_ _6"> </span>main<span class="_ _8"> </span>thread<span class="_ _6"> </span>(run-time<span class="_ _8"> </span>error<span class="_ _6"> </span>otherwise)</div><div class="t m0 x15 hd y25c ff12 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="_ _35"> </span><span class="ffd fc7">//<span class="_ _6"> </span>t1</span></div><div class="t m0 x15 hd y25d ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"main<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff5 fcc">\n</span>"</span></span>;</div><div class="t m0 x5 hd y25e ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y25f 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 x5 hd y260 ffd fs5 fc7 sc0 ls0 ws0"><span class="fcf sc0">//</span><span class="_ _35"> </span><span class="fcf sc0">main</span><span class="_ _e"> </span><span class="fcf sc0">thread</span><span class="_ _8"> </span><span class="fcf sc0">exit</span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">57/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf40" class="pf w0 h0" data-page-no="40"><div class="pc pc40 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3YsU0DQRCG0Vt0I6IVNVhErgAhYiR3RhOU44Ai3AGRtZEnOTJEbAyeg/cqWP/n4NO0+4enCQAAyji87W+sAABANSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIBPLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAOAXzSYAAL4aYxjhDL13I1yQSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAuK6WmVYAAKCOiHBJBQCgHJEKAIBIBQAAkQoAgEgFAIDvmlf01jGGD/YTeu9GAABKcUkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAANfVMtMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgBQ3byit44xfDAAgPP03lf0WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAPwZLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAIDVmY8vGysAAJTy/vz6n3/+9nHX2t3tcjxN07Is/g8AAJTwAVykJf4aVvv4AAAAAElFTkSuQmCC"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>a<span class="_ _3"></span>rameters<span class="_ _8"> </span>Passing</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>arameters<span class="_ _b"> </span>passing<span class="_ _e"> </span><span class="ff8">b<span class="_ _3"></span>y-value<span class="_ _8"> </span><span class="ff4">o<span class="_ _3"></span>r<span class="_ _e"> </span><span class="ff8">b<span class="_ _3"></span>y-p<span class="_ _c"></span>ointer<span class="_ _10"> </span><span class="ff4">to<span class="_ _e"> </span>a<span class="_ _b"> </span>thread<span class="_ _e"> </span>function<span class="_ _e"> </span>w<span class="_ _3"></span>orks<span class="_ _b"> </span>in<span class="_ _e"> </span>the<span class="_ _e"> </span>same<span class="_ _b"> </span>wa<span class="_ _3"></span>y</span></span></span></span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">of<span class="_ _e"> </span>a<span class="_ _b"> </span>standard<span class="_ _b"> </span>function.<span class="_ _10"> </span><span class="ff8">Pass-b<span class="_ _3"></span>y-reference<span class="_ _6"> </span><span class="ff4">requires<span class="_ _e"> </span>a<span class="_ _e"> </span>sp<span class="_ _c"></span>ecial<span class="_ _b"> </span>wrapp<span class="_ _c"></span>er<span class="_ _e"> </span>(<span class="_ _11"> </span><span class="ffe">std::ref<span class="_ _11"> </span></span>,</span></span></div><div class="t m0 x5 ha ya6 ffe fs6 fc0 sc0 ls0 ws0">std::cref<span class="_ _11"> </span><span class="ff4">)<span class="_ _e"> </span>to<span class="_ _e"> </span>avoid<span class="_ _b"> </span>wrong<span class="_ _e"> </span>b<span class="_ _c"></span>ehavio<span class="_ _3"></span>rs</span></div><div class="t m0 x5 hd y261 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y262 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread></span></div><div class="t m0 x5 hd y263 ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(</span></span>int<span class="ff12 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="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">b)<span class="_ _6"> </span>{</span></span></div><div class="t m0 x15 hd y264 ff12 fs5 fc0 sc0 ls0 ws0">a<span class="_ _6"> </span><span class="fc6">=<span class="_ _8"> </span>7</span>;</div><div class="t m0 x15 hd y265 ff5 fs5 fc4 sc0 ls0 ws0">const_cast<span class="ff12 fc6"><</span><span class="fc5">int<span class="ff12 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 x5 hd y266 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y267 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y268 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">a<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>1</span>,<span class="_ _6"> </span>b<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>2</span>;</span></div><div class="t m0 x15 hd y269 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff5 fc4">thread<span class="_ _6"> </span></span></span>th1(f,<span class="_ _8"> </span>a,<span class="_ _6"> </span>b);<span class="_ _42"> </span><span class="ffd fc7">//<span class="_ _6"> </span><span class="fcd">wrong!!!</span></span></div><div class="t m0 x15 hd y26a ff12 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="fcb">",<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="_ _3b"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _6"> </span>1,<span class="_ _8"> </span>2!!</span></div><div class="t m0 x15 hd y26b ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::<span class="ff5 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="fcd">correct</span></span></div><div class="t m0 x15 hd y26c ff12 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="fcb">",<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="_ _3b"> </span><span class="ffd fc7">//<span class="_ _8"> </span>print<span class="_ _6"> </span>7,<span class="_ _8"> </span>8!!</span></div><div class="t m0 x15 hd y26d ff12 fs5 fc0 sc0 ls0 ws0">th1.join();<span class="_ _6"> </span>th2.join();</div><div class="t m0 x5 hd y26e ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">58/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf41" class="pf w0 h0" data-page-no="41"><div class="pc pc41 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIb0lEQVR42u3YsQ0CIQCGUTASK+IAllZOYIy1ya3lHo5j4RBucJWhkgY7B7AwcHlvAvhpvhD3x3MAAIBuPB/3lRUAAOiNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4CvWWq0AAEA/Ukp+UgEA6I5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAAFmU90FlLKR4MAOA3OeeBTusnFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAA8F9xvu6sAAAwqPlyW96lDqcpxu2mvd4htNa8MgAAXfgASCcW8WY8VC8AAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Mutex<span class="_ _8"> </span><span class="fs3">(The<span class="_ _e"> </span>Problem)<span class="_ _43"> </span></span>1/3</div><div class="t m0 x1 ha y26f ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span>follo<span class="_ _3"></span>wing<span class="_ _e"> </span>code<span class="_ _e"> </span>produces<span class="_ _e"> </span>(in<span class="_ _b"> </span>general)<span class="_ _e"> </span>a<span class="_ _e"> </span>value<span class="_ _e"> </span><span class="ff11"><<span class="_ _b"> </span></span>1000:</div><div class="t m0 x5 hd y270 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><chrono></span></div><div class="t m0 x5 hd y271 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><iostream></span></div><div class="t m0 x5 hd y272 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread></span></div><div class="t m0 x5 hd y273 ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><vector></span></div><div class="t m0 x5 hd y274 ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(</span></span>int<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">value)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y275 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y276 ff12 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 hd y277 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y278 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y279 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y27a ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y27b ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">value<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>0</span>;</span></div><div class="t m0 x15 hd y27c ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>><span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y27d ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y27e ff12 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff5 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value))<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y27f ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span>auto<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y280 ff12 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y281 ff12 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 x5 hd y282 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">59/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf42" class="pf w0 h0" data-page-no="42"><div class="pc pc42 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="_ _44"> </span>2/3</div><div class="t m0 x1 ha y21 ff4 fs6 fc9 sc0 ls0 ws0">C++11<span class="_ _e"> </span><span class="fc0">p<span class="_ _3"></span>rovide<span class="_ _e"> </span>the<span class="_ _b"> </span><span class="ff5">mutex<span class="_ _e"> </span></span>class<span class="_ _e"> </span>as<span class="_ _e"> </span>synchronization<span class="_ _b"> </span>primitive<span class="_ _b"> </span>to<span class="_ _e"> </span>p<span class="_ _3"></span>rotect<span class="_ _e"> </span>sha<span class="_ _3"></span>red<span class="_ _e"> </span>data</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">from<span class="_ _e"> </span>being<span class="_ _e"> </span>simultaneously<span class="_ _e"> </span>accessed<span class="_ _b"> </span>by<span class="_ _e"> </span>multiple<span class="_ _b"> </span>threads</div><div class="t m0 x1 ha y283 ff5 fs6 fc0 sc0 ls0 ws0">mutex<span class="_ _e"> </span><span class="ff4">methods:</span></div><div class="t m0 x9 ha y284 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">lock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">lo<span class="_ _c"></span>cks<span class="_ _b"> </span>the<span class="_ _e"> </span><span class="ff8">mutex</span>,<span class="_ _e"> </span>blocks<span class="_ _e"> </span>if<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff8">mutex<span class="_ _8"> </span></span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>available</span></span></span></div><div class="t m0 x9 ha y285 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">try<span class="_ _6"> </span>lock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">tries<span class="_ _e"> </span>to<span class="_ _e"> </span>lock<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff8">mutex</span>,<span class="_ _b"> </span>returns<span class="_ _e"> </span>if<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff8">mutex<span class="_ _8"> </span></span>is<span class="_ _e"> </span>not<span class="_ _e"> </span>available</span></span></span></div><div class="t m0 x9 ha y286 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">unlock<span class="ffe">()<span class="_ _18"> </span><span class="ff4">unlo<span class="_ _c"></span>cks<span class="_ _b"> </span>the<span class="_ _e"> </span><span class="ff8">mutex</span></span></span></span></div><div class="t m0 x1 hb y287 ffb fs7 fc0 sc0 ls0 ws0">Mo<span class="_ _3"></span>re<span class="_ _b"> </span>advanced<span class="_ _11"> </span>mutex<span class="_ _b"> </span>can<span class="_ _11"> </span>b<span class="_ _c"></span>e<span class="_ _11"> </span>found<span class="_ _b"> </span>here:<span class="_ _6"> </span><span class="ffa">en.cppreference.com/w/cpp/thread</span></div><div class="t m0 x1 ha y288 ff4 fs6 fc0 sc0 ls0 ws0">C++<span class="_ _e"> </span>includes<span class="_ _b"> </span>three<span class="_ _e"> </span>mutex<span class="_ _e"> </span>wrappers<span class="_ _e"> </span>to<span class="_ _e"> </span>p<span class="_ _3"></span>rovide<span class="_ _e"> </span>safe<span class="_ _e"> </span>cop<span class="_ _3"></span>y<span class="_ _3"></span>able/movable<span class="_ _e"> </span>objects:</div><div class="t m0 x9 ha y289 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="_ _e"> </span>implements<span class="_ _e"> </span>a<span class="_ _b"> </span>strictly<span class="_ _e"> </span>scop<span class="_ _c"></span>e-based<span class="_ _b"> </span>mutex<span class="_ _e"> </span>ownership</span></span></div><div class="t m0 x6 ha y28a ff4 fs6 fc0 sc0 ls0 ws0">wrapp<span class="_ _c"></span>er</div><div class="t m0 x9 ha y28b 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="_ _e"> </span>implements<span class="_ _e"> </span>movable<span class="_ _b"> </span>mutex<span class="_ _e"> </span>o<span class="_ _3"></span>wnership<span class="_ _e"> </span>wrapp<span class="_ _c"></span>er</span></span></div><div class="t m0 x9 ha y28c 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="_ _e"> </span>implements<span class="_ _e"> </span>movable<span class="_ _b"> </span>shared<span class="_ _b"> </span>mutex<span class="_ _e"> </span>o<span class="_ _3"></span>wnership<span class="_ _e"> </span>wrapp<span class="_ _c"></span>er</span></span></div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">60/64</div><a class="l" href="en.cppreference.com/w/cpp/thread"><div class="d m1" style="border-style:none;position:absolute;left:287.409000px;bottom:148.470000px;width:152.628000px;height:10.211000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf43" class="pf w0 h0" data-page-no="43"><div class="pc pc43 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIb0lEQVR42u3YoQ0CMQCG0ZbQoBoGOIliAkLQJKzFHoxzgiHY4BSpoqY4wIKhl7y3QJu/5kvjZncIAADQjdt1XFgBAIDeiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAF5irdUKAAD0I6XkJxUAgO6IVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAAPjSckZ3LaV4MACA3+ScZ3RbP6kAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAHiL03mwAgAAn6bj5Y+nb/enGNerdn+E0FrzHAAAdOEJTBcW8TesBS0AAAAASUVORK5CYII="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Mutex<span class="_ _44"> </span>3/3</div><div class="t m0 x5 hd y24d ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><thread><span class="_ _21"> </span>//<span class="_ _8"> </span>iostream,<span class="_ _6"> </span>vector,<span class="_ _6"> </span>chrono</span></div><div class="t m0 x5 hd y24f ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(</span></span>int<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">value,<span class="_ _8"> </span>std</span>::<span class="fc0">mutex</span>&<span class="_ _6"> </span><span class="fc0">m)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y250 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y251 ff12 fs5 fc0 sc0 ls0 ws0">m.lock();</div><div class="t m0 x16 hd y252 ff12 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _6"> </span>other<span class="_ _8"> </span>threads<span class="_ _6"> </span>must<span class="_ _6"> </span>wait</span></div><div class="t m0 x16 hd y253 ff12 fs5 fc0 sc0 ls0 ws0">m.unlock();</div><div class="t m0 x16 hd y254 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y28d ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y255 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y256 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y257 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>mutex<span class="_ _6"> </span>m;</div><div class="t m0 x15 hd y258 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc0">value<span class="_ _8"> </span><span class="fc6">=<span class="_ _8"> </span>0</span>;</span></div><div class="t m0 x15 hd y259 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>><span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y25a ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y25b ff12 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff5 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value),<span class="_ _6"> </span>std<span class="fc6">::</span>ref(m))<span class="_ _8"> </span>);</div><div class="t m0 x15 hd y25c ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span>auto<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y25d ff12 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y25e ff12 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 x5 hd y25f ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">61/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf44" class="pf w0 h0" data-page-no="44"><div class="pc pc44 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsWkDQRCG0Vtxg6LFNQhFrsAIxwJ35iZcjgIX4Q4UiY08yTkzUmghzBy8V8Cx/Jd8TNu/vE4AAFDG1+dpYwUAAKoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAA/GqZaQUAAOqICJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAA8M/mFb11jOGHldV7NwIA8CguqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwI2WmVYAAKCOiHBJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAcGVe0VvHGH4YAMB9eu8req1LKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCALBOLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAP5ovrzvrAAAwH3Ox4+Hf/P58Nba03a5fE/TsixGBgCghB9OtiAAhgkNAwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">A<span class="_ _3"></span>tomic</div><div class="t m0 x5 ha y21 ff5 fs6 fc0 sc0 ls0 ws0">std::atomic<span class="_ _18"> </span><span class="ff4">(<span class="fc9">C++11</span>)<span class="_ _e"> </span>class<span class="_ _b"> </span>template<span class="_ _e"> </span>defines<span class="_ _e"> </span>an<span class="_ _e"> </span>atomic<span class="_ _b"> </span>type<span class="_ _e"> </span>that<span class="_ _e"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>implemented</span></div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">with<span class="_ _e"> </span>lock-free<span class="_ _e"> </span>op<span class="_ _c"></span>erations<span class="_ _b"> </span>(much<span class="_ _e"> </span>faster<span class="_ _e"> </span>than<span class="_ _e"> </span>locks)</div><div class="t m0 x5 hd y28e ffd fs5 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _21"> </span><span class="fc7"><atomic><span class="_ _21"> </span>//<span class="_ _8"> </span>chrono,<span class="_ _6"> </span>iostream,<span class="_ _6"> </span>thread,<span class="_ _8"> </span>vector</span></div><div class="t m0 x5 hd y28f ff5 fs5 fc5 sc0 ls0 ws0">void<span class="_ _6"> </span><span class="ff12 fc8">f<span class="fc0">(std<span class="fc6">::</span>atomic<span class="fc6"><</span></span></span>int<span class="ff12 fc6">>&<span class="_ _8"> </span><span class="fc0">value)<span class="_ _6"> </span>{</span></span></div><div class="t m0 x15 hd y290 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd y291 ff12 fs5 fc0 sc0 ls0 ws0">value<span class="fc6">++</span>;</div><div class="t m0 x16 hd y292 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>this_thread<span class="fc6">::</span>sleep_for(std<span class="fc6">::</span>chrono<span class="fc6">::</span>milliseconds(<span class="fc6">10</span>));</div><div class="t m0 x15 hd y293 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y294 ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hd y295 ff5 fs5 fc5 sc0 ls0 ws0">int<span class="_ _6"> </span><span class="ff12 fc8">main<span class="fc0">()<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd y296 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>atomic<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _6"> </span></span>value(<span class="fc6">0</span>);</div><div class="t m0 x15 hd y297 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>><span class="_ _6"> </span></span>th_vect;</div><div class="t m0 x15 hd y298 ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span><span class="fc5">int<span class="_ _8"> </span><span class="ff12 fc0">i<span class="_ _8"> </span><span class="fc6">=<span class="_ _6"> </span>0</span>;<span class="_ _8"> </span>i<span class="_ _6"> </span><span class="fc6"><<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd y299 ff12 fs5 fc0 sc0 ls0 ws0">th_vect.push_back(<span class="_ _6"> </span>std<span class="fc6">::<span class="ff5 fc4">thread</span></span>(f,<span class="_ _8"> </span>std<span class="fc6">::</span>ref(value))<span class="_ _6"> </span>);</div><div class="t m0 x15 hd y29a ff5 fs5 fc4 sc0 ls0 ws0">for<span class="_ _6"> </span><span class="ff12 fc0">(</span>auto<span class="ff12 fc6">&<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd y29b ff12 fs5 fc0 sc0 ls0 ws0">it.join();</div><div class="t m0 x15 hd y29c ff12 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="_ _35"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1000</span></div><div class="t m0 x5 hd y29d ff12 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">62/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf45" class="pf w0 h0" data-page-no="45"><div class="pc pc45 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="_ _45"> </span>1/2</div><div class="t m0 x1 ha y21 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff5">future<span class="_ _b"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _e"> </span>p<span class="_ _3"></span>rovides<span class="_ _e"> </span>facilities<span class="_ _e"> </span>to<span class="_ _b"> </span>obtain<span class="_ _e"> </span>values<span class="_ _e"> </span>that<span class="_ _b"> </span>are<span class="_ _b"> </span>returned<span class="_ _e"> </span>and<span class="_ _e"> </span>to<span class="_ _b"> </span>catch</div><div class="t m0 x1 ha y79 ff4 fs6 fc0 sc0 ls0 ws0">exceptions<span class="_ _e"> </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="_ _10"> </span></span>tasks</div><div class="t m0 x1 ha yca ff4 fs6 fc0 sc0 ls0 ws0">Asynchronous<span class="_ _e"> </span>call:<span class="_ _5"> </span><span class="ffe">std::future<span class="_ _21"> </span><span class="ff5">async</span>(function,<span class="_ _1a"> </span>args...)</span></div><div class="t m0 x20 ha y29e ff4 fs6 fc0 sc0 ls0 ws0">runs<span class="_ _8"> </span>a<span class="_ _10"> </span>function<span class="_ _8"> </span>asynchronously<span class="_ _10"> </span>(p<span class="_ _c"></span>otentially<span class="_ _8"> </span>in<span class="_ _10"> </span>a<span class="_ _8"> </span>new<span class="_ _8"> </span>thread)</div><div class="t m0 x20 ha y29f ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>returns<span class="_ _b"> </span>a<span class="_ _18"> </span><span class="ffe">std::future<span class="_ _18"> </span></span>object<span class="_ _e"> </span>that<span class="_ _e"> </span>will<span class="_ _b"> </span>hold<span class="_ _e"> </span>the<span class="_ _e"> </span>result</div><div class="t m0 x1 ha y2a0 ff5 fs6 fc0 sc0 ls0 ws0">std::future<span class="_ _e"> </span><span class="ff4">methods:</span></div><div class="t m0 xa h5 y2a1 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">T<span class="_ _a"> </span><span class="ff5">get</span>()<span class="_ _1b"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _b"> </span>result</span></span></div><div class="t m0 xa h5 y2a2 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ff5">wait<span class="ffe">()<span class="_ _1b"> </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 y2a3 ff5 fs6 fc0 sc0 ls0 ws0">async()<span class="_ _e"> </span><span class="ff4">can<span class="_ _b"> </span>b<span class="_ _c"></span>e<span class="_ _e"> </span>called<span class="_ _b"> </span>with<span class="_ _e"> </span>tw<span class="_ _3"></span>o<span class="_ _e"> </span>launch<span class="_ _b"> </span>p<span class="_ _c"></span>olicies<span class="_ _e"> </span>fo<span class="_ _3"></span>r<span class="_ _e"> </span>a<span class="_ _b"> </span>task<span class="_ _e"> </span>executed:</span></div><div class="t m0 xa h5 y2a4 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">std::launch::async<span class="_ _24"> </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 xa h5 y2a5 ff7 fs3 fc0 sc0 ls0 ws0">•<span class="_ _13"> </span><span class="ffe">std::launch::deferred<span class="_ _24"> </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 y2a6 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 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">63/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf46" class="pf w0 h0" data-page-no="46"><div class="pc pc46 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="_ _45"> </span>2/2</div><div class="t m0 x5 hc ybd ffd fs7 fca sc0 ls0 ws0">#<span class="_ _1f"> </span>include<span class="_ _24"> </span><span class="fc7"><future><span class="_ _24"> </span>//<span class="_ _10"> </span>numeric,<span class="_ _10"> </span>algorithm,<span class="_ _8"> </span>vector,<span class="_ _10"> </span>iostream</span></div><div class="t m0 x5 hc yef ff5 fs7 fc4 sc0 ls0 ws0">template<span class="_ _10"> </span><span class="ffa fc6"><</span>typename<span class="_ _8"> </span><span class="fc8">RandomIt<span class="ffa fc6">></span></span></div><div class="t m0 x5 hc ybe ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">parallel_sum(RandomIt<span class="_ _8"> </span>beg,<span class="_ _10"> </span>RandomIt<span class="_ _10"> </span>end)<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc ybf ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">len<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>end<span class="_ _10"> </span><span class="fc6">-<span class="_ _8"> </span></span>beg;</span></div><div class="t m0 x6 hc yc0 ff5 fs7 fc4 sc0 ls0 ws0">if<span class="_ _10"> </span><span class="ffa fc0">(len<span class="_ _8"> </span><span class="fc6"><<span class="_ _10"> </span>1000</span>)<span class="_ _26"> </span><span class="ffd fc7">//<span class="_ _10"> </span>base<span class="_ _8"> </span>case</span></span></div><div class="t m0 x14 hc yc1 ff5 fs7 fc4 sc0 ls0 ws0">return<span class="_ _10"> </span><span class="ffa fc0">std<span class="fc6">::</span>accumulate(beg,<span class="_ _8"> </span>end,<span class="_ _10"> </span><span class="fc6">0</span>);</span></div><div class="t m0 x6 hc yf0 ffa fs7 fc0 sc0 ls0 ws0">RandomIt<span class="_ _10"> </span>mid<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>beg<span class="_ _10"> </span><span class="fc6">+<span class="_ _8"> </span></span>len<span class="_ _10"> </span><span class="fc6">/<span class="_ _10"> </span>2</span>;</div><div class="t m0 x6 hc yc3 ff5 fs7 fc4 sc0 ls0 ws0">auto<span class="_ _10"> </span><span class="ffa fc0">handle<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>std<span class="fc6">::</span>async(std<span class="fc6">::</span>launch<span class="fc6">::</span>async,<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _8"> </span>right<span class="_ _10"> </span>side</span></span></div><div class="t m0 x21 hc yc4 ffa fs7 fc0 sc0 ls0 ws0">parallel_sum<span class="fc6"><</span>RandomIt<span class="fc6">></span>,<span class="_ _10"> </span>mid,<span class="_ _8"> </span>end);</div><div class="t m0 x6 hc yc5 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">sum<span class="_ _8"> </span><span class="fc6">=<span class="_ _10"> </span></span>parallel_sum(beg,<span class="_ _10"> </span>mid);<span class="_ _17"> </span><span class="ffd fc7">//<span class="_ _8"> </span>left<span class="_ _10"> </span>side</span></span></div><div class="t m0 x6 hc yc6 ff5 fs7 fc4 sc0 ls0 ws0">return<span class="_ _10"> </span><span class="ffa fc0">sum<span class="_ _8"> </span><span class="fc6">+<span class="_ _10"> </span></span>handle.get();<span class="_ _46"> </span><span class="ffd fc7">//<span class="_ _10"> </span>left<span class="_ _8"> </span>+<span class="_ _10"> </span>right</span></span></div><div class="t m0 x5 hc yc7 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x5 hc yc8 ff5 fs7 fc5 sc0 ls0 ws0">int<span class="_ _10"> </span><span class="ffa fc0">main()<span class="_ _8"> </span>{</span></div><div class="t m0 x6 hc yc9 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>vector<span class="fc6"><<span class="ff5 fc5">int</span>><span class="_ _10"> </span></span>v(<span class="fc6">10000</span>,<span class="_ _8"> </span><span class="fc6">1</span>);<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>init<span class="_ _8"> </span>all<span class="_ _10"> </span>to<span class="_ _10"> </span>1</span></div><div class="t m0 x6 hc y2a7 ffa fs7 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _10"> </span><span class="fc6"><<<span class="_ _8"> </span><span class="fcb">"The<span class="_ _10"> </span>sum<span class="_ _10"> </span>is<span class="_ _8"> </span>"<span class="_ _10"> </span></span><<<span class="_ _10"> </span></span>parallel_sum(v.begin(),<span class="_ _10"> </span>v.end());</div><div class="t m0 x5 hc y2a8 ffa fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 h8 y10 ff6 fs5 fc0 sc0 ls0 ws0">64/64</div></div><div class="pi" data-data='{"ctm":[1.500000,0.000000,0.000000,1.500000,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>
|