669 lines
243 KiB
HTML
669 lines
243 KiB
HTML
<!DOCTYPE html>
|
||
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="utf-8"/>
|
||
<meta name="generator" content="pdf2htmlEX"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||
<style type="text/css">
|
||
/*!
|
||
* Base CSS for pdf2htmlEX
|
||
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
|
||
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
|
||
<style type="text/css">
|
||
/*!
|
||
* Fancy styles for pdf2htmlEX
|
||
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
|
||
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
|
||
<style type="text/css">
|
||
.ff0{font-family:sans-serif;visibility:hidden;}
|
||
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff3;src:url('data:application/font-woff;base64,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')format("woff");}.ff3{font-family:ff3;line-height:0.704000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff4;src:url('data:application/font-woff;base64,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')format("woff");}.ff4{font-family:ff4;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff5;src:url('data:application/font-woff;base64,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')format("woff");}.ff5{font-family:ff5;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff6;src:url('data:application/font-woff;base64,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')format("woff");}.ff6{font-family:ff6;line-height: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:0.915000;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:0.922000;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.922000;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:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffb;src:url('data:application/font-woff;base64,d09GRgABAAAAAATcAA0AAAAAB0gAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcpiahGkdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOtf5BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABgAAAAZHRuLQNoZWFkAAABMAAAADIAAAA2LS4aO2hoZWEAAAFkAAAAHgAAACQEWgNzaG10eAAAAegAAAAUAAAAFAVwADhsb2NhAAACRAAAAAwAAAAMAAAAMm1heHAAAAGEAAAAHQAAACAASAAkbmFtZQAAArAAAAG+AAADTjuk55Zwb3N0AAAEcAAAACkAAAA0cF7CxnicY2BkYGBgYjjSUl66L57f5isDN/MLoAjD06bX/nDagqGV6SJjPpDLAVQLBACFZQzXAAB4nGNgZGBgzGcAAmYuEMl0kSGFQZIBGbACACbrAdQAAHicY2BkYGBgZVBkANEMDExAzAhmO4D5DAAGEABtAAAAeJxjYGRsZZzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIHaAcQLSXFOAlIKSDWM+WDIfroYBACguCggAAAABGAAAAAAAAAFNAAAAAQAAAwoAOHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAMnicY2BksGBoZbrImM+gwMDAKMKmrKSux6isxMfEDmKbmpgZG4nLMRobmZkDWUwXY7zcQh3dtMW0tWWY2Nn5oFzjEGZmbj5GP98aHysdASV7TVYhBTDb30OKgQEAGKsRBnicrVLLattAFD2j2IZCSRdddFPK3RQSioQsU0OyjIlDTeQEKy7ejmPZFrY1QVIw/oN8TCn9p/5Ij0bTLrxoN5XQ3HPPfcw9MwJwiu9QaJ6vf7DCG/XRYQ8dNXD4BJH64XAL77y3Drdx6n1xuEP+hZmq9YreN1tVY4UPqu2wh9fqs8MnWKiRwy0E6qfDbbz3PjncQeDNMIDBEw4okGGFNSoIIoR8e/D5NviC7JxZgisEXEfQeMSGtXuUtBk5jRwLGwsQ26yxjTeZdcYZ/dx2SrmTxhZLesauD+RmtFMkuMaEq+CG9o7MPb1zdsTAPB2KbLWuJArDnu9zvZD5Qa4CGenHjdmXm0x0vpBREAcyNnuSmZyZXObpWm+XYpbykM5kmlxPErmZ3E3vk3P2veXAMQeqOFZCmTuOaDheiS7F4zaOdbVODru52ZZdErWwglm1BIxNsdO0Q6uusrbgWab2JAM2EFzy+/smPrWmrHomo1nf1PTJd90tRPQwNHk1NMUqlSgI5VKORvMn6ep5qwtG+n6X5xP1/6XueONjtb9b1r9yynjJq2yusRFX/yjCYFqUGQ+aY4U9+W+b/gI24JTlAAB4nGNgYmD4//Hb7v9NDBoM2AArEDMyMDEwMzKxF2fmZuYkFgEA/qMIUwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9NOm1/4wGgBNlgeEAAA=')format("woff");}.ffb{font-family:ffb;line-height:0.234000;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.916000;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.999000;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.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:fff;src:url('data:application/font-woff;base64,d09GRgABAAAAAATQAA0AAAAAB0gAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcpiahIEdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADMAAAA2LUMaQWhoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG2AAADQt/+T5Zwb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjjyXv/cg3h+m68M3MwvgCIMT5teB8FpS4YGpqeMJUAuB1AtEAAAooQNkAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUstq20AUPaPYhtDiZVZZXNpNApGQZTAkq5IQG0xkBysO2Y4S2Ra2NUFSMF70ixLyR/2XHknTQkvJqhp077nvxwyALt6h0Hz3v7FCV3212EFHfbP4AD31anELR84ni9voOr98OtR/p6dqHVJ6q6MqrHCs2hY7+KwCiw8Qq5HFLZypHxa3cex8sbiDM2eKKxg8Y48cKZZYoYQggM/Th8vT4HNqY3oJLuGRjqHxiDVjdyjIU+o0MjzVNg9h7TWp7Y1n5XFCOaszJaykscGCkqnpHXUP5HNEuMaMVDAin1JzS+mUGXFlnvd5ulyVEvh+33VJzyXey6UnY/24NrtinYrOnmTshZ5MzI7KVE5MJnGy0puFmIXcJQ8yj65nkYxm0/ltdMq8N2w4ZEMl24o45pYtGrZXcHDchKEuV9F+G5tNQbmaKqdL1T8mJt9q8mE9WlnznItM6jV6XJ3ggv9HFVyOmTDmhbJmdBMxoL5nLyCghKHJyqHJl4kEni8X8mdf7ixZvmx0TsPA7XEzweDjuf6uin/nq15wQnPBG2xurxmreh9CY5IXKffLlvy+/J+KPwGGi5NVAAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9NOm10EwGgBNtAeKAAA=')format("woff");}.fff{font-family:fff;line-height:0.244000;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.914000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
.m0{transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-ms-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-webkit-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);}
|
||
.m1{transform:none;-ms-transform:none;-webkit-transform:none;}
|
||
.v0{vertical-align:0.000000px;}
|
||
.ls0{letter-spacing:0.000000px;}
|
||
.sc_{text-shadow:none;}
|
||
.sc0{text-shadow:-0.015em 0 transparent,0 0.015em transparent,0.015em 0 transparent,0 -0.015em transparent;}
|
||
@media screen and (-webkit-min-device-pixel-ratio:0){
|
||
.sc_{-webkit-text-stroke:0px transparent;}
|
||
.sc0{-webkit-text-stroke:0.015em transparent;text-shadow:none;}
|
||
}
|
||
.ws0{word-spacing:0.000000px;}
|
||
._3{margin-left:-7.355850px;}
|
||
._6{margin-left:-5.049862px;}
|
||
._7{margin-left:-3.787397px;}
|
||
._d{margin-left:-2.410162px;}
|
||
._8{margin-left:-1.291162px;}
|
||
._f{width:1.334798px;}
|
||
._0{width:3.073600px;}
|
||
._21{width:6.240614px;}
|
||
._16{width:12.345537px;}
|
||
._c{width:13.445534px;}
|
||
._e{width:14.530921px;}
|
||
._9{width:15.589581px;}
|
||
._17{width:16.928492px;}
|
||
._a{width:18.200582px;}
|
||
._10{width:19.458298px;}
|
||
._5{width:21.691454px;}
|
||
._14{width:22.909110px;}
|
||
._1f{width:24.376186px;}
|
||
._13{width:25.507396px;}
|
||
._15{width:26.591798px;}
|
||
._4{width:31.159050px;}
|
||
._b{width:32.422412px;}
|
||
._18{width:33.856985px;}
|
||
._1{width:36.288314px;}
|
||
._1c{width:38.287738px;}
|
||
._2{width:40.911750px;}
|
||
._19{width:50.817358px;}
|
||
._1d{width:57.117178px;}
|
||
._1e{width:75.317760px;}
|
||
._11{width:94.147200px;}
|
||
._1b{width:101.602835px;}
|
||
._1a{width:372.586235px;}
|
||
._12{width:489.565440px;}
|
||
._20{width:802.088792px;}
|
||
._22{width:1053.922682px;}
|
||
.fcc{color:transparent;}
|
||
.fc9{color:rgb(57,75,79);}
|
||
.fcb{color:rgb(186,33,33);}
|
||
.fc8{color:rgb(16,136,110);}
|
||
.fc7{color:rgb(176,0,64);}
|
||
.fc6{color:rgb(61,122,122);}
|
||
.fca{color:rgb(156,102,0);}
|
||
.fc4{color:rgb(0,0,255);}
|
||
.fc3{color:rgb(0,128,0);}
|
||
.fc5{color:rgb(102,102,102);}
|
||
.fc2{color:rgb(255,255,255);}
|
||
.fc1{color:rgb(250,250,250);}
|
||
.fc0{color:rgb(35,55,59);}
|
||
.fs5{font-size:31.880400px;}
|
||
.fs7{font-size:35.865600px;}
|
||
.fs4{font-size:39.850400px;}
|
||
.fs6{font-size:43.636400px;}
|
||
.fs3{font-size:47.820800px;}
|
||
.fs2{font-size:57.384800px;}
|
||
.fs1{font-size:82.650000px;}
|
||
.fs0{font-size:99.148400px;}
|
||
.y8c{bottom:-10.713000px;}
|
||
.y0{bottom:-0.500000px;}
|
||
.y1f{bottom:7.430000px;}
|
||
.y83{bottom:10.752000px;}
|
||
.ya6{bottom:10.936000px;}
|
||
.y67{bottom:11.254000px;}
|
||
.y3d{bottom:11.743000px;}
|
||
.y11{bottom:13.018000px;}
|
||
.y1e{bottom:20.033000px;}
|
||
.y3c{bottom:22.627000px;}
|
||
.y82{bottom:23.354000px;}
|
||
.ya5{bottom:23.539000px;}
|
||
.y72{bottom:24.729000px;}
|
||
.yb5{bottom:25.435000px;}
|
||
.y48{bottom:29.885000px;}
|
||
.y27{bottom:32.236000px;}
|
||
.y1d{bottom:32.636000px;}
|
||
.y3b{bottom:33.511000px;}
|
||
.y55{bottom:34.139000px;}
|
||
.y81{bottom:35.957000px;}
|
||
.ya4{bottom:36.141000px;}
|
||
.y5e{bottom:36.543000px;}
|
||
.y10{bottom:36.806000px;}
|
||
.y71{bottom:37.332000px;}
|
||
.yb4{bottom:41.016000px;}
|
||
.y6{bottom:42.285000px;}
|
||
.y3a{bottom:44.395000px;}
|
||
.y1c{bottom:45.238000px;}
|
||
.y26{bottom:45.984000px;}
|
||
.y54{bottom:46.741000px;}
|
||
.y98{bottom:47.670000px;}
|
||
.y80{bottom:48.560000px;}
|
||
.ya3{bottom:48.744000px;}
|
||
.y70{bottom:49.934000px;}
|
||
.y5d{bottom:50.291000px;}
|
||
.y47{bottom:52.913000px;}
|
||
.y66{bottom:54.293000px;}
|
||
.y2f{bottom:54.627000px;}
|
||
.yf{bottom:56.009000px;}
|
||
.y1b{bottom:57.841000px;}
|
||
.y5{bottom:58.960000px;}
|
||
.y53{bottom:59.344000px;}
|
||
.y25{bottom:59.732000px;}
|
||
.y97{bottom:60.273000px;}
|
||
.y7f{bottom:61.162000px;}
|
||
.ya2{bottom:61.347000px;}
|
||
.yb2{bottom:61.954000px;}
|
||
.y6f{bottom:62.537000px;}
|
||
.y5c{bottom:64.393000px;}
|
||
.y46{bottom:65.516000px;}
|
||
.y39{bottom:66.163000px;}
|
||
.y65{bottom:69.874000px;}
|
||
.y1a{bottom:70.444000px;}
|
||
.y96{bottom:72.876000px;}
|
||
.y24{bottom:73.481000px;}
|
||
.y7e{bottom:73.765000px;}
|
||
.ya1{bottom:73.949000px;}
|
||
.yb1{bottom:74.557000px;}
|
||
.ye{bottom:75.212000px;}
|
||
.y45{bottom:78.118000px;}
|
||
.y2e{bottom:78.652000px;}
|
||
.y8b{bottom:82.681000px;}
|
||
.y19{bottom:83.046000px;}
|
||
.y52{bottom:84.549000px;}
|
||
.y5b{bottom:84.956000px;}
|
||
.y64{bottom:85.456000px;}
|
||
.y95{bottom:85.478000px;}
|
||
.y7d{bottom:86.368000px;}
|
||
.ya0{bottom:86.552000px;}
|
||
.yb3{bottom:87.160000px;}
|
||
.y6e{bottom:87.742000px;}
|
||
.y38{bottom:87.932000px;}
|
||
.y44{bottom:90.721000px;}
|
||
.yd{bottom:94.415000px;}
|
||
.y8a{bottom:95.284000px;}
|
||
.y18{bottom:95.400000px;}
|
||
.y51{bottom:97.152000px;}
|
||
.y94{bottom:98.081000px;}
|
||
.y2d{bottom:98.446000px;}
|
||
.y37{bottom:98.816000px;}
|
||
.y7c{bottom:98.970000px;}
|
||
.y5a{bottom:99.058000px;}
|
||
.yb0{bottom:99.762000px;}
|
||
.y6d{bottom:100.345000px;}
|
||
.y23{bottom:102.186000px;}
|
||
.y43{bottom:103.324000px;}
|
||
.y89{bottom:107.887000px;}
|
||
.y50{bottom:109.755000px;}
|
||
.y93{bottom:110.683000px;}
|
||
.y7b{bottom:111.573000px;}
|
||
.y9f{bottom:111.757000px;}
|
||
.yaf{bottom:112.365000px;}
|
||
.y6c{bottom:112.948000px;}
|
||
.yc{bottom:113.618000px;}
|
||
.y17{bottom:113.955000px;}
|
||
.y63{bottom:114.985000px;}
|
||
.y42{bottom:115.926000px;}
|
||
.y4{bottom:116.359000px;}
|
||
.y2c{bottom:118.240000px;}
|
||
.y88{bottom:120.489000px;}
|
||
.y36{bottom:120.584000px;}
|
||
.y59{bottom:121.035000px;}
|
||
.y4f{bottom:122.357000px;}
|
||
.y92{bottom:123.286000px;}
|
||
.y7a{bottom:124.176000px;}
|
||
.y9e{bottom:124.360000px;}
|
||
.yae{bottom:124.968000px;}
|
||
.y6b{bottom:125.550000px;}
|
||
.y22{bottom:126.210000px;}
|
||
.y41{bottom:128.529000px;}
|
||
.y16{bottom:129.537000px;}
|
||
.y62{bottom:130.566000px;}
|
||
.y35{bottom:131.468000px;}
|
||
.y4e{bottom:134.960000px;}
|
||
.y91{bottom:135.889000px;}
|
||
.y79{bottom:136.778000px;}
|
||
.y2b{bottom:136.810000px;}
|
||
.y9d{bottom:136.963000px;}
|
||
.yad{bottom:137.570000px;}
|
||
.y6a{bottom:138.153000px;}
|
||
.y12{bottom:138.248000px;}
|
||
.y3{bottom:138.377000px;}
|
||
.y40{bottom:141.132000px;}
|
||
.yb{bottom:141.611000px;}
|
||
.y34{bottom:142.352000px;}
|
||
.y87{bottom:145.695000px;}
|
||
.y21{bottom:146.004000px;}
|
||
.y4d{bottom:147.563000px;}
|
||
.y90{bottom:148.491000px;}
|
||
.y78{bottom:149.381000px;}
|
||
.y9c{bottom:149.565000px;}
|
||
.yac{bottom:150.173000px;}
|
||
.y69{bottom:150.507000px;}
|
||
.y58{bottom:152.974000px;}
|
||
.y33{bottom:153.236000px;}
|
||
.y3f{bottom:153.485000px;}
|
||
.y2a{bottom:155.381000px;}
|
||
.y86{bottom:158.297000px;}
|
||
.y61{bottom:160.096000px;}
|
||
.y4c{bottom:160.165000px;}
|
||
.ya{bottom:160.814000px;}
|
||
.y8f{bottom:160.845000px;}
|
||
.y77{bottom:161.984000px;}
|
||
.y9b{bottom:162.168000px;}
|
||
.yab{bottom:162.776000px;}
|
||
.y32{bottom:164.120000px;}
|
||
.y20{bottom:164.575000px;}
|
||
.y15{bottom:166.044000px;}
|
||
.y3e{bottom:168.554000px;}
|
||
.y57{bottom:169.086000px;}
|
||
.y68{bottom:170.556000px;}
|
||
.y85{bottom:170.900000px;}
|
||
.y4b{bottom:172.768000px;}
|
||
.y29{bottom:174.424000px;}
|
||
.y76{bottom:174.586000px;}
|
||
.y31{bottom:174.756000px;}
|
||
.y9a{bottom:174.770000px;}
|
||
.yaa{bottom:175.378000px;}
|
||
.y60{bottom:175.677000px;}
|
||
.y2{bottom:177.832000px;}
|
||
.y9{bottom:180.017000px;}
|
||
.y14{bottom:181.626000px;}
|
||
.y8e{bottom:182.887000px;}
|
||
.y84{bottom:183.254000px;}
|
||
.y4a{bottom:185.122000px;}
|
||
.y56{bottom:185.198000px;}
|
||
.y99{bottom:187.124000px;}
|
||
.y75{bottom:187.189000px;}
|
||
.ya9{bottom:187.981000px;}
|
||
.y30{bottom:191.592000px;}
|
||
.y5f{bottom:197.211000px;}
|
||
.y1{bottom:198.454000px;}
|
||
.y8d{bottom:198.469000px;}
|
||
.y8{bottom:199.220000px;}
|
||
.y74{bottom:199.792000px;}
|
||
.y49{bottom:200.190000px;}
|
||
.ya8{bottom:200.584000px;}
|
||
.y28{bottom:204.954000px;}
|
||
.y13{bottom:207.174000px;}
|
||
.y73{bottom:212.145000px;}
|
||
.ya7{bottom:212.937000px;}
|
||
.y7{bottom:236.149000px;}
|
||
.hc{height:22.124998px;}
|
||
.h8{height:23.910300px;}
|
||
.hd{height:24.818995px;}
|
||
.ha{height:24.890726px;}
|
||
.he{height:26.899200px;}
|
||
.hb{height:27.656178px;}
|
||
.h6{height:29.887800px;}
|
||
.h9{height:32.727300px;}
|
||
.h5{height:33.187635px;}
|
||
.h7{height:35.865600px;}
|
||
.h4{height:43.038600px;}
|
||
.h3{height:61.987500px;}
|
||
.h2{height:74.361300px;}
|
||
.h0{height:255.118000px;}
|
||
.h1{height:255.500000px;}
|
||
.w0{width:453.543000px;}
|
||
.w1{width:454.000000px;}
|
||
.x0{left:0.000000px;}
|
||
.x4{left:10.667000px;}
|
||
.x1{left:28.346000px;}
|
||
.xd{left:31.335000px;}
|
||
.x5{left:34.488000px;}
|
||
.x10{left:36.225000px;}
|
||
.x9{left:37.711000px;}
|
||
.xc{left:45.590000px;}
|
||
.xa{left:47.176000px;}
|
||
.x6{left:50.486000px;}
|
||
.xe{left:62.219000px;}
|
||
.xf{left:66.005000px;}
|
||
.x11{left:74.972000px;}
|
||
.xb{left:84.835000px;}
|
||
.x8{left:106.772000px;}
|
||
.x2{left:125.114000px;}
|
||
.x13{left:227.009000px;}
|
||
.x14{left:245.838000px;}
|
||
.x3{left:378.705000px;}
|
||
.x12{left:424.403000px;}
|
||
.x7{left:428.637000px;}
|
||
@media print{
|
||
.v0{vertical-align:0.000000pt;}
|
||
.ls0{letter-spacing:0.000000pt;}
|
||
.ws0{word-spacing:0.000000pt;}
|
||
._3{margin-left:-9.807800pt;}
|
||
._6{margin-left:-6.733150pt;}
|
||
._7{margin-left:-5.049862pt;}
|
||
._d{margin-left:-3.213549pt;}
|
||
._8{margin-left:-1.721549pt;}
|
||
._f{width:1.779731pt;}
|
||
._0{width:4.098134pt;}
|
||
._21{width:8.320819pt;}
|
||
._16{width:16.460716pt;}
|
||
._c{width:17.927378pt;}
|
||
._e{width:19.374562pt;}
|
||
._9{width:20.786108pt;}
|
||
._17{width:22.571323pt;}
|
||
._a{width:24.267443pt;}
|
||
._10{width:25.944397pt;}
|
||
._5{width:28.921939pt;}
|
||
._14{width:30.545480pt;}
|
||
._1f{width:32.501581pt;}
|
||
._13{width:34.009861pt;}
|
||
._15{width:35.455731pt;}
|
||
._4{width:41.545400pt;}
|
||
._b{width:43.229883pt;}
|
||
._18{width:45.142646pt;}
|
||
._1{width:48.384419pt;}
|
||
._1c{width:51.050317pt;}
|
||
._2{width:54.549000pt;}
|
||
._19{width:67.756477pt;}
|
||
._1d{width:76.156237pt;}
|
||
._1e{width:100.423680pt;}
|
||
._11{width:125.529600pt;}
|
||
._1b{width:135.470446pt;}
|
||
._1a{width:496.781646pt;}
|
||
._12{width:652.753920pt;}
|
||
._20{width:1069.451723pt;}
|
||
._22{width:1405.230243pt;}
|
||
.fs5{font-size:42.507200pt;}
|
||
.fs7{font-size:47.820800pt;}
|
||
.fs4{font-size:53.133867pt;}
|
||
.fs6{font-size:58.181867pt;}
|
||
.fs3{font-size:63.761067pt;}
|
||
.fs2{font-size:76.513067pt;}
|
||
.fs1{font-size:110.200000pt;}
|
||
.fs0{font-size:132.197867pt;}
|
||
.y8c{bottom:-14.284000pt;}
|
||
.y0{bottom:-0.666667pt;}
|
||
.y1f{bottom:9.906667pt;}
|
||
.y83{bottom:14.336000pt;}
|
||
.ya6{bottom:14.581333pt;}
|
||
.y67{bottom:15.005333pt;}
|
||
.y3d{bottom:15.657333pt;}
|
||
.y11{bottom:17.357333pt;}
|
||
.y1e{bottom:26.710667pt;}
|
||
.y3c{bottom:30.169333pt;}
|
||
.y82{bottom:31.138667pt;}
|
||
.ya5{bottom:31.385333pt;}
|
||
.y72{bottom:32.972000pt;}
|
||
.yb5{bottom:33.913333pt;}
|
||
.y48{bottom:39.846667pt;}
|
||
.y27{bottom:42.981333pt;}
|
||
.y1d{bottom:43.514667pt;}
|
||
.y3b{bottom:44.681333pt;}
|
||
.y55{bottom:45.518667pt;}
|
||
.y81{bottom:47.942667pt;}
|
||
.ya4{bottom:48.188000pt;}
|
||
.y5e{bottom:48.724000pt;}
|
||
.y10{bottom:49.074667pt;}
|
||
.y71{bottom:49.776000pt;}
|
||
.yb4{bottom:54.688000pt;}
|
||
.y6{bottom:56.380000pt;}
|
||
.y3a{bottom:59.193333pt;}
|
||
.y1c{bottom:60.317333pt;}
|
||
.y26{bottom:61.312000pt;}
|
||
.y54{bottom:62.321333pt;}
|
||
.y98{bottom:63.560000pt;}
|
||
.y80{bottom:64.746667pt;}
|
||
.ya3{bottom:64.992000pt;}
|
||
.y70{bottom:66.578667pt;}
|
||
.y5d{bottom:67.054667pt;}
|
||
.y47{bottom:70.550667pt;}
|
||
.y66{bottom:72.390667pt;}
|
||
.y2f{bottom:72.836000pt;}
|
||
.yf{bottom:74.678667pt;}
|
||
.y1b{bottom:77.121333pt;}
|
||
.y5{bottom:78.613333pt;}
|
||
.y53{bottom:79.125333pt;}
|
||
.y25{bottom:79.642667pt;}
|
||
.y97{bottom:80.364000pt;}
|
||
.y7f{bottom:81.549333pt;}
|
||
.ya2{bottom:81.796000pt;}
|
||
.yb2{bottom:82.605333pt;}
|
||
.y6f{bottom:83.382667pt;}
|
||
.y5c{bottom:85.857333pt;}
|
||
.y46{bottom:87.354667pt;}
|
||
.y39{bottom:88.217333pt;}
|
||
.y65{bottom:93.165333pt;}
|
||
.y1a{bottom:93.925333pt;}
|
||
.y96{bottom:97.168000pt;}
|
||
.y24{bottom:97.974667pt;}
|
||
.y7e{bottom:98.353333pt;}
|
||
.ya1{bottom:98.598667pt;}
|
||
.yb1{bottom:99.409333pt;}
|
||
.ye{bottom:100.282667pt;}
|
||
.y45{bottom:104.157333pt;}
|
||
.y2e{bottom:104.869333pt;}
|
||
.y8b{bottom:110.241333pt;}
|
||
.y19{bottom:110.728000pt;}
|
||
.y52{bottom:112.732000pt;}
|
||
.y5b{bottom:113.274667pt;}
|
||
.y64{bottom:113.941333pt;}
|
||
.y95{bottom:113.970667pt;}
|
||
.y7d{bottom:115.157333pt;}
|
||
.ya0{bottom:115.402667pt;}
|
||
.yb3{bottom:116.213333pt;}
|
||
.y6e{bottom:116.989333pt;}
|
||
.y38{bottom:117.242667pt;}
|
||
.y44{bottom:120.961333pt;}
|
||
.yd{bottom:125.886667pt;}
|
||
.y8a{bottom:127.045333pt;}
|
||
.y18{bottom:127.200000pt;}
|
||
.y51{bottom:129.536000pt;}
|
||
.y94{bottom:130.774667pt;}
|
||
.y2d{bottom:131.261333pt;}
|
||
.y37{bottom:131.754667pt;}
|
||
.y7c{bottom:131.960000pt;}
|
||
.y5a{bottom:132.077333pt;}
|
||
.yb0{bottom:133.016000pt;}
|
||
.y6d{bottom:133.793333pt;}
|
||
.y23{bottom:136.248000pt;}
|
||
.y43{bottom:137.765333pt;}
|
||
.y89{bottom:143.849333pt;}
|
||
.y50{bottom:146.340000pt;}
|
||
.y93{bottom:147.577333pt;}
|
||
.y7b{bottom:148.764000pt;}
|
||
.y9f{bottom:149.009333pt;}
|
||
.yaf{bottom:149.820000pt;}
|
||
.y6c{bottom:150.597333pt;}
|
||
.yc{bottom:151.490667pt;}
|
||
.y17{bottom:151.940000pt;}
|
||
.y63{bottom:153.313333pt;}
|
||
.y42{bottom:154.568000pt;}
|
||
.y4{bottom:155.145333pt;}
|
||
.y2c{bottom:157.653333pt;}
|
||
.y88{bottom:160.652000pt;}
|
||
.y36{bottom:160.778667pt;}
|
||
.y59{bottom:161.380000pt;}
|
||
.y4f{bottom:163.142667pt;}
|
||
.y92{bottom:164.381333pt;}
|
||
.y7a{bottom:165.568000pt;}
|
||
.y9e{bottom:165.813333pt;}
|
||
.yae{bottom:166.624000pt;}
|
||
.y6b{bottom:167.400000pt;}
|
||
.y22{bottom:168.280000pt;}
|
||
.y41{bottom:171.372000pt;}
|
||
.y16{bottom:172.716000pt;}
|
||
.y62{bottom:174.088000pt;}
|
||
.y35{bottom:175.290667pt;}
|
||
.y4e{bottom:179.946667pt;}
|
||
.y91{bottom:181.185333pt;}
|
||
.y79{bottom:182.370667pt;}
|
||
.y2b{bottom:182.413333pt;}
|
||
.y9d{bottom:182.617333pt;}
|
||
.yad{bottom:183.426667pt;}
|
||
.y6a{bottom:184.204000pt;}
|
||
.y12{bottom:184.330667pt;}
|
||
.y3{bottom:184.502667pt;}
|
||
.y40{bottom:188.176000pt;}
|
||
.yb{bottom:188.814667pt;}
|
||
.y34{bottom:189.802667pt;}
|
||
.y87{bottom:194.260000pt;}
|
||
.y21{bottom:194.672000pt;}
|
||
.y4d{bottom:196.750667pt;}
|
||
.y90{bottom:197.988000pt;}
|
||
.y78{bottom:199.174667pt;}
|
||
.y9c{bottom:199.420000pt;}
|
||
.yac{bottom:200.230667pt;}
|
||
.y69{bottom:200.676000pt;}
|
||
.y58{bottom:203.965333pt;}
|
||
.y33{bottom:204.314667pt;}
|
||
.y3f{bottom:204.646667pt;}
|
||
.y2a{bottom:207.174667pt;}
|
||
.y86{bottom:211.062667pt;}
|
||
.y61{bottom:213.461333pt;}
|
||
.y4c{bottom:213.553333pt;}
|
||
.ya{bottom:214.418667pt;}
|
||
.y8f{bottom:214.460000pt;}
|
||
.y77{bottom:215.978667pt;}
|
||
.y9b{bottom:216.224000pt;}
|
||
.yab{bottom:217.034667pt;}
|
||
.y32{bottom:218.826667pt;}
|
||
.y20{bottom:219.433333pt;}
|
||
.y15{bottom:221.392000pt;}
|
||
.y3e{bottom:224.738667pt;}
|
||
.y57{bottom:225.448000pt;}
|
||
.y68{bottom:227.408000pt;}
|
||
.y85{bottom:227.866667pt;}
|
||
.y4b{bottom:230.357333pt;}
|
||
.y29{bottom:232.565333pt;}
|
||
.y76{bottom:232.781333pt;}
|
||
.y31{bottom:233.008000pt;}
|
||
.y9a{bottom:233.026667pt;}
|
||
.yaa{bottom:233.837333pt;}
|
||
.y60{bottom:234.236000pt;}
|
||
.y2{bottom:237.109333pt;}
|
||
.y9{bottom:240.022667pt;}
|
||
.y14{bottom:242.168000pt;}
|
||
.y8e{bottom:243.849333pt;}
|
||
.y84{bottom:244.338667pt;}
|
||
.y4a{bottom:246.829333pt;}
|
||
.y56{bottom:246.930667pt;}
|
||
.y99{bottom:249.498667pt;}
|
||
.y75{bottom:249.585333pt;}
|
||
.ya9{bottom:250.641333pt;}
|
||
.y30{bottom:255.456000pt;}
|
||
.y5f{bottom:262.948000pt;}
|
||
.y1{bottom:264.605333pt;}
|
||
.y8d{bottom:264.625333pt;}
|
||
.y8{bottom:265.626667pt;}
|
||
.y74{bottom:266.389333pt;}
|
||
.y49{bottom:266.920000pt;}
|
||
.ya8{bottom:267.445333pt;}
|
||
.y28{bottom:273.272000pt;}
|
||
.y13{bottom:276.232000pt;}
|
||
.y73{bottom:282.860000pt;}
|
||
.ya7{bottom:283.916000pt;}
|
||
.y7{bottom:314.865333pt;}
|
||
.hc{height:29.499997pt;}
|
||
.h8{height:31.880400pt;}
|
||
.hd{height:33.091994pt;}
|
||
.ha{height:33.187635pt;}
|
||
.he{height:35.865600pt;}
|
||
.hb{height:36.874903pt;}
|
||
.h6{height:39.850400pt;}
|
||
.h9{height:43.636400pt;}
|
||
.h5{height:44.250180pt;}
|
||
.h7{height:47.820800pt;}
|
||
.h4{height:57.384800pt;}
|
||
.h3{height:82.650000pt;}
|
||
.h2{height:99.148400pt;}
|
||
.h0{height:340.157333pt;}
|
||
.h1{height:340.666667pt;}
|
||
.w0{width:604.724000pt;}
|
||
.w1{width:605.333333pt;}
|
||
.x0{left:0.000000pt;}
|
||
.x4{left:14.222667pt;}
|
||
.x1{left:37.794667pt;}
|
||
.xd{left:41.780000pt;}
|
||
.x5{left:45.984000pt;}
|
||
.x10{left:48.300000pt;}
|
||
.x9{left:50.281333pt;}
|
||
.xc{left:60.786667pt;}
|
||
.xa{left:62.901333pt;}
|
||
.x6{left:67.314667pt;}
|
||
.xe{left:82.958667pt;}
|
||
.xf{left:88.006667pt;}
|
||
.x11{left:99.962667pt;}
|
||
.xb{left:113.113333pt;}
|
||
.x8{left:142.362667pt;}
|
||
.x2{left:166.818667pt;}
|
||
.x13{left:302.678667pt;}
|
||
.x14{left:327.784000pt;}
|
||
.x3{left:504.940000pt;}
|
||
.x12{left:565.870667pt;}
|
||
.x7{left:571.516000pt;}
|
||
}
|
||
</style>
|
||
<script>
|
||
/*
|
||
Copyright 2012 Mozilla Foundation
|
||
Copyright 2013 Lu Wang <coolwanglu@gmail.com>
|
||
Apachine License Version 2.0
|
||
*/
|
||
(function(){function b(a,b,e,f){var c=(a.className||"").split(/\s+/g);""===c[0]&&c.shift();var d=c.indexOf(b);0>d&&e&&c.push(b);0<=d&&f&&c.splice(d,1);a.className=c.join(" ");return 0<=d}if(!("classList"in document.createElement("div"))){var e={add:function(a){b(this.element,a,!0,!1)},contains:function(a){return b(this.element,a,!1,!1)},remove:function(a){b(this.element,a,!1,!0)},toggle:function(a){b(this.element,a,!0,!0)}};Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){if(this._classList)return this._classList;
|
||
var a=Object.create(e,{element:{value:this,writable:!1,enumerable:!0}});Object.defineProperty(this,"_classList",{value:a,writable:!1,enumerable:!1});return a},enumerable:!0})}})();
|
||
</script>
|
||
<script>
|
||
(function(){/*
|
||
pdf2htmlEX.js: Core UI functions for pdf2htmlEX
|
||
Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com> and other contributors
|
||
https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/
|
||
var pdf2htmlEX=window.pdf2htmlEX=window.pdf2htmlEX||{},CSS_CLASS_NAMES={page_frame:"pf",page_content_box:"pc",page_data:"pi",background_image:"bi",link:"l",input_radio:"ir",__dummy__:"no comma"},DEFAULT_CONFIG={container_id:"page-container",sidebar_id:"sidebar",outline_id:"outline",loading_indicator_cls:"loading-indicator",preload_pages:3,render_timeout:100,scale_step:0.9,key_handler:!0,hashchange_handler:!0,view_history_handler:!0,__dummy__:"no comma"},EPS=1E-6;
|
||
function invert(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[3]*a[4])/b,(a[1]*a[4]-a[0]*a[5])/b]}function transform(a,b){return[a[0]*b[0]+a[2]*b[1]+a[4],a[1]*b[0]+a[3]*b[1]+a[5]]}function get_page_number(a){return parseInt(a.getAttribute("data-page-no"),16)}function disable_dragstart(a){for(var b=0,c=a.length;b<c;++b)a[b].addEventListener("dragstart",function(){return!1},!1)}
|
||
function clone_and_extend_objs(a){for(var b={},c=0,e=arguments.length;c<e;++c){var h=arguments[c],d;for(d in h)h.hasOwnProperty(d)&&(b[d]=h[d])}return b}
|
||
function Page(a){if(a){this.shown=this.loaded=!1;this.page=a;this.num=get_page_number(a);this.original_height=a.clientHeight;this.original_width=a.clientWidth;var b=a.getElementsByClassName(CSS_CLASS_NAMES.page_content_box)[0];b&&(this.content_box=b,this.original_scale=this.cur_scale=this.original_height/b.clientHeight,this.page_data=JSON.parse(a.getElementsByClassName(CSS_CLASS_NAMES.page_data)[0].getAttribute("data-data")),this.ctm=this.page_data.ctm,this.ictm=invert(this.ctm),this.loaded=!0)}}
|
||
Page.prototype={hide:function(){this.loaded&&this.shown&&(this.content_box.classList.remove("opened"),this.shown=!1)},show:function(){this.loaded&&!this.shown&&(this.content_box.classList.add("opened"),this.shown=!0)},rescale:function(a){this.cur_scale=0===a?this.original_scale:a;this.loaded&&(a=this.content_box.style,a.msTransform=a.webkitTransform=a.transform="scale("+this.cur_scale.toFixed(3)+")");a=this.page.style;a.height=this.original_height*this.cur_scale+"px";a.width=this.original_width*this.cur_scale+
|
||
"px"},view_position:function(){var a=this.page,b=a.parentNode;return[b.scrollLeft-a.offsetLeft-a.clientLeft,b.scrollTop-a.offsetTop-a.clientTop]},height:function(){return this.page.clientHeight},width:function(){return this.page.clientWidth}};function Viewer(a){this.config=clone_and_extend_objs(DEFAULT_CONFIG,0<arguments.length?a:{});this.pages_loading=[];this.init_before_loading_content();var b=this;document.addEventListener("DOMContentLoaded",function(){b.init_after_loading_content()},!1)}
|
||
Viewer.prototype={scale:1,cur_page_idx:0,first_page_idx:0,init_before_loading_content:function(){this.pre_hide_pages()},initialize_radio_button:function(){for(var a=document.getElementsByClassName(CSS_CLASS_NAMES.input_radio),b=0;b<a.length;b++)a[b].addEventListener("click",function(){this.classList.toggle("checked")})},init_after_loading_content:function(){this.sidebar=document.getElementById(this.config.sidebar_id);this.outline=document.getElementById(this.config.outline_id);this.container=document.getElementById(this.config.container_id);
|
||
this.loading_indicator=document.getElementsByClassName(this.config.loading_indicator_cls)[0];for(var a=!0,b=this.outline.childNodes,c=0,e=b.length;c<e;++c)if("ul"===b[c].nodeName.toLowerCase()){a=!1;break}a||this.sidebar.classList.add("opened");this.find_pages();if(0!=this.pages.length){disable_dragstart(document.getElementsByClassName(CSS_CLASS_NAMES.background_image));this.config.key_handler&&this.register_key_handler();var h=this;this.config.hashchange_handler&&window.addEventListener("hashchange",
|
||
function(a){h.navigate_to_dest(document.location.hash.substring(1))},!1);this.config.view_history_handler&&window.addEventListener("popstate",function(a){a.state&&h.navigate_to_dest(a.state)},!1);this.container.addEventListener("scroll",function(){h.update_page_idx();h.schedule_render(!0)},!1);[this.container,this.outline].forEach(function(a){a.addEventListener("click",h.link_handler.bind(h),!1)});this.initialize_radio_button();this.render()}},find_pages:function(){for(var a=[],b={},c=this.container.childNodes,
|
||
e=0,h=c.length;e<h;++e){var d=c[e];d.nodeType===Node.ELEMENT_NODE&&d.classList.contains(CSS_CLASS_NAMES.page_frame)&&(d=new Page(d),a.push(d),b[d.num]=a.length-1)}this.pages=a;this.page_map=b},load_page:function(a,b,c){var e=this.pages;if(!(a>=e.length||(e=e[a],e.loaded||this.pages_loading[a]))){var e=e.page,h=e.getAttribute("data-page-url");if(h){this.pages_loading[a]=!0;var d=e.getElementsByClassName(this.config.loading_indicator_cls)[0];"undefined"===typeof d&&(d=this.loading_indicator.cloneNode(!0),
|
||
d.classList.add("active"),e.appendChild(d));var f=this,g=new XMLHttpRequest;g.open("GET",h,!0);g.onload=function(){if(200===g.status||0===g.status){var b=document.createElement("div");b.innerHTML=g.responseText;for(var d=null,b=b.childNodes,e=0,h=b.length;e<h;++e){var p=b[e];if(p.nodeType===Node.ELEMENT_NODE&&p.classList.contains(CSS_CLASS_NAMES.page_frame)){d=p;break}}b=f.pages[a];f.container.replaceChild(d,b.page);b=new Page(d);f.pages[a]=b;b.hide();b.rescale(f.scale);disable_dragstart(d.getElementsByClassName(CSS_CLASS_NAMES.background_image));
|
||
f.schedule_render(!1);c&&c(b)}delete f.pages_loading[a]};g.send(null)}void 0===b&&(b=this.config.preload_pages);0<--b&&(f=this,setTimeout(function(){f.load_page(a+1,b)},0))}},pre_hide_pages:function(){var a="@media screen{."+CSS_CLASS_NAMES.page_content_box+"{display:none;}}",b=document.createElement("style");b.styleSheet?b.styleSheet.cssText=a:b.appendChild(document.createTextNode(a));document.head.appendChild(b)},render:function(){for(var a=this.container,b=a.scrollTop,c=a.clientHeight,a=b-c,b=
|
||
b+c+c,c=this.pages,e=0,h=c.length;e<h;++e){var d=c[e],f=d.page,g=f.offsetTop+f.clientTop,f=g+f.clientHeight;g<=b&&f>=a?d.loaded?d.show():this.load_page(e):d.hide()}},update_page_idx:function(){var a=this.pages,b=a.length;if(!(2>b)){for(var c=this.container,e=c.scrollTop,c=e+c.clientHeight,h=-1,d=b,f=d-h;1<f;){var g=h+Math.floor(f/2),f=a[g].page;f.offsetTop+f.clientTop+f.clientHeight>=e?d=g:h=g;f=d-h}this.first_page_idx=d;for(var g=h=this.cur_page_idx,k=0;d<b;++d){var f=a[d].page,l=f.offsetTop+f.clientTop,
|
||
f=f.clientHeight;if(l>c)break;f=(Math.min(c,l+f)-Math.max(e,l))/f;if(d===h&&Math.abs(f-1)<=EPS){g=h;break}f>k&&(k=f,g=d)}this.cur_page_idx=g}},schedule_render:function(a){if(void 0!==this.render_timer){if(!a)return;clearTimeout(this.render_timer)}var b=this;this.render_timer=setTimeout(function(){delete b.render_timer;b.render()},this.config.render_timeout)},register_key_handler:function(){var a=this;window.addEventListener("DOMMouseScroll",function(b){if(b.ctrlKey){b.preventDefault();var c=a.container,
|
||
e=c.getBoundingClientRect(),c=[b.clientX-e.left-c.clientLeft,b.clientY-e.top-c.clientTop];a.rescale(Math.pow(a.config.scale_step,b.detail),!0,c)}},!1);window.addEventListener("keydown",function(b){var c=!1,e=b.ctrlKey||b.metaKey,h=b.altKey;switch(b.keyCode){case 61:case 107:case 187:e&&(a.rescale(1/a.config.scale_step,!0),c=!0);break;case 173:case 109:case 189:e&&(a.rescale(a.config.scale_step,!0),c=!0);break;case 48:e&&(a.rescale(0,!1),c=!0);break;case 33:h?a.scroll_to(a.cur_page_idx-1):a.container.scrollTop-=
|
||
a.container.clientHeight;c=!0;break;case 34:h?a.scroll_to(a.cur_page_idx+1):a.container.scrollTop+=a.container.clientHeight;c=!0;break;case 35:a.container.scrollTop=a.container.scrollHeight;c=!0;break;case 36:a.container.scrollTop=0,c=!0}c&&b.preventDefault()},!1)},rescale:function(a,b,c){var e=this.scale;this.scale=a=0===a?1:b?e*a:a;c||(c=[0,0]);b=this.container;c[0]+=b.scrollLeft;c[1]+=b.scrollTop;for(var h=this.pages,d=h.length,f=this.first_page_idx;f<d;++f){var g=h[f].page;if(g.offsetTop+g.clientTop>=
|
||
c[1])break}g=f-1;0>g&&(g=0);var g=h[g].page,k=g.clientWidth,f=g.clientHeight,l=g.offsetLeft+g.clientLeft,m=c[0]-l;0>m?m=0:m>k&&(m=k);k=g.offsetTop+g.clientTop;c=c[1]-k;0>c?c=0:c>f&&(c=f);for(f=0;f<d;++f)h[f].rescale(a);b.scrollLeft+=m/e*a+g.offsetLeft+g.clientLeft-m-l;b.scrollTop+=c/e*a+g.offsetTop+g.clientTop-c-k;this.schedule_render(!0)},fit_width:function(){var a=this.cur_page_idx;this.rescale(this.container.clientWidth/this.pages[a].width(),!0);this.scroll_to(a)},fit_height:function(){var a=this.cur_page_idx;
|
||
this.rescale(this.container.clientHeight/this.pages[a].height(),!0);this.scroll_to(a)},get_containing_page:function(a){for(;a;){if(a.nodeType===Node.ELEMENT_NODE&&a.classList.contains(CSS_CLASS_NAMES.page_frame)){a=get_page_number(a);var b=this.page_map;return a in b?this.pages[b[a]]:null}a=a.parentNode}return null},link_handler:function(a){var b=a.target,c=b.getAttribute("data-dest-detail");if(c){if(this.config.view_history_handler)try{var e=this.get_current_view_hash();window.history.replaceState(e,
|
||
"","#"+e);window.history.pushState(c,"","#"+c)}catch(h){}this.navigate_to_dest(c,this.get_containing_page(b));a.preventDefault()}},navigate_to_dest:function(a,b){try{var c=JSON.parse(a)}catch(e){return}if(c instanceof Array){var h=c[0],d=this.page_map;if(h in d){for(var f=d[h],h=this.pages[f],d=2,g=c.length;d<g;++d){var k=c[d];if(null!==k&&"number"!==typeof k)return}for(;6>c.length;)c.push(null);var g=b||this.pages[this.cur_page_idx],d=g.view_position(),d=transform(g.ictm,[d[0],g.height()-d[1]]),
|
||
g=this.scale,l=[0,0],m=!0,k=!1,n=this.scale;switch(c[1]){case "XYZ":l=[null===c[2]?d[0]:c[2]*n,null===c[3]?d[1]:c[3]*n];g=c[4];if(null===g||0===g)g=this.scale;k=!0;break;case "Fit":case "FitB":l=[0,0];k=!0;break;case "FitH":case "FitBH":l=[0,null===c[2]?d[1]:c[2]*n];k=!0;break;case "FitV":case "FitBV":l=[null===c[2]?d[0]:c[2]*n,0];k=!0;break;case "FitR":l=[c[2]*n,c[5]*n],m=!1,k=!0}if(k){this.rescale(g,!1);var p=this,c=function(a){l=transform(a.ctm,l);m&&(l[1]=a.height()-l[1]);p.scroll_to(f,l)};h.loaded?
|
||
c(h):(this.load_page(f,void 0,c),this.scroll_to(f))}}}},scroll_to:function(a,b){var c=this.pages;if(!(0>a||a>=c.length)){c=c[a].view_position();void 0===b&&(b=[0,0]);var e=this.container;e.scrollLeft+=b[0]-c[0];e.scrollTop+=b[1]-c[1]}},get_current_view_hash:function(){var a=[],b=this.pages[this.cur_page_idx];a.push(b.num);a.push("XYZ");var c=b.view_position(),c=transform(b.ictm,[c[0],b.height()-c[1]]);a.push(c[0]/this.scale);a.push(c[1]/this.scale);a.push(this.scale);return JSON.stringify(a)}};
|
||
pdf2htmlEX.Viewer=Viewer;})();
|
||
</script>
|
||
<script>
|
||
try{
|
||
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
|
||
}catch(e){}
|
||
</script>
|
||
<title></title>
|
||
</head>
|
||
<body>
|
||
<div id="sidebar">
|
||
<div id="outline">
|
||
<ul><li><a class="l" href="#pf3" data-dest-detail='[3,"XYZ",28.346,255.118,null]'>C++ Idioms</a><ul><li><a class="l" href="#pf4" data-dest-detail='[4,"XYZ",28.346,228.21,null]'>Rule of Zero</a></li><li><a class="l" href="#pf5" data-dest-detail='[5,"XYZ",28.346,228.21,null]'>Rule of Three</a></li><li><a class="l" href="#pf6" data-dest-detail='[6,"XYZ",28.346,225.99,null]'>Rule of Five</a></li></ul></li><li><a class="l" href="#pf7" data-dest-detail='[7,"XYZ",28.346,255.118,null]'>Design Pattern</a><ul><li><a class="l" href="#pf8" data-dest-detail='[8,"XYZ",28.346,228.21,null]'>Singleton</a></li><li><a class="l" href="#pf9" data-dest-detail='[9,"XYZ",28.346,228.21,null]'>Pointer to IMPLementation (PIMPL)</a></li><li><a class="l" href="#pfd" data-dest-detail='[13,"XYZ",28.346,228.21,null]'>Curiously Recurring Template Pattern</a></li><li><a class="l" href="#pf10" data-dest-detail='[16,"XYZ",28.346,219.505,null]'>Template Virtual Functions</a></li></ul></li></ul></div>
|
||
</div>
|
||
<div id="page-container">
|
||
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Mo<span class="_ _0"></span>dern<span class="_ _1"> </span>C++</div><div class="t m0 x1 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">Programming</div><div class="t m0 x1 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">27.<span class="_ _2"> </span>Softw<span class="_ _3"></span>are<span class="_ _4"> </span>Design<span class="_ _4"> </span>I<span class="_ _0"></span>I<span class="_ _4"> </span>[DRAFT]</div><div class="t m0 x2 h4 y4 ff2 fs2 fc0 sc0 ls0 ws0">Design<span class="_ _5"> </span>P<span class="_ _6"></span>a<span class="_ _7"></span>tterns<span class="_ _5"> </span>and<span class="_ _5"> </span>Idioms</div><div class="t m0 x1 h5 y5 ff3 fs3 fc0 sc0 ls0 ws0">F<span class="_ _8"></span>ederico<span class="_ _9"> </span>Busato</div><div class="t m0 x3 h6 y6 ff4 fs4 fc0 sc0 ls0 ws0">2026-01-06</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _6"></span>able<span class="_ _a"> </span>of<span class="_ _a"> </span>Contents</div><div class="t m0 x5 h4 y8 ff1 fs4 fc2 sc0 ls0 ws0">1<span class="_ _b"> </span><span class="fs2 fc0">C++<span class="_ _5"> </span>Idioms</span></div><div class="t m0 x6 h6 y9 ff4 fs4 fc0 sc0 ls0 ws0">R<span class="_ _8"></span>ule<span class="_ _c"> </span>of<span class="_ _c"> </span>Zero</div><div class="t m0 x6 h6 ya ff4 fs4 fc0 sc0 ls0 ws0">R<span class="_ _8"></span>ule<span class="_ _c"> </span>of<span class="_ _c"> </span>Three</div><div class="t m0 x6 h6 yb ff4 fs4 fc0 sc0 ls0 ws0">R<span class="_ _8"></span>ule<span class="_ _c"> </span>of<span class="_ _c"> </span>Five</div><div class="t m0 x5 h4 yc ff1 fs4 fc2 sc0 ls0 ws0">2<span class="_ _b"> </span><span class="fs2 fc0">Design<span class="_ _5"> </span>P<span class="_ _d"></span>attern</span></div><div class="t m0 x6 h6 yd ff4 fs4 fc0 sc0 ls0 ws0">Singleton</div><div class="t m0 x6 h6 ye ff4 fs4 fc0 sc0 ls0 ws0">P<span class="_ _8"></span>ointer<span class="_ _c"> </span>to<span class="_ _c"> </span>IMPLementation<span class="_ _c"> </span>(PIMPL)</div><div class="t m0 x6 h6 yf ff4 fs4 fc0 sc0 ls0 ws0">Curiously<span class="_ _c"> </span>Recurring<span class="_ _c"> </span>T<span class="_ _7"></span>emplate<span class="_ _c"> </span>P<span class="_ _8"></span>attern</div><div class="t m0 x6 h6 y10 ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _c"> </span>Virtual<span class="_ _c"> </span>Functions</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">1/15</div><a class="l" href="#pf3" data-dest-detail='[3,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:196.397000px;width:84.716000px;height:13.782000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf4" data-dest-detail='[4,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:179.021000px;width:53.673000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><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:49.490000px;bottom:159.818000px;width:58.959000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf6" data-dest-detail='[6,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:140.615000px;width:51.847000px;height:8.911000px;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:47.076000px;bottom:109.832000px;width:101.132000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf8" data-dest-detail='[8,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:91.482000px;width:40.570000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf9" data-dest-detail='[9,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:71.725000px;width:157.576000px;height:11.821000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfd" data-dest-detail='[13,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:53.076000px;width:159.610000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf10" data-dest-detail='[16,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:33.873000px;width:115.650000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="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 x8 h2 y12 ff1 fs0 fc0 sc0 ls0 ws0">C++<span class="_ _1"> </span>Idioms</div><a class="l" href="#pf3" data-dest-detail='[3,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:134.352000px;width:144.921000px;height:22.106000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">R<span class="_ _d"></span>ule<span class="_ _a"> </span>of<span class="_ _a"> </span>Zero</div><div class="t m0 x1 h9 y13 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _8"></span>ule<span class="_ _9"> </span>of<span class="_ _9"> </span>Zero<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _e"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>for<span class="_ _c"> </span>C++</span></span></div><div class="t m0 x9 h9 y14 ff4 fs6 fc0 sc0 ls0 ws0">Utilize<span class="_ _e"> </span>the<span class="_ _e"> </span><span class="ff6">value<span class="_ _e"> </span>semantics<span class="_ _a"> </span></span>of<span class="_ _c"> </span>existing<span class="_ _e"> </span>types<span class="_ _e"> </span>to<span class="_ _e"> </span>avoid<span class="_ _e"> </span>having<span class="_ _9"> </span>to<span class="_ _e"> </span>implement<span class="_ _e"> </span><span class="ff6">custom</span></div><div class="t m0 x9 h9 y15 ff4 fs6 fc0 sc0 ls0 ws0">cop<span class="_ _8"></span>y<span class="_ _e"> </span>and<span class="_ _e"> </span>move<span class="_ _e"> </span>op<span class="_ _f"></span>erations</div><div class="t m0 x1 h9 y16 ff1 fs6 fc0 sc0 ls0 ws0">Note:<span class="_ _a"> </span><span class="ff4">many<span class="_ _e"> </span>classes<span class="_ _c"> </span>(such<span class="_ _c"> </span>as<span class="_ _e"> </span><span class="ff7">std<span class="_ _c"> </span></span>classes)<span class="_ _c"> </span>manage<span class="_ _e"> </span>resources<span class="_ _c"> </span>themselves<span class="_ _c"> </span>and<span class="_ _e"> </span>should<span class="_ _c"> </span>not</span></div><div class="t m0 x1 h9 y17 ff4 fs6 fc0 sc0 ls0 ws0">implement<span class="_ _e"> </span>cop<span class="_ _8"></span>y/move<span class="_ _e"> </span>constructo<span class="_ _8"></span>r<span class="_ _e"> </span>and<span class="_ _e"> </span>assignment<span class="_ _e"> </span>op<span class="_ _f"></span>erato<span class="_ _8"></span>r</div><div class="t m0 x1 ha y18 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">X<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 x1 ha y19 ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y1a ff8 fs7 fc0 sc0 ls0 ws0">X(...);<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>constructor</span></div><div class="t m0 xb ha y1b ff9 fs7 fc6 sc0 ls0 ws0">//<span class="_ _a"> </span>NO<span class="_ _10"> </span>need<span class="_ _a"> </span>to<span class="_ _10"> </span>define<span class="_ _a"> </span>copy/move<span class="_ _10"> </span>semantic</div><div class="t m0 x1 ha y1c ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y1d ff8 fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>vector<span class="fc5"><<span class="ff7 fc7">int</span>><span class="_ _11"> </span></span>v;<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>instead<span class="_ _a"> </span>raw<span class="_ _10"> </span>allocation</span></div><div class="t m0 xa ha y1e ff8 fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>unique_ptr<span class="fc5"><<span class="ff7 fc7">int</span>><span class="_ _a"> </span></span>p;<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>instead<span class="_ _10"> </span>raw<span class="_ _a"> </span>allocation</span></div><div class="t m0 x1 ha y1f ff8 fs7 fc0 sc0 ls0 ws0">};<span class="_ _12"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>see<span class="_ _10"> </span>smart<span class="_ _a"> </span>pointer</span></div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">2/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">R<span class="_ _d"></span>ule<span class="_ _a"> </span>of<span class="_ _a"> </span>Three</div><div class="t m0 x1 h9 y13 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _8"></span>ule<span class="_ _9"> </span>of<span class="_ _9"> </span>Three<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _e"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>for<span class="_ _c"> </span>C++(03)</span></span></div><div class="t m0 x9 h9 y14 ff4 fs6 fc0 sc0 ls0 ws0">If<span class="_ _e"> </span>y<span class="_ _8"></span>our<span class="_ _e"> </span>class<span class="_ _e"> </span>needs<span class="_ _e"> </span>any<span class="_ _e"> </span>of</div><div class="t m0 xc h9 y20 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">a<span class="_ _e"> </span>cop<span class="_ _8"></span>y<span class="_ _e"> </span>constructor<span class="_ _13"> </span><span class="ff7">X(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xc h9 y21 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>op<span class="_ _f"></span>erato<span class="_ _8"></span>r<span class="_ _15"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xc h9 y22 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">o<span class="_ _8"></span>r<span class="_ _e"> </span>a<span class="_ _e"> </span>destructor<span class="_ _13"> </span><span class="ffb">∼<span class="ff7">X()</span></span></span></div><div class="t m0 x9 h9 y23 ff4 fs6 fc0 sc0 ls0 ws0">defined<span class="_ _e"> </span>explicitly<span class="_ _7"></span>,<span class="_ _e"> </span>then<span class="_ _e"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>lik<span class="_ _8"></span>ely<span class="_ _e"> </span>to<span class="_ _e"> </span>need<span class="_ _e"> </span>all<span class="_ _e"> </span>three<span class="_ _e"> </span>of<span class="_ _e"> </span>them</div><div class="t m0 x1 h9 y24 ff4 fs6 fc0 sc0 ls0 ws0">Some<span class="_ _e"> </span>resources<span class="_ _e"> </span>cannot<span class="_ _e"> </span>o<span class="_ _8"></span>r<span class="_ _e"> </span>should<span class="_ _e"> </span>not<span class="_ _e"> </span>b<span class="_ _f"></span>e<span class="_ _e"> </span>copied.<span class="_ _10"> </span>In<span class="_ _e"> </span>this<span class="_ _e"> </span>case,<span class="_ _e"> </span>they<span class="_ _e"> </span>should<span class="_ _e"> </span>b<span class="_ _f"></span>e<span class="_ _c"> </span>declared</div><div class="t m0 x1 h9 y25 ff4 fs6 fc0 sc0 ls0 ws0">as<span class="_ _e"> </span>deleted</div><div class="t m0 xd hb y26 ffc fs4 fc0 sc0 ls0 ws0">X(const<span class="_ _5"> </span>X&)<span class="_ _10"> </span>=<span class="_ _5"> </span>delete</div><div class="t m0 xd hb y27 ffc fs4 fc0 sc0 ls0 ws0">X&<span class="_ _5"> </span>operator=(const<span class="_ _10"> </span>X&)<span class="_ _5"> </span>=<span class="_ _5"> </span>delete</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">3/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf6" class="pf w0 h0" data-page-no="6"><div class="pc pc6 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">R<span class="_ _d"></span>ule<span class="_ _a"> </span>of<span class="_ _a"> </span>Five</div><div class="t m0 x1 h9 y28 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">R<span class="_ _8"></span>ule<span class="_ _9"> </span>of<span class="_ _9"> </span>Five<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>rule<span class="_ _e"> </span>of<span class="_ _e"> </span>thumb<span class="_ _e"> </span>for<span class="_ _c"> </span><span class="fc8">C++11</span></span></span></div><div class="t m0 x9 h9 y29 ff4 fs6 fc0 sc0 ls0 ws0">If<span class="_ _e"> </span>y<span class="_ _8"></span>our<span class="_ _e"> </span>class<span class="_ _e"> </span>needs<span class="_ _e"> </span>any<span class="_ _e"> </span>of</div><div class="t m0 xc h9 y2a ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">a<span class="_ _e"> </span>cop<span class="_ _8"></span>y<span class="_ _e"> </span>constructor<span class="_ _13"> </span><span class="ff7">X(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xc h9 y2b ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">a<span class="_ _e"> </span>move<span class="_ _e"> </span>constructo<span class="_ _8"></span>r<span class="_ _15"> </span><span class="ff7">X(X&&)</span></span></div><div class="t m0 xc h9 y2c ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>op<span class="_ _f"></span>erato<span class="_ _8"></span>r<span class="_ _15"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xc h9 y2d ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">an<span class="_ _e"> </span>assignment<span class="_ _e"> </span>op<span class="_ _f"></span>erato<span class="_ _8"></span>r<span class="_ _15"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(X&&)</span></span></div><div class="t m0 xc h9 y2e ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">o<span class="_ _8"></span>r<span class="_ _e"> </span>a<span class="_ _e"> </span>destructor<span class="_ _13"> </span><span class="ffb">∼<span class="ff7">X()</span></span></span></div><div class="t m0 x9 h9 y2f ff4 fs6 fc0 sc0 ls0 ws0">defined<span class="_ _e"> </span>explicitly<span class="_ _7"></span>,<span class="_ _e"> </span>then<span class="_ _e"> </span>it<span class="_ _e"> </span>is<span class="_ _e"> </span>lik<span class="_ _8"></span>ely<span class="_ _e"> </span>to<span class="_ _e"> </span>need<span class="_ _e"> </span>all<span class="_ _e"> </span>five<span class="_ _e"> </span>of<span class="_ _e"> </span>them</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">4/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf7" class="pf w0 h0" data-page-no="7"><div class="pc pc7 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y12 ff1 fs0 fc0 sc0 ls0 ws0">Design<span class="_ _1"> </span>P<span class="_ _7"></span>attern</div><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:105.775000px;bottom:132.432000px;width:173.285000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAQ20lEQVR42u3Ya2zd5X3A8ecc28fO7fh27DgkcXzsJIvTJORCLguhEHFpwq3tJLaKIrV0Q4yJkikrmtA2pG7aoKNlCzB1FQts0LVrt4DGLRQSQpM2ITc7ISSG3Hxi52772Md2fDnOOWcvKG2lSZPWTVqqfT5vzqv/83/+v/O8+OqJNC2/NgAAwBXj+Hs/iZoCAABXGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMDPRbLZrCkAAHDlKCkpcZMKAMAVR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAIBfTfGv0V4HBgb8YQAAv5pJkyb9Gu3WTSoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVCAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIV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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Singleton</div><div class="t m0 x1 h9 y13 ff1 fs6 fc0 sc0 ls0 ws0">Singleton<span class="_ _e"> </span><span class="ff4">is<span class="_ _e"> </span>a<span class="_ _e"> </span>soft<span class="_ _8"></span>w<span class="_ _8"></span>are<span class="_ _c"> </span>design<span class="_ _e"> </span>pattern<span class="_ _e"> </span>that<span class="_ _e"> </span>restricts<span class="_ _e"> </span>the<span class="_ _e"> </span>instantiation<span class="_ _e"> </span>of<span class="_ _e"> </span>a<span class="_ _e"> </span>class<span class="_ _e"> </span>to<span class="_ _e"> </span>one</span></div><div class="t m0 x1 h9 y30 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _e"> </span>only<span class="_ _e"> </span>one<span class="_ _e"> </span>object<span class="_ _e"> </span>(<span class="ffd fs7">a<span class="_ _16"> </span>common<span class="_ _16"> </span>application<span class="_ _16"> </span>is<span class="_ _16"> </span>fo<span class="_ _8"></span>r<span class="_ _16"> </span>logging<span class="ff4 fs6">)</span></span></div><div class="t m0 x1 hc y31 ff7 fs5 fc3 sc0 ls0 ws0">class<span class="_ _17"> </span><span class="fc4">Singleton<span class="_ _17"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 x1 hc y32 ff7 fs5 fc3 sc0 ls0 ws0">public<span class="ffe fc5">:</span></div><div class="t m0 xc hc y33 ff7 fs5 fc3 sc0 ls0 ws0">static<span class="_ _17"> </span><span class="ffe fc0">Singleton<span class="fc5">&<span class="_ _17"> </span></span>get_instance()<span class="_ _17"> </span>{<span class="_ _18"> </span><span class="ff9 fc6">//<span class="_ _17"> </span>note<span class="_ _9"> </span>"static"</span></span></div><div class="t m0 xe hc y34 ff7 fs5 fc3 sc0 ls0 ws0">static<span class="_ _17"> </span><span class="ffe fc0">Singleton<span class="_ _17"> </span>instance<span class="_ _17"> </span>{<span class="_ _17"> </span>..init..<span class="_ _17"> </span>}<span class="_ _17"> </span>;</span></div><div class="t m0 xe hc y35 ff7 fs5 fc3 sc0 ls0 ws0">return<span class="_ _17"> </span><span class="ffe fc0">instance;<span class="_ _19"> </span><span class="ff9 fc6">//<span class="_ _17"> </span>destroyed<span class="_ _9"> </span>at<span class="_ _17"> </span>the<span class="_ _17"> </span>end<span class="_ _17"> </span>of<span class="_ _17"> </span>the<span class="_ _17"> </span>program</span></span></div><div class="t m0 xc hc y36 ffe fs5 fc0 sc0 ls0 ws0">}<span class="_ _1a"> </span><span class="ff9 fc6">//<span class="_ _17"> </span>initiliazed<span class="_ _9"> </span>at<span class="_ _17"> </span>first<span class="_ _17"> </span>use</span></div><div class="t m0 xc hc y37 ffe fs5 fc0 sc0 ls0 ws0">Singleton(<span class="ff7 fc3">const<span class="_ _17"> </span></span>Singleton<span class="fc5">&</span>)<span class="_ _1b"> </span><span class="fc5">=<span class="_ _17"> </span><span class="ff7 fc3">delete</span></span>;</div><div class="t m0 xc hc y38 ff7 fs5 fc7 sc0 ls0 ws0">void<span class="_ _17"> </span><span class="fc3">operator<span class="ffe fc5">=<span class="fc0">(</span></span>const<span class="_ _17"> </span><span class="ffe fc0">Singleton<span class="fc5">&</span>)<span class="_ _17"> </span><span class="fc5">=<span class="_ _17"> </span></span></span>delete<span class="ffe fc0">;</span></span></div><div class="t m0 xc hc y39 ff7 fs5 fc7 sc0 ls0 ws0">void<span class="_ _17"> </span><span class="ffe fc4">f<span class="fc0">()<span class="_ _17"> </span>{}</span></span></div><div class="t m0 x1 hc y3a ff7 fs5 fc3 sc0 ls0 ws0">private<span class="ffe fc5">:</span></div><div class="t m0 xc hc y3b ffe fs5 fc0 sc0 ls0 ws0">T<span class="_ _17"> </span>_data;</div><div class="t m0 xc hc y3c ffe fs5 fc0 sc0 ls0 ws0">Singleton(<span class="_ _17"> </span>..args..<span class="_ _17"> </span>)<span class="_ _17"> </span>{<span class="_ _17"> </span>...<span class="_ _17"> </span>}<span class="_ _18"> </span><span class="ff9 fc6">//<span class="_ _17"> </span>used<span class="_ _9"> </span>in<span class="_ _17"> </span>the<span class="_ _17"> </span>initialization</span></div><div class="t m0 x1 hc y3d ffe fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">5/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf9" class="pf w0 h0" data-page-no="9"><div class="pc pc9 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">P<span class="_ _d"></span>ointer<span class="_ _a"> </span>to<span class="_ _17"> </span>IMPLementation<span class="_ _a"> </span>(PIMPL)<span class="_ _17"> </span>-<span class="_ _a"> </span>Compilation<span class="_ _17"> </span>Firewalls</div><div class="t m0 x1 h9 y13 ff1 fs6 fc0 sc0 ls0 ws0">P<span class="_ _8"></span>ointer<span class="_ _9"> </span>to<span class="_ _9"> </span>IMPLementation<span class="_ _17"> </span>(PIMPL)<span class="_ _c"> </span><span class="ff4">idiom<span class="_ _e"> </span>allows<span class="_ _c"> </span>decoupling<span class="_ _e"> </span>the<span class="_ _e"> </span>interface<span class="_ _e"> </span>from</span></div><div class="t m0 x1 h9 y30 ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _e"> </span>implementation<span class="_ _e"> </span>in<span class="_ _e"> </span>a<span class="_ _e"> </span>clea<span class="_ _8"></span>r<span class="_ _e"> </span>w<span class="_ _8"></span>ay</div><div class="t m0 x1 hd y3e ff7 fs7 fc0 sc0 ls0 ws0">header.hpp</div><div class="t m0 x1 ha y3f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">A<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 x1 ha y40 ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y41 ff8 fs7 fc0 sc0 ls0 ws0">A();</div><div class="t m0 xa ha y42 fff fs7 fc0 sc0 ls0 ws0">∼<span class="ff8">A();</span></div><div class="t m0 xa ha y43 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">f<span class="fc0">();</span></span></div><div class="t m0 x1 ha y44 ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y45 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Impl<span class="ff8 fc0">;<span class="_ _1c"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>forward<span class="_ _10"> </span>declaration</span></span></span></div><div class="t m0 xa ha y46 ff8 fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">*<span class="_ _a"> </span></span>ptr;<span class="_ _1d"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>opaque<span class="_ _10"> </span>pointer</span></div><div class="t m0 x1 ha y47 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 h9 y48 ff4 fs6 fc0 sc0 ls0 ws0">NOTE:<span class="_ _e"> </span>The<span class="_ _e"> </span>class<span class="_ _e"> </span>do<span class="_ _f"></span>es<span class="_ _e"> </span>not<span class="_ _e"> </span>exp<span class="_ _f"></span>ose<span class="_ _c"> </span>internal<span class="_ _e"> </span>data<span class="_ _e"> </span>memb<span class="_ _f"></span>ers<span class="_ _e"> </span>or<span class="_ _c"> </span>metho<span class="_ _f"></span>ds</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">6/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfa" class="pf w0 h0" data-page-no="a"><div class="pc pca w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJvUlEQVR42u3YMWsbZxzH8Z9LlM3v4SlZ6kHiIoOL3a3FTgmRE6Q4ZD2nF1lY1pWTQjDduvRN9OV0KH0LydopU/GmpV0ak0IoNHhQms9nOW64e5773/Ll2brz5VcBAICN8frXXz4zBQAANo1IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDg2tZ6vTYFAAA2R6/Xc5IKAMDGEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAADcmFsf0V6vrq78MACAD7O9vf0R7dZJKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUIAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAAD8b2yt12tTAABgc/R6PSepAABsHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMC1W3/89LkpAJ+ON4c/GwLAhtvZ/zb17dtvb7eS5FX57Yck+f3HN+N3r7zX4zR5mpKTTHKYcSYpuZdxHuYkjzLJTgbJN+33l91serYqw6ra7feHVbVfTi/L14Nyv3523r5cns9Kvfiu3B+MBuW4fVk/O5+VL9pFOW3O6vnz0j4vj5un5WRyOJ6Ue+OHJ48mO4PkQUYZpc4qZ5nkMhc5TZt5ltlPHoxG9epscnlx2s6X+8lx2nS5SJ15ctx2F/U8OUqbRVY5Spsu0zQpGWaQKiUHKf+6Qj/jNJnmReap0/39xF76uZt+hqkyzF5y1C5WR203bcpwUJWD8s999cfN9MW87spB2evf7Q+r4V7+06p5//uSJ2nSZZlZ2iyuP6vKbkrypOmWs3ZRhoOq2i03tOIn708AuEF/ATpj4+rkJr2kAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">PIMPL<span class="_ _17"> </span>-<span class="_ _a"> </span>Implementation</div><div class="t m0 x1 he y49 ff7 fs7 fc0 sc0 ls0 ws0">source.cpp<span class="_ _16"> </span><span class="ffd">(<span class="ff8">Impl<span class="_ _16"> </span></span>actual<span class="_ _16"> </span>implementation)</span></div><div class="t m0 x1 ha y4a ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">A<span class="ff8 fc5">::<span class="fc0">Impl<span class="_ _10"> </span>{<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>could<span class="_ _a"> </span>be<span class="_ _10"> </span>a<span class="_ _a"> </span>class<span class="_ _10"> </span>with<span class="_ _a"> </span>a<span class="_ _10"> </span>complex<span class="_ _a"> </span>logic</span></span></span></span></div><div class="t m0 x1 ha y4b ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y4c ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">internal_f()<span class="_ _10"> </span>{</span></div><div class="t m0 xf ha y4d ff8 fs7 fc0 sc0 ls0 ws0">..<span class="ff7 fc3">do<span class="_ _a"> </span></span>something..</div><div class="t m0 xa ha y4e ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y4f ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y50 ff7 fs7 fc7 sc0 ls0 ws0">int<span class="_ _1d"> </span><span class="ff8 fc0">_data1;</span></div><div class="t m0 xa ha y51 ff7 fs7 fc7 sc0 ls0 ws0">float<span class="_ _a"> </span><span class="ff8 fc0">_data2;</span></div><div class="t m0 x1 ha y52 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y53 ff8 fs7 fc0 sc0 ls0 ws0">A<span class="fc5">::</span>A()<span class="_ _1e"> </span><span class="fc5">:<span class="_ _a"> </span></span>ptr{<span class="ff7 fc3">new<span class="_ _10"> </span></span>Impl()}<span class="_ _a"> </span>{}</div><div class="t m0 x1 ha y54 ff8 fs7 fc0 sc0 ls0 ws0">A<span class="fc5">::</span><span class="fff">∼</span>A()<span class="_ _1e"> </span>{<span class="_ _a"> </span><span class="ff7 fc3">delete<span class="_ _10"> </span></span>ptr;<span class="_ _a"> </span>}</div><div class="t m0 x1 ha y55 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">A<span class="fc5">::</span>f()<span class="_ _10"> </span>{<span class="_ _a"> </span>ptr<span class="fc5">-></span>internal_f();<span class="_ _10"> </span>}</span></div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">7/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfb" class="pf w0 h0" data-page-no="b"><div class="pc pcb w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">PIMPL<span class="_ _17"> </span>-<span class="_ _a"> </span>A<span class="_ _d"></span>dvantages,<span class="_ _a"> </span>Disadvantages</div><div class="t m0 x1 h9 y13 ff1 fs6 fc0 sc0 ls0 ws0">A<span class="_ _8"></span>dvantages<span class="ff4">:</span></div><div class="t m0 x10 h9 y56 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">ABI<span class="_ _e"> </span>stabilit<span class="_ _8"></span>y</span></div><div class="t m0 x10 h9 y57 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">Hide<span class="_ _e"> </span>p<span class="_ _8"></span>rivate<span class="_ _e"> </span>data<span class="_ _e"> </span>memb<span class="_ _f"></span>ers<span class="_ _e"> </span>and<span class="_ _e"> </span>metho<span class="_ _f"></span>ds</span></div><div class="t m0 x10 h9 y58 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">Reduce<span class="_ _e"> </span>compile<span class="_ _e"> </span>time<span class="_ _e"> </span>and<span class="_ _e"> </span>dep<span class="_ _f"></span>endencies</span></div><div class="t m0 x1 h9 y59 ff1 fs6 fc0 sc0 ls0 ws0">Disadvantages<span class="ff4">:</span></div><div class="t m0 x10 h9 y5a ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">Manual<span class="_ _e"> </span>resource<span class="_ _e"> </span>management</span></div><div class="t m0 xe h6 y5b ff4 fs4 fc0 sc0 ls0 ws0">-<span class="_ _18"> </span><span class="ffc">Impl*<span class="_ _5"> </span>ptr<span class="_ _1f"> </span></span>can<span class="_ _16"> </span>b<span class="_ _f"></span>e<span class="_ _c"> </span>replaced<span class="_ _c"> </span>by<span class="_ _1f"> </span><span class="ffc">unique_ptr<impl><span class="_ _5"> </span>ptr<span class="_ _1f"> </span></span>in<span class="_ _c"> </span><span class="fc8">C++11</span></div><div class="t m0 x10 h9 y5c ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff4">P<span class="_ _8"></span>erfo<span class="_ _8"></span>rmance:<span class="_ _10"> </span>p<span class="_ _f"></span>ointer<span class="_ _e"> </span>indirection<span class="_ _e"> </span>+<span class="_ _e"> </span>dynamic<span class="_ _e"> </span>memo<span class="_ _8"></span>ry</span></div><div class="t m0 xe h6 y5d ff4 fs4 fc0 sc0 ls0 ws0">-<span class="_ _5"> </span>dynamic<span class="_ _c"> </span>memo<span class="_ _8"></span>ry<span class="_ _c"> </span>could<span class="_ _16"> </span>b<span class="_ _f"></span>e<span class="_ _c"> </span>avoided<span class="_ _c"> </span>by<span class="_ _16"> </span>using<span class="_ _c"> </span>a<span class="_ _16"> </span>reserved<span class="_ _c"> </span>space<span class="_ _c"> </span>in<span class="_ _c"> </span>the<span class="_ _c"> </span>interface<span class="_ _c"> </span>e.g.</div><div class="t m0 x11 hb y5e ffc fs4 fc0 sc0 ls0 ws0">uint8_t<span class="_ _5"> </span>data[1024]</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">8/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfc" class="pf w0 h0" data-page-no="c"><div class="pc pcc w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">PIMPL<span class="_ _17"> </span>-<span class="_ _a"> </span>Implementation<span class="_ _17"> </span>Alternatives</div><div class="t m0 x1 h9 y5f ff4 fs6 fc0 sc0 ls0 ws0">What<span class="_ _e"> </span>pa<span class="_ _8"></span>rts<span class="_ _e"> </span>of<span class="_ _e"> </span>the<span class="_ _e"> </span>class<span class="_ _e"> </span>should<span class="_ _e"> </span>go<span class="_ _e"> </span>into<span class="_ _e"> </span>the<span class="_ _15"> </span><span class="ffc">Impl<span class="_ _15"> </span></span>object?</div><div class="t m0 x10 h9 y60 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff6">Put<span class="_ _e"> </span>all<span class="_ _e"> </span>p<span class="_ _8"></span>rivate<span class="_ _e"> </span>and<span class="_ _e"> </span>protected<span class="_ _c"> </span>memb<span class="_ _f"></span>ers<span class="_ _e"> </span>into<span class="_ _15"> </span><span class="ff9">Impl<span class="_ _16"> </span><span class="ff4">:</span></span></span></div><div class="t m0 x6 h9 y61 ff1 fs6 fc0 sc0 ls0 ws0">Erro<span class="_ _8"></span>r<span class="_ _9"> </span>prone<span class="ff4">.<span class="_ _a"> </span>Inheritance<span class="_ _e"> </span>is<span class="_ _e"> </span>hard<span class="_ _c"> </span>fo<span class="_ _8"></span>r<span class="_ _e"> </span>opaque<span class="_ _e"> </span>objects</span></div><div class="t m0 x10 h9 y62 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff6">Put<span class="_ _e"> </span>all<span class="_ _e"> </span>p<span class="_ _8"></span>rivate<span class="_ _e"> </span>memb<span class="_ _f"></span>ers<span class="_ _e"> </span>(but<span class="_ _e"> </span>not<span class="_ _e"> </span>functions)<span class="_ _e"> </span>into<span class="_ _15"> </span><span class="ff9">Impl<span class="_ _16"> </span><span class="ff4">:</span></span></span></div><div class="t m0 x6 h9 y63 ff1 fs6 fc0 sc0 ls0 ws0">Go<span class="_ _f"></span>o<span class="_ _f"></span>d<span class="ff4">.<span class="_ _10"> </span>Do<span class="_ _e"> </span>w<span class="_ _8"></span>e<span class="_ _e"> </span>need<span class="_ _e"> </span>to<span class="_ _e"> </span>exp<span class="_ _f"></span>ose<span class="_ _e"> </span>all<span class="_ _e"> </span>functions?</span></div><div class="t m0 x10 h9 y64 ffa fs6 fc0 sc0 ls0 ws0">•<span class="_ _5"> </span><span class="ff6">Put<span class="_ _e"> </span>everything<span class="_ _e"> </span>into<span class="_ _15"> </span><span class="ff9">Impl<span class="_ _16"> </span></span>,<span class="_ _c"> </span>and<span class="_ _e"> </span>write<span class="_ _e"> </span>the<span class="_ _e"> </span>public<span class="_ _e"> </span>class<span class="_ _e"> </span>itself<span class="_ _e"> </span>as<span class="_ _e"> </span>only<span class="_ _e"> </span>the<span class="_ _e"> </span>public</span></div><div class="t m0 x6 h9 y65 ff6 fs6 fc0 sc0 ls0 ws0">interface,<span class="_ _e"> </span>each<span class="_ _e"> </span>implemented<span class="_ _e"> </span>as<span class="_ _e"> </span>a<span class="_ _e"> </span>simple<span class="_ _e"> </span>fo<span class="_ _8"></span>rw<span class="_ _8"></span>arding<span class="_ _c"> </span>function<span class="ff4">:</span></div><div class="t m0 x6 h9 y66 ff1 fs6 fc0 sc0 ls0 ws0">Go<span class="_ _f"></span>o<span class="_ _f"></span>d</div><div class="t m0 x10 ha y67 ff8 fs7 fc9 sc0 ls0 ws0">https://herbsutter.com/gotw/_100/</div><div class="t m0 x7 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">9/15</div><a class="l" href="https://herbsutter.com/gotw/_100/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:6.477000px;width:157.335000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfd" class="pf w0 h0" data-page-no="d"><div class="pc pcd w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAKmklEQVR42u3Yv4scZRzH8c/MPM/eD28vF3OJ0ZzxoiEqARMVyckJCYiohRBCGhFDLARtbSyEeJ2glY02Vv4oBMU6ATsL/QO0EAsLOxvlsNnmLG4IF92TYHLenrxeyxd2h53ZuWe54b3TPHBmNQAAMDF++vab1ioAADBpRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAANc1o9HIKgAAMDlqre6kAgAwcUQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwH+o7KFzXV9fv/WDDIdD3zqAKzMw4dxJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAC7qxmNRlYBAIDJUWt1JxUAgIkjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAuK7soXNdX1/3hQEA/DvD4XAPna07qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFRLAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAD/rBmNRlYBAIDJUWt1JxUAgIkjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAA7qfz+zjGrAACbfn3mI4sAu+7hJ5/LKycGSZLl1bUvvruSnL/83sqFS39/78K1z27YvrGxsTHumNNJSpKsJfuSbLy9uf3nqx/3+zdJkt+ufrL5+tqnKxcuJWcO3rhPTZLMZKk/bptkrn++lGS45TPXkiwkGWw5h7Xre5Xd/A3wf/59s4fOp/hn3/Hvstzi++pt/6ua1P7zyphzGH/9uh3adH+ZkjZdunQp/auaNtNpMpMm+5OUbR6DdJneMvNps5A2R9PksSSDbR5TGWT6JmcmNbNb5o7UzI2ZYWrmU7OwzRxIyWJKDqXkrpQc7ufulBxJyfKWeTBdTqbLqXR5NF1W0+VculxIm5fS5vW0eSttvkyTX9Lk/SaZy9S2M59B5jOVhQxuevZnkDv7OZBBFrfMwQxyKIMcHjP39HMkgyz1c29qjvZzX2qWx8yx1NyfmuP9nEjNQ/2cTM0j/ZxKzel+Hk/NE6lZSc1qSp5KydmUnOvn6ZQ8m5LnU/JCSs6n5MWUvJySyyl5LSVvpOTNdLmSLmvp8m66fJAun6fL1+nyY7r8kTazTZuzTZsPmzYbTZMf2ibfu3TuMc0223buepckXX8FL6mpKZlOyWy6G2aYLvvSZTFtFtNmKW2Op8npNLmY5NU0+WrMsf8EkrxeCq0rQx8AAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _17"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _20"> </span>1/3</div><div class="t m0 x1 h9 y13 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _e"> </span><span class="ff1">Curiously<span class="_ _9"> </span>Recurring<span class="_ _9"> </span>T<span class="_ _7"></span>emplate<span class="_ _17"> </span>P<span class="_ _d"></span>attern<span class="_ _17"> </span>(CRTP)<span class="_ _c"> </span><span class="ff4">is<span class="_ _e"> </span>an<span class="_ _e"> </span>idiom<span class="_ _e"> </span>in<span class="_ _9"> </span>which<span class="_ _e"> </span>a<span class="_ _e"> </span>class</span></span></div><div class="t m0 xd h9 y30 ffc fs6 fc0 sc0 ls0 ws0">X<span class="_ _13"> </span><span class="ff4">derives<span class="_ _9"> </span>from<span class="_ _e"> </span>a<span class="_ _e"> </span>class<span class="_ _e"> </span>template<span class="_ _e"> </span>instantiation<span class="_ _e"> </span>using<span class="_ _13"> </span></span>X<span class="_ _15"> </span><span class="ff4">itself<span class="_ _e"> </span>as<span class="_ _e"> </span>template<span class="_ _e"> </span>argument</span></div><div class="t m0 x1 h9 y68 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _e"> </span>common<span class="_ _e"> </span>application<span class="_ _e"> </span>is<span class="_ _e"> </span><span class="ff6">static<span class="_ _e"> </span>p<span class="_ _f"></span>olymo<span class="_ _8"></span>rphism</span></div><div class="t m0 x1 ha y69 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ff8 fc5"><</span>class<span class="_ _10"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 x1 ha y6a ff7 fs7 fc3 sc0 ls0 ws0">struct<span class="_ _a"> </span><span class="fc4">Base<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xa ha y6b ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">my_method<span class="fc0">()<span class="_ _10"> </span>{</span></span></div><div class="t m0 xf ha y6c ff7 fs7 fc3 sc0 ls0 ws0">static_cast<span class="ff8 fc5"><<span class="fc0">T</span>*><span class="fc0">(</span></span>this<span class="ff8 fc0">)<span class="fc5">-></span>my_method_impl();</span></div><div class="t m0 xa ha y6d ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y6e ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y6f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Derived<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Base<span class="fc5"><</span>Derived<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 x1 ha y70 ff9 fs7 fc6 sc0 ls0 ws0">//<span class="_ _1c"> </span><span class="ff10">void<span class="_ _a"> </span>my_method()<span class="_ _a"> </span>is<span class="_ _10"> </span>inherited</span></div><div class="t m0 xa ha y71 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">my_method_impl<span class="fc0">()<span class="_ _10"> </span>{<span class="_ _a"> </span>...<span class="_ _10"> </span>}<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>private<span class="_ _a"> </span>method</span></span></span></div><div class="t m0 x1 ha y72 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">10/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfe" class="pf w0 h0" data-page-no="e"><div class="pc pce w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAKgElEQVR42u3YvYtl9R3A4c95uzu77qxjXI0vG7Ory0YRfCW4YQWFIMYiIItNEBctBNOmsRDMdAGt0iRNKhMLwZBaIV0K/QOSQlJY2Nkoi800Y+FFZuMMSKJkRp/n8oV7D/ece+Z3mcPnnuGuRy4FAACHxr/f+8doFQAAOGxEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAXxp2dnasAgAAh8eyLO6kAgBw6IhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAC+d+YjdK5Xr171hQEA/Hc2NzeP0Nm6kwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEi1BAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARKolAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAAOk2FnZ8cqAABweCzL4k4qAACHjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAMBhN3/6u3NWAQCOro+f+JNF4Dvmnp/9ohcurKo6e2n77fdfraeff/3i5Stffe/Wu29es313d3d3v2NuVHPVdl1f7f72i+0fvvPGev+hqk/e+fMXr9/9y8XLV+qRm67dZ6nqeGfWxx2rk+vnZ6rNPZ+5XW1Vqz3nsP3lXvP/8zfAd/n3zRE6n9k/+7f+Xc7/4/uWb/yvGlrWnzfvcw77X7++CWPTf8zc2NTU1Lx+tTS20dDxhm6o5gMeq6Y29sypxrYau6Ohh6rVAY9jrdr4mnO8pRN75rqWTu4zmy2damnrgLmxudPN3dzcD5u7ZT23Nnd7c2f3zE+aurep+5t6sKlLTT3e1OXGnm3s14290thfG/qood8PdbJjB86pVp3qWFutvvbc0KofrOfGVp3eMze16uZW3bLP3Lae21t1Zj0/aumO9fy4pbP7zLmW7mzp/HoutHT3eu5t6b713N/SA+t5uKWftnSxpUvNPdrcY809vp6fN/dkc08198vmnm7uV80919zzzb3U3G+ae7mpV5vabuq1pv7Q1FtN/b2pD5r6rLETw9hjw9gfh7HdYehf49A/XTqPmOGAbd/e9a5qWl/B55aW5jaaO9F0zWw2dX1Tpxs73diZxs439EBDz1QvNvS3fY79OYhcVQxc8tcmAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _17"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _20"> </span>2/3</div><div class="t m0 x1 ha y73 ff9 fs7 fca sc0 ls0 ws0">#<span class="_ _21"> </span>include<span class="_ _1f"> </span><span class="fc6"><iostream></span></div><div class="t m0 x1 ha y74 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ff8 fc5"><</span>typename<span class="_ _10"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 x1 ha y75 ff7 fs7 fc3 sc0 ls0 ws0">struct<span class="_ _a"> </span><span class="fc4">Writer<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xa ha y76 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">write<span class="fc0">(</span></span><span class="fc3">const<span class="_ _10"> </span></span>char<span class="ff8 fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _10"> </span>{</span></span></div><div class="t m0 xf ha y77 ff7 fs7 fc3 sc0 ls0 ws0">static_cast<span class="ff8 fc5"><</span>const<span class="_ _a"> </span><span class="ff8 fc0">T<span class="fc5">*></span>(</span>this<span class="ff8 fc0">)<span class="fc5">-></span>write_impl(str);</span></div><div class="t m0 xa ha y78 ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y79 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y7a ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">CerrWriter<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Writer<span class="fc5"><</span>CerrWriter<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 xa ha y7b ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">write_impl<span class="fc0">(</span></span><span class="fc3">const<span class="_ _10"> </span></span>char<span class="ff8 fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _10"> </span>{<span class="_ _1c"> </span>std</span>::<span class="fc0">cerr<span class="_ _a"> </span></span><<<span class="_ _a"> </span><span class="fc0">str;<span class="_ _1c"> </span>}</span></span></div><div class="t m0 x1 ha y7c ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y7d ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">CoutWriter<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Writer<span class="fc5"><</span>CoutWriter<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 xa ha y7e ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc4">write_impl<span class="fc0">(</span></span><span class="fc3">const<span class="_ _10"> </span></span>char<span class="ff8 fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _10"> </span>{<span class="_ _1c"> </span>std</span>::<span class="fc0">cout<span class="_ _a"> </span></span><<<span class="_ _a"> </span><span class="fc0">str;<span class="_ _1c"> </span>}</span></span></div><div class="t m0 x1 ha y7f ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha y80 ff8 fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _a"> </span>x;</div><div class="t m0 x1 ha y81 ff8 fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _a"> </span>y;</div><div class="t m0 x1 ha y82 ff8 fs7 fc0 sc0 ls0 ws0">x.write(<span class="fcb">"abc"</span>);</div><div class="t m0 x1 ha y83 ff8 fs7 fc0 sc0 ls0 ws0">y.write(<span class="fcb">"abc"</span>);</div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">11/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pff" class="pf w0 h0" data-page-no="f"><div class="pc pcf w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAKf0lEQVR42u3YvYtl9R3A4c95uzu77qyjrsbEjdlV8YUFVxOCKxtQCBItArKkEXHRQtDWxkLQ6QStbLSx8qUQlNQK6VIkf0AsQgqLdDaGJc00k8KLzOoMSKJmVp7n8oV7D/ece+Z3mcPnnuH2By4EAACHxj/+8ufRKgAAcNiIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAvjLs7OxYBQAADo9lWdxJBQDg0BGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAABwa81V0rpcvX/aFAQD8dzY3N6+is3UnFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoJAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICqYWdnxyoAAHB4LMviTioAAIeOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKRaAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAADhc5n+9esYqAAA/sM8fedsicJB7Hny0Z+5cVXX6wvaHf325Hn/69fMXL33zvVufvH/F9t3d3d39jrlRzVXbdW21+8qX2z/7+J31/kNVX3z87pevP3nv/MVL9cCNV+6zVHW0U+vjjtXx9fNT1eaez9yutqrVnnPY/mqv+f/5G+DH/PvmKjqf2T/79/5dzv/j+5bv/K8aWtafN+9zDvtfv74LY9PXZm5sampqXr9aGtto6GhD11XzAY9VUxt75kRjW43d2tAvq9UBjyOt2viWc7SlY3vmmpaO7zObLZ1oaeuAuaG5k83d1NxPmrt5PT9t7pbmTu+Zu5o629S5pu5v6kJTDzd1sbEnG3u+sZca+6ihfzb0xlDHO3LgnGjViY601epbz3Wtun49N7Tq5J65sVU3termfeZn67mlVafW8/OWbl3PL1o6vc+caem2lu5Yz50t3b2esy3du55zLd23nl+19OuWzrd0obnfNPdQcw+v57fN/a65x5r7fXOPN/dEc08193RzzzX3QnMvNvVyU9tNvdbUm0190NSfmvp7U/9u7Ngw9tAw9tYwtjsMfToO/c2l8yozHLDt+7veVU3rK/jc0tLcRnPHmq6YzaaubepkYycbO9XYHQ3d19Afqmcb+uM+x/4PYrdVDBAhG68AAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _17"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _20"> </span>3/3</div><div class="t m0 x1 ha y84 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ff8 fc5"><</span>typename<span class="_ _10"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 x1 ha y85 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">f(Writer<span class="fc5"><</span>T<span class="fc5">>&<span class="_ _10"> </span></span>writer)<span class="_ _a"> </span>{</span></div><div class="t m0 xa ha y86 ff8 fs7 fc0 sc0 ls0 ws0">writer.write(<span class="fcb">"abc);</span></div><div class="t m0 x1 ha y87 ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y88 ff8 fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _a"> </span>x;</div><div class="t m0 x1 ha y89 ff8 fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _a"> </span>y;</div><div class="t m0 x1 ha y8a ff8 fs7 fc0 sc0 ls0 ws0">f(x);</div><div class="t m0 x1 ha y8b ff8 fs7 fc0 sc0 ls0 ws0">f(y);</div><div class="t m0 x10 ha y8c ff8 fs7 fc9 sc0 ls0 ws0"><span class="fcc sc0">CRTP</span><span class="_ _a"> </span><span class="fcc sc0">C++</span><span class="_ _10"> </span><span class="fcc sc0">Examples</span></div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">12/15</div><a class="l" href="http://www.vishalchovatiya.com/crtp-c-examples/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:-15.491000px;width:82.018000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf10" class="pf w0 h0" data-page-no="10"><div class="pc pc10 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAKf0lEQVR42u3YvYtl9R3A4c95uzu72VnHOBpfVrNG0YjgK2FXNqAgohaCLGlEFC0Cpk2TIqDTBWKVJjZWaoqAYu1CuhT6ByRFsEiRziaypJlmLLzIrM6gGE1ml+e5fOHewz3nnvld5vC5Z7jj7PkAAODI+PjDv45WAQCAo0akAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADwhWF3d9cqAABwdCzL4k4qAABHjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAFyN5ivoXC9duuQLAwD4djY3N6+gs3UnFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoJAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAfMWwu7trFQAAODqWZXEnFQCAI0ekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAb2f+9He3WwUAgK/1yRNvWoT/jXseeaqX71pVdeb8zrsfvVrPvvT6uQsvfvW9Wxf/dNn2vb29vYOOuVHNVTt1TbX32ufb//nBW+v9h6r+/cHbn7+++M65Cy/W2esv32ep6nin18cdq5Pr56erzX2fuVNtVat957DzxV7z//M3wNX8++YKOp/ZP/v3/l3O/+X7lu/8rxpa1p83H3AOB1+/vgtj05dmbmxqampev1oa22joeEPXVvMhj1VTG/vmVGNbjd3W0EPV6pDHsVZtfMM53tKJffODlk4eMJstnWpp65C5rrnt5m5o7kfN3biem5q7pbkz++bupu5t6v6mHmzqfFOPNXWhsecb+1Vjv23svYb+1dAfhjrZsUPnVKtOdaytVt94rm3VD9dzXau29831rbqhVTceMDev55ZWnV7PrS3dtp4ft3TmgLm9pZ+0dOd67mrpp+u5t6X71nN/Sw+s5+GWftbSuZbON/fz5h5t7rH1PN7ck8093dwzzT3b3HPNvdDcS8290tyvm/tNU682tdPU75v6Y1N/buovTf2jqf80dmIYe3QYe2MY2xuG/j4O/c2l8wozHLLt+7veVU3rK/jc0tLcRnMnmi6bzaauaWq7se3GTjd2Z0MPNPSL6pcNvX/AsT8D0eBVDLIo14oAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _6"></span>emplate<span class="_ _a"> </span>Virtual<span class="_ _17"> </span>Function<span class="_ _22"> </span>1/3</div><div class="t m0 x1 h9 y8d ff1 fs6 fc0 sc0 ls0 ws0">Virtual<span class="_ _9"> </span>functions<span class="_ _9"> </span>cannot<span class="_ _17"> </span>have<span class="_ _9"> </span>template<span class="_ _9"> </span>arguments<span class="ff4">,<span class="_ _c"> </span>but<span class="_ _e"> </span>they<span class="_ _e"> </span>can<span class="_ _e"> </span>b<span class="_ _f"></span>e<span class="_ _e"> </span>emulated<span class="_ _e"> </span>by</span></div><div class="t m0 x1 h9 y8e ff4 fs6 fc0 sc0 ls0 ws0">using<span class="_ _e"> </span>the<span class="_ _e"> </span>follo<span class="_ _8"></span>wing<span class="_ _e"> </span>pattern</div><div class="t m0 x1 ha y8f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Base<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 x1 ha y90 ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y91 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ff8 fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 xa ha y92 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">method(T<span class="_ _10"> </span>t)<span class="_ _a"> </span>{</span></div><div class="t m0 xf ha y93 ff8 fs7 fc0 sc0 ls0 ws0">v_method(t);<span class="_ _1e"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>call<span class="_ _10"> </span>the<span class="_ _a"> </span>actual<span class="_ _10"> </span>implementation</span></div><div class="t m0 xa ha y94 ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y95 ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y96 ff7 fs7 fc3 sc0 ls0 ws0">virtual<span class="_ _a"> </span><span class="fc7">void<span class="_ _10"> </span><span class="ff8 fc0">v_method(</span>int<span class="_ _a"> </span><span class="ff8 fc0">t)<span class="_ _1e"> </span><span class="fc5">=<span class="_ _10"> </span>0</span>;<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>v_method<span class="_ _a"> </span>is<span class="_ _10"> </span>valid<span class="_ _a"> </span>only</span></span></span></div><div class="t m0 xa ha y97 ff7 fs7 fc3 sc0 ls0 ws0">virtual<span class="_ _a"> </span><span class="fc7">void<span class="_ _10"> </span><span class="ff8 fc4">v_method<span class="fc0">(</span></span>double<span class="_ _a"> </span><span class="ff8 fc0">t)<span class="_ _10"> </span><span class="fc5">=<span class="_ _a"> </span>0</span>;<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>for<span class="_ _10"> </span>"int"<span class="_ _a"> </span>and<span class="_ _10"> </span>"double"</span></span></span></div><div class="t m0 x1 ha y98 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">13/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf11" class="pf w0 h0" data-page-no="11"><div class="pc pc11 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAKl0lEQVR42u3Yv4scZRzH8c/MPM/eD28vF3OJ0Zwx0RCVgImK5OSEBETUQghHGhFDLARtbSyEeJ2glY02Vv4oBMU6ATsL/QO0EAsLOxvlsNnmLG4IF92D6CVkL3m9li/sDjuzs8/C8N5pHjq9EgAAmBi/fP9daxUAAJg0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgKua0WhkFQAAmBy1VndSAQCYOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAB3umIJADatr6/v/CDD4dCXAtg5d1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwK3VjEYjqwAAwOSotbqTCgDAxBGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAuN2VXXSu6+vrfjAAgP9nOBzuorN1JxUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAd4BmNBpZBQAAJket1Z1UAAAmjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCA/6j8+d5RqwAAcLv6/blPdt05P/r0C3nt+CBJcmRl7asfLiXnLn6wvHrh3+9duPLFNds3NjY2xh1zOklJkrVkT5KNdze3/3r5037/Jknyx+XPNl9f+Xx59UJyev+1+9QkyUyW+uO2Seb650tJhls+cy3JQpLBlnNYu7pXuZX/AW7n/ze76HxKuNm/Zdnh++oN/1ZNav95Zcw5jL9+3Qhtun9MSZsuXbqU/lVNm+k0mUmTvUnKNo9Bukxvmfm0WUibw2nyRJLBNo+pDDJ9nTOTmtktc1dq5sbMMDXzqVnYZvalZDElB1JyT0oO9nNvSg6l5MiWeThdTqTLyXR5PF1W0uVsuqymzStp82bavJM2X6fJb2nyYZPMZWrbmc8g85nKQgbXPXszyN397Msgi1tmfwY5kEEOjpn7+jmUQZb6uT81h/t5IDVHxszR1DyYmmP9HE/NI/2cSM1j/ZxMzal+nkzNU6lZTs1KSp5JyZmUnO3n2ZQ8n5IXU/JSSs6l5OWUvJqSiyl5IyVvpeTtdLmULmvp8n66fJQuX6bLt+nyc7r8lTazTZszTZuPmzYbTZOf2iY/unTuMs02227e9S5Juv4KXlJTUzKdktl018wwXfaky2LaLKbNUtocS5NTaXI+yetp8s2YY/8NNb9eCnwEXkwAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _6"></span>emplate<span class="_ _a"> </span>Virtual<span class="_ _17"> </span>Function<span class="_ _22"> </span>2/3</div><div class="t m0 x1 h9 y13 ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _8"></span>ctual<span class="_ _e"> </span>implementations<span class="_ _e"> </span>fo<span class="_ _8"></span>r<span class="_ _e"> </span>derived<span class="_ _e"> </span>class<span class="_ _15"> </span><span class="ffc">A<span class="_ _15"> </span></span>and<span class="_ _13"> </span><span class="ffc">B</span></div><div class="t m0 x1 ha y99 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">AImpl<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Base<span class="_ _a"> </span>{</span></div><div class="t m0 x1 ha y9a ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ff8 fc5">:</span></div><div class="t m0 xa ha y9b ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ff8 fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 xa ha y9c ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">t_method(T<span class="_ _10"> </span>t)<span class="_ _a"> </span>{<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>template<span class="_ _10"> </span>"method()"<span class="_ _a"> </span>implementation<span class="_ _10"> </span>for<span class="_ _a"> </span>A</span></span></div><div class="t m0 xf ha y9d ff8 fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>cout<span class="_ _a"> </span><span class="fc5"><<<span class="_ _10"> </span><span class="fcb">"A<span class="_ _a"> </span>"<span class="_ _10"> </span></span><<<span class="_ _a"> </span></span>t<span class="_ _10"> </span><span class="fc5"><<<span class="_ _a"> </span></span>std<span class="fc5">::</span>endl;</div><div class="t m0 xa ha y9e ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y9f ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha ya0 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">BImpl<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Base<span class="_ _a"> </span>{</span></div><div class="t m0 x1 ha ya1 ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ff8 fc5">:</span></div><div class="t m0 xa ha ya2 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ff8 fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ff8 fc5">></span></span></div><div class="t m0 xa ha ya3 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">t_method(T<span class="_ _10"> </span>t)<span class="_ _a"> </span>{<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>template<span class="_ _10"> </span>"method()"<span class="_ _a"> </span>implementation<span class="_ _10"> </span>for<span class="_ _a"> </span>B</span></span></div><div class="t m0 xf ha ya4 ff8 fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>cout<span class="_ _a"> </span><span class="fc5"><<<span class="_ _10"> </span><span class="fcb">"B<span class="_ _a"> </span>"<span class="_ _10"> </span></span><<<span class="_ _a"> </span></span>t<span class="_ _10"> </span><span class="fc5"><<<span class="_ _a"> </span></span>std<span class="fc5">::</span>endl;</div><div class="t m0 xa ha ya5 ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha ya6 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">14/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf12" class="pf w0 h0" data-page-no="12"><div class="pc pc12 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI1ElEQVR42u3ZsU0DMRSAYRudSwuQWADRsAEFG8EOtIyRPjUjUDAEJQsgd6+io0gXlNM9k+9bINbzKfnzrt49PBYAAEjj8+P9whQAAMhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8KtGhCkAAJBHa80mFQCAdEQqAAAiFQAARCoAACIVAABEKgAAIhUAANa2THTWMYYLA/LovfuaAub6mpqITSoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVCAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAD4qxoRpgAAQB6tNZtUAADSEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAABwpGWis44xXNixeu+ulUmfDQDOmU0qAADpLEYAQHJzvXLxmgJOwiYVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAGxrMQIAkuu9GwKcG5tUAADSmWmT6p80AMCZsEkFACCdGhGznHWM4cI2kX+H7dnwbADwn7TWbFIBAEhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAnVSPCFAAAyKO1ZpMKAEA6IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAACwpuX79dYUAADI4+blq1yXWkop5f6tlKddKZf7bc7yvFv7E672bhwADlrAryNJ/QDSqjCE+tKkGgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _6"></span>emplate<span class="_ _a"> </span>Virtual<span class="_ _17"> </span>Function<span class="_ _22"> </span>3/3</div><div class="t m0 x1 ha ya7 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ff8 fc5"><</span>class<span class="_ _a"> </span><span class="fc4">Impl<span class="ff8 fc5">></span></span></div><div class="t m0 x1 ha ya8 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">DerivedWrapper<span class="_ _10"> </span><span class="ff8 fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _10"> </span><span class="ff8 fc0">Impl<span class="_ _a"> </span>{</span></div><div class="t m0 x1 ha ya9 ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xa ha yaa ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">v_method(</span>int<span class="_ _10"> </span><span class="ff8 fc0">t)<span class="_ _a"> </span></span><span class="fc3">override<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xf ha yab ff8 fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">::</span>t_method(t);</div><div class="t m0 xa ha yac ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa ha yad ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ff8 fc0">v_method(</span>double<span class="_ _10"> </span><span class="ff8 fc0">t)<span class="_ _a"> </span></span><span class="fc3">override<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xf ha yae ff8 fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">::</span>t_method(t);</div><div class="t m0 xa ha yaf ff8 fs7 fc0 sc0 ls0 ws0">}<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>call<span class="_ _a"> </span>the<span class="_ _10"> </span>base<span class="_ _a"> </span>method</span></div><div class="t m0 x1 ha yb0 ff8 fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 ha yb1 ff7 fs7 fc3 sc0 ls0 ws0">using<span class="_ _a"> </span><span class="ff8 fc0">A<span class="_ _10"> </span><span class="fc5">=<span class="_ _a"> </span></span>DerivedWrapper<span class="fc5"><</span>AImpl<span class="fc5">></span>;</span></div><div class="t m0 x1 ha yb2 ff7 fs7 fc3 sc0 ls0 ws0">using<span class="_ _a"> </span><span class="ff8 fc0">B<span class="_ _10"> </span><span class="fc5">=<span class="_ _a"> </span></span>DerivedWrapper<span class="fc5"><</span>BImpl<span class="fc5">></span>;</span></div><div class="t m0 x13 ha ya7 ff7 fs7 fc7 sc0 ls0 ws0">int<span class="_ _a"> </span><span class="ff8 fc4">main<span class="fc0">(</span></span>int<span class="_ _10"> </span><span class="ff8 fc0">argc,<span class="_ _a"> </span></span>char<span class="ff8 fc5">*<span class="_ _10"> </span><span class="fc0">argv[])<span class="_ _a"> </span>{</span></span></div><div class="t m0 x14 ha ya8 ff8 fs7 fc0 sc0 ls0 ws0">A<span class="_ _a"> </span>a;</div><div class="t m0 x14 ha ya9 ff8 fs7 fc0 sc0 ls0 ws0">B<span class="_ _a"> </span>b;</div><div class="t m0 x14 ha yaa ff8 fs7 fc0 sc0 ls0 ws0">Base<span class="fc5">*<span class="_ _a"> </span></span>base<span class="_ _10"> </span><span class="fc5">=<span class="_ _a"> </span><span class="ff7 fc3">nullptr</span></span>;</div><div class="t m0 x14 ha yac ff8 fs7 fc0 sc0 ls0 ws0">base<span class="_ _a"> </span><span class="fc5">=<span class="_ _10"> </span>&</span>a;</div><div class="t m0 x14 ha yad ff8 fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">1</span>);<span class="_ _1d"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>print<span class="_ _a"> </span>"A<span class="_ _10"> </span>1"</span></div><div class="t m0 x14 ha yae ff8 fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">2.0</span>);<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>print<span class="_ _a"> </span>"A<span class="_ _10"> </span>2.0"</span></div><div class="t m0 x14 ha yb0 ff8 fs7 fc0 sc0 ls0 ws0">base<span class="_ _a"> </span><span class="fc5">=<span class="_ _10"> </span>&</span>b;</div><div class="t m0 x14 ha yb3 ff8 fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">1</span>);<span class="_ _1d"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>print<span class="_ _a"> </span>"B<span class="_ _10"> </span>1"</span></div><div class="t m0 x14 ha yb1 ff8 fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">2.0</span>);<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>print<span class="_ _a"> </span>"B<span class="_ _10"> </span>2.0"</span></div><div class="t m0 x13 ha yb2 ff8 fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h9 yb4 ff7 fs6 fc0 sc0 ls0 ws0">method()<span class="_ _13"> </span><span class="ff4">calls<span class="_ _15"> </span></span>v_method()<span class="_ _15"> </span><span class="ff4">(pure<span class="_ _e"> </span>virtual<span class="_ _e"> </span>metho<span class="_ _f"></span>d<span class="_ _e"> </span>of<span class="_ _15"> </span><span class="ffc">Base<span class="_ _16"> </span></span>)</span></div><div class="t m0 xd h9 yb5 ff7 fs6 fc0 sc0 ls0 ws0">v_method()<span class="_ _13"> </span><span class="ff4">calls<span class="_ _15"> </span></span>t_method()<span class="_ _15"> </span><span class="ff4">(actual<span class="_ _e"> </span>implementation)</span></div><div class="t m0 x12 h8 y11 ff5 fs5 fc0 sc0 ls0 ws0">15/15</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
</div>
|
||
<div class="loading-indicator">
|
||
<img alt="" src="data:image/png;base64,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"/>
|
||
</div>
|
||
</body>
|
||
</html>
|