Modern-CPP-Programming/htmls/19.Advanced_Topics_II.html
Nitin Bansal f1f39b2bbb
adding html's (#60)
Co-authored-by: Nitin Bansal <nitin@192.168.1.5>
2024-02-03 23:44:36 -08:00

1829 lines
809 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="generator" content="pdf2htmlEX"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<style type="text/css">
/*!
* Base CSS for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
<style type="text/css">
/*!
* Fancy styles for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
<style type="text/css">
.ff0{font-family:sans-serif;visibility:hidden;}
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height:0.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,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')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,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')format("woff");}.ff7{font-family:ff7;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff8;src:url('data:application/font-woff;base64,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')format("woff");}.ff8{font-family:ff8;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff9;src:url('data:application/font-woff;base64,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')format("woff");}.ff9{font-family:ff9;line-height:0.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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJJUlEQVR42u3YMY7UQBBA0WnUJULOgDbyCRBCDhwgcTMusXdxYAJu4IQbEG1IJUNGZonVaNVl+b20Z6Tpmg6+qj19+nIDAIAyfv388c4UAACoRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPBPy0xTAACgjoiwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAAHhL/XS/eJqXR76+b6t/HQCgOJtUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAA8JiWmaYAAEAdEWGTCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAALqZf9ubTvBwd7dvqZQAADGSTCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgNFaZpoCAAB1RIRNKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgBwbv2yN5/m5eho31YvAwBgIJtUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAjNYy0xQAAKgjImxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAJfST/eLp3l55Ov7tvrXAQCKs0kFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAICTaZlpCgAA1BERNqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAWP2yN5/m5eho31YvAwBgIJtUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAjNYy0xQAAKgjImxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAAK/SL3vzaV6OjvZt9TIAAAaySQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMBoLTNNAQCAOiLCJhUAgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAOLd+2ZtP83J0tG+rlwEAMJBNKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEZrmWkKAADUERE2qQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIBX6Ze9+TQvR0f7tnoZAAAD2aQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBgtJaZpgAAQB0RYZMKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAJxbv+zNp3k5Otq31csAABjIJhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgMtpmWkKAADUERE2qQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAACijv3z/+J8f/f312bwAAHhr0+dvrX14f3/5c7vd73cDAQCghL8DNUnyK1NV5QAAAABJRU5ErkJggg=="/><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,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"/><div class="t m0 x8 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">Undefined<span class="_ _1"> </span>Behavio<span class="_ _d"></span>r</div><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left: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,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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>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">&lt;</span><span class="fc5">int<span class="ffa fc6">&amp;&gt;<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">&lt;</span><span class="fc5">uint64_t<span class="ffa fc6">*&gt;<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>&lt;&lt;<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">&lt;</span><span class="fc5">unsigned<span class="ffa fc6">&amp;&gt;<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">&apos;</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">&lt;<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">&amp;<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>&lt;&lt;<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>&lt;&lt;<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">&lt;</span><span class="fc5">float<span class="ffa fc6">&amp;&gt;<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>dont<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">&lt;&lt;<span class="_ _8"> </span></span>x;<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>&quot;3&quot;</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">&lt;<span class="ffe">stdexcept</span>&gt;</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">&lt;stdexcept&gt;</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">&quot;runtime<span class="_ _8"> </span>error&quot;</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">&quot;logic<span class="_ _8"> </span>error&quot;</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">&amp;<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">&lt;&lt;<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">&amp;<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">&lt;&lt;<span class="_ _8"> </span></span>e.what();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print:<span class="_ _8"> </span>&quot;logic<span class="_ _6"> </span>error&quot;</span></div><div class="t m0 x15 hd 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">&quot;runtime<span class="_ _8"> </span>error&quot;<span class="fc0">;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>throw<span class="_ _6"> </span>const<span class="_ _8"> </span>char*</span></span></span></div><div class="t m0 x15 hd 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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;exception&quot;</span></span>;<span class="_ _20"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>&quot;exception&quot;</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">&amp;<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">&amp;<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">&lt;exception&gt;<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>&lt;stdexcept&gt;</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>&quot;constexpr&quot;</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">&quot;C++<span class="_ _8"> </span>Exception&quot;<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">&amp;<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">&lt;&lt;<span class="_ _8"> </span></span>e.what();<span class="_ _10"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _8"> </span>&quot;C++<span class="_ _10"> </span>Exception&quot;</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">&lt;</span><span class="fc5">bool<span class="_ _10"> </span><span class="ffa fc0">X<span class="fc6">&gt;</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">&amp;<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">&lt;&lt;<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">&amp;<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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;bad<span class="_ _10"> </span>allocation:<span class="_ _10"> </span>&quot;<span class="_ _8"> </span></span>&lt;&lt;<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">&lt;new&gt;<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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;bad<span class="_ _10"> </span>allocation&quot;</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>&quot;bad_alloc&quot;</span></div><div class="t m0 x18 hc ye9 ffd fs7 fc7 sc0 ls0 ws0">//<span class="_ _10"> </span>&quot;a&quot;<span class="_ _8"> </span>is<span class="_ _10"> </span>out-of-scope<span class="_ _10"> </span>-&gt;<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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;<span class="ff5 fc5">int</span></span>[]<span class="fc6">&gt;</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">&lt;<span class="ff5 fc5">int</span></span>[]<span class="fc6">&gt;</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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;<span class="ff5 fc5">int</span>&gt;<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&amp;)</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&amp;<span class="_ _1a"> </span>operator=(const<span class="_ _1a"> </span>X&amp;)</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&amp;)<span class="_ _a"> </span>=<span class="_ _a"> </span>delete</div><div class="t m0 x5 he y11e ffe fs3 fc0 sc0 ls0 ws0">X&amp;<span class="_ _a"> </span>operator=(const<span class="_ _a"> </span>X&amp;)<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&amp;)</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&amp;&amp;)</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&amp;<span class="_ _1a"> </span>operator=(const<span class="_ _1a"> </span>X&amp;)</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&amp;<span class="_ _1a"> </span>operator=(X&amp;&amp;)</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">&amp;<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>&quot;static&quot;</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">&amp;<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">&amp;<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">-&gt;</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,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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>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&lt;impl&gt;<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,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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>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">&lt;</span>class<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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">&lt;<span class="fc0">T</span>*&gt;<span class="fc0">(</span></span>this<span class="ffa fc0">)<span class="fc6">-&gt;</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">&lt;</span>Derived<span class="fc6">&gt;<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">&lt;iostream&gt;</span></div><div class="t m0 x5 hc y168 ff5 fs7 fc4 sc0 ls0 ws0">template<span class="_ _10"> </span><span class="ffa fc6">&lt;</span>typename<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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">&lt;</span>const<span class="_ _10"> </span><span class="ffa fc0">T<span class="fc6">*&gt;</span>(</span>this<span class="ffa fc0">)<span class="fc6">-&gt;</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">&lt;</span>CerrWriter<span class="fc6">&gt;<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>&lt;&lt;<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">&lt;</span>CoutWriter<span class="fc6">&gt;<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>&lt;&lt;<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">&quot;abc&quot;</span>);</div><div class="t m0 x5 hc y177 ffa fs7 fc0 sc0 ls0 ws0">y.write(<span class="fcb">&quot;abc&quot;</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">&lt;</span>typename<span class="_ _8"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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">&lt;</span>T<span class="fc6">&gt;&amp;<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">&quot;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">&lt;</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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>&quot;int&quot;<span class="_ _8"> </span>and<span class="_ _10"> </span>&quot;double&quot;</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">&lt;</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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>&quot;method()&quot;<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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;A<span class="_ _10"> </span>&quot;<span class="_ _10"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>t<span class="_ _10"> </span><span class="fc6">&lt;&lt;<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">&lt;</span>typename<span class="_ _10"> </span><span class="fc8">T<span class="ffa fc6">&gt;</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>&quot;method()&quot;<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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;B<span class="_ _10"> </span>&quot;<span class="_ _10"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>t<span class="_ _10"> </span><span class="fc6">&lt;&lt;<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">&lt;</span>class<span class="_ _10"> </span><span class="fc8">Impl<span class="ffa fc6">&gt;</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">&lt;</span>AImpl<span class="fc6">&gt;</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">&lt;</span>BImpl<span class="fc6">&gt;</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>&amp;</span>a;</div><div class="t m0 x1c hc y1a1 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-&gt;</span>method(<span class="fc6">1</span>);<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>&quot;A<span class="_ _8"> </span>1&quot;</span></div><div class="t m0 x1c hc y1a2 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-&gt;</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>&quot;A<span class="_ _10"> </span>2.0&quot;</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>&amp;</span>b;</div><div class="t m0 x1c hc y1a4 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-&gt;</span>method(<span class="fc6">1</span>);<span class="_ _1c"> </span><span class="ffd fc7">//<span class="_ _10"> </span>print<span class="_ _10"> </span>&quot;B<span class="_ _8"> </span>1&quot;</span></div><div class="t m0 x1c hc y1a5 ffa fs7 fc0 sc0 ls0 ws0">base<span class="fc6">-&gt;</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>&quot;B<span class="_ _10"> </span>2.0&quot;</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,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"/><div class="t m0 x4 h6 y6 ff1 fs2 fc1 sc0 ls0 ws0">Sma<span class="_ _3"></span>rt<span class="_ _8"> </span>P<span class="_ _3"></span>ointers<span class="_ _8"> </span>Benefits</div><div class="t m0 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">&lt;iostream&gt;</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">&lt;memory&gt;</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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;Constructor<span class="ff5 fcc">\n</span>&quot;</span></span>;<span class="_ _6"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>called<span class="_ _8"> </span>when<span class="_ _6"> </span>A()</span></div><div class="t m0 x15 hd 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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;Destructor<span class="ff5 fcc">\n</span>&quot;</span></span>;<span class="_ _13"> </span>}<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>called<span class="_ _8"> </span>when<span class="_ _6"> </span>u_ptr1,</span></span></div><div class="t m0 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">&lt;</span>A<span class="fc6">&gt;<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">&lt;</span>A<span class="fc6">&gt;<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&lt;A&gt;<span class="_ _6"> </span>u_ptr3(raw_ptr);<span class="_ _6"> </span>//<span class="_ _8"> </span>no<span class="_ _6"> </span>compile<span class="_ _8"> </span>error,<span class="_ _6"> </span>but<span class="_ _8"> </span>wrong!!<span class="_ _6"> </span>(not<span class="_ _6"> </span>unique)</div><div class="t m0 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-&gt;<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">&lt;</span>T<span class="ff11">&gt;</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">&lt;iostream&gt;</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">&lt;memory&gt;</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">&lt;</span>A<span class="fc6">&gt;<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">-&gt;</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">&lt;</span>A<span class="fc6">&gt;</span>();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>create<span class="_ _6"> </span>a<span class="_ _8"> </span>new<span class="_ _6"> </span>unique<span class="_ _8"> </span>pointer</span></span></div><div class="t m0 x15 hd 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">&lt;</span>A[]<span class="fc6">&gt;<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">&amp;<span class="_ _6"> </span><span class="fc0">obj<span class="_ _8"> </span></span>=<span class="_ _8"> </span><span class="fc0">u_ptr3[</span>3<span class="fc0">];<span class="_ _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">&lt;iostream&gt;</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">&lt;memory&gt;</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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;delete&quot;<span class="_ _10"> </span></span>&lt;&lt;<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">&lt;</span>A,<span class="_ _10"> </span><span class="ff5 fc4">decltype</span>(DeleteLambda)<span class="fc6">&gt;</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>&quot;delete&quot;</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">&lt;iostream&gt;</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">&lt;memory&gt;</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">&lt;</span>A<span class="fc6">&gt;<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">&lt;</span>A<span class="fc6">&gt;<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">&lt;</span>A<span class="fc6">&gt;<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-&gt;<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">&lt;iostream&gt;</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">&lt;memory&gt;</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">&lt;</span>A<span class="fc6">&gt;<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">&lt;</span>A<span class="fc6">&gt;</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">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>1</span></div><div class="t m0 x15 hd 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&lt;A&gt;<span class="_ _6"> </span>sh_ptr2(sh_ptr1);<span class="_ _6"> </span>//<span class="_ _8"> </span>copy<span class="_ _6"> </span>(constructor)</div><div class="t m0 x15 hd y214 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr1.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd y215 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>sh_ptr2.use_count();<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>print<span class="_ _8"> </span>2</span></div><div class="t m0 x15 hd 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">-&gt;</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">&lt;memory&gt;</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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;&lt;<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">&apos;</span>true<span class="ff10">&apos;</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">&lt;memory&gt;</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">&lt;</span></span><span class="fc5">int<span class="ffa fc6">&gt;<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">&lt;&lt;<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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;&lt;<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">&lt;&lt;<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">&lt;&lt;<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">&lt;&lt;<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">&lt;iostream&gt;</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">&lt;thread&gt;</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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;first<span class="_ _8"> </span>thread&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 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>&quot;th&quot;<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">&lt;iostream&gt;</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">&lt;thread&gt;</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">&lt;vector&gt;</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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;thread<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>id<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;</div><div class="t m0 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">&lt;</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>&gt;<span class="_ _6"> </span></span>thread_vect;<span class="_ _8"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>vector</span></div><div class="t m0 x15 hd 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">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd 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">&amp;</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">&amp;<span class="_ _8"> </span><span class="fc0">th<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">thread_vect)</span></span></div><div class="t m0 x16 hd 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">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{<span class="_ _13"> </span><span class="ffd fc7">//<span class="_ _6"> </span>thread<span class="_ _8"> </span>+<span class="_ _6"> </span>lambda<span class="_ _8"> </span>expression</span></span></span></div><div class="t m0 x16 hd 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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;thread<span class="ff5 fcc">\n</span>&quot;</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">&lt;chrono&gt;<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">&lt;iostream&gt;<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">&lt;thread&gt;<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">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>this_thread<span class="fc6">::</span>get_id();</div><div class="t m0 x15 hd y254 ff12 fs5 fc0 sc0 ls0 ws0">std<span class="fc6">::</span>cout<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::<span class="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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;child<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff5 fcc">\n</span>&quot;</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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;main<span class="_ _8"> </span>thread<span class="_ _6"> </span>exit<span class="ff5 fcc">\n</span>&quot;</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>&lt;<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">&lt;iostream&gt;</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">&lt;thread&gt;</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">&amp;<span class="_ _8"> </span><span class="fc0">a,<span class="_ _8"> </span></span></span><span class="fc4">const<span class="_ _6"> </span></span>int<span class="ff12 fc6">&amp;<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">&lt;</span><span class="fc5">int<span class="ff12 fc6">&amp;&gt;<span class="fc0">(b)<span class="_ _6"> </span></span>=<span class="_ _8"> </span>8<span class="fc0">;</span></span></span></div><div class="t m0 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">&lt;&lt;<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6">&lt;&lt;<span class="_ _6"> </span><span class="fcb">&quot;,<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;<span class="_ _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">&lt;&lt;<span class="_ _8"> </span></span>a<span class="_ _8"> </span><span class="fc6">&lt;&lt;<span class="_ _6"> </span><span class="fcb">&quot;,<span class="_ _8"> </span>&quot;<span class="_ _6"> </span></span>&lt;&lt;<span class="_ _8"> </span></span>b<span class="_ _6"> </span><span class="fc6">&lt;&lt;<span class="_ _8"> </span></span>std<span class="fc6">::</span>endl;<span class="_ _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">&lt;<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">&lt;chrono&gt;</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">&lt;iostream&gt;</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">&lt;thread&gt;</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">&lt;vector&gt;</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">&amp;<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">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd 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">&lt;</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>&gt;<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">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd 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">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd 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">&lt;&lt;<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">&lt;thread&gt;<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">&amp;<span class="_ _8"> </span><span class="fc0">value,<span class="_ _8"> </span>std</span>::<span class="fc0">mutex</span>&amp;<span class="_ _6"> </span><span class="fc0">m)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x15 hd 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">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd 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">&lt;</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>&gt;<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">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd 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">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd 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">&lt;&lt;<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">&lt;atomic&gt;<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">&lt;</span></span></span>int<span class="ff12 fc6">&gt;&amp;<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">&lt;<span class="_ _8"> </span>10</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)<span class="_ _8"> </span>{</span></span></div><div class="t m0 x16 hd 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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;</span>std<span class="fc6">::<span class="ff5 fc4">thread</span>&gt;<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">&lt;<span class="_ _8"> </span>100</span>;<span class="_ _6"> </span>i<span class="fc6">++</span>)</span></span></div><div class="t m0 x16 hd 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">&amp;<span class="_ _8"> </span><span class="fc0">it<span class="_ _8"> </span></span>:<span class="_ _6"> </span><span class="fc0">th_vect)</span></span></div><div class="t m0 x16 hd 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">&lt;&lt;<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">&lt;future&gt;<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">&lt;</span>typename<span class="_ _8"> </span><span class="fc8">RandomIt<span class="ffa fc6">&gt;</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">&lt;<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">&lt;</span>RandomIt<span class="fc6">&gt;</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">&lt;<span class="ff5 fc5">int</span>&gt;<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">&lt;&lt;<span class="_ _8"> </span><span class="fcb">&quot;The<span class="_ _10"> </span>sum<span class="_ _10"> </span>is<span class="_ _8"> </span>&quot;<span class="_ _10"> </span></span>&lt;&lt;<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>