688 lines
226 KiB
HTML
688 lines
226 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,d09GRgABAAAAAATcAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcoqQZIEdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOtf5BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABgAAAAZHRuLQNoZWFkAAABMAAAADIAAAA2KauSQWhoZWEAAAFkAAAAHgAAACQEWgNzaG10eAAAAegAAAAUAAAAFAVwADhsb2NhAAACRAAAAAwAAAAMAAAAMm1heHAAAAGEAAAAHQAAACAASAAkbmFtZQAAArAAAAG9AAADUdeLrL9wb3N0AAAEcAAAACkAAAA0cF7CxnicY2BkYGBgYjgStYXbMZ7f5isDN/MLoAjD44PLg+C0BUMr00XGfCCXA6gWCABhCwv7AAB4nGNgZGBgzGcAAmYuEMl0kSGFQZIBGbACACbrAdQAAHicY2BkYGBgZVBkANEMDExAzAhmO4D5DAAGEABtAAAAeJxjYGRsZZzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIHaAcQLSXFOAlIKSDWM+WDIfroYBACguCggAAAABGAAAAAAAAAFNAAAAAQAAAwoAOHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAMnicY2BksGBoZbrImM+gwMDAKMKmrKSux6isxMfEDmKbmpgZG4nLMRobmZkDWUwXY7zcQh3dtMW0tWWY2Nn5oFzjEGZmbj5GP98aHysdASV7TVYhBTDb30OKgQEAGKsRBnicrVLLattAFD2j2IZCSXftppS7CSQLDbKEF8kyJgkYywlWXAJdjRPZFrY1QVIw/ob8SukiH9Xv6JE07cKLdlMNmnvmvs+dAXCMH1Bov69/sMIHdeKwh54aOnyESL053MEn76PDXRx7Y4d71L/SU3Xe8fS9iaqxwhfVddjDezVw+AgLNXK4A61+OtzFZ0873IP2vmEIi2fsUSDDEitUEIQIuCL4XC0+p3ZOL8ElNPcRDB6xZuwOJWVGnUGOp8amETdek8beetYepzznTaaUlQw2WPBkm/2eugfKGRJcYcpdcEN5S80dT2fMiKF93hfZclVJGASR73M/l/leLrWMzOPa7sp1JiZ/kpGOtUzsjspMTm0u83RlNguxC7lPH2SWXE0TuZnezu6SM+Yds+GYDVVsKyHNLVu0bK9En+QxjmNTrZL9dm43ZZ+KmlhBr5oCJrbYGsrrhl3VyIKzTJtJaiYQXPD/exGfXFNGvVBjGN/GRI2l7+4hxIBlbF5d22KZSqgDuZCD5vxpunzZmIKWKPD7HFE4+BfBw9qHhH/nrF9zSnvJ22xvsuVXvxWhMS3KjLNmX0Ek/63oL+ZZlVQAAAB4nGNgYmD4//Hb7v9NDBoM2AArEDMyMDEwMzKxF2fmZuYkFgEA/qMIUwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9OODy4NgNABN1gd8AAA=')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,d09GRgABAAAAAATQAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcoqQZJEdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADMAAAA2KcCSRWhoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG3AAADRawH+Yxwb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjiSqjbrYjy/zVcGbuYXQBGGxweXh8BpS4YGpqeMJUAuB1AtEAAAfDAMsAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUstq20AUPaPYhkLxsqssLpRCApFQJLJIViUmMZjICVJcsh3HY1vY1gRJwXjXD2r7Tf2UHklDoaVkVQ2699z3YwbAED+g0H1ffmOFofrosIeB+uzwESL13eEePnhDh/sYeiOHB9R/pafqvaP0rY1qsMKx6jvs4b2KHD7CQo0d7uFM/XS4j2Pvk8MDnHkpRrB4wQElcqywRg1BhJAnhs/T4Utq5/QSXCMgnUDjGRvG7lGR59RpFFi0tgBJ6zVt7Z1n43FCuWgzGVbS2GJJybb0kbon8hky3CAlFYzJ76l5oHTKjBjZl0OZr9a1RGEY+z7ppcwPch3IRD9v7L7a5KKLhUyCJJCp3VOZy4ktZG7WersUu5RH8ySz7CbNZJzezx6yU+a9Y8MJG6rZVsYxd2zRsr2Kg+MuSXS9zg67ud1WlJupSro0/WNqy50mv21Hq1tecpGmXWPA1Qmu+L9VweeYhjGvlDWju4iYsT7O3RVEuGARW9S3tlwZiYJQruTPzvzUrF63uqQhDv1zLie6eHu0vwvj3wmbR2xorniJ3QV2kzVPRGg0ZZVzxewpjOX/VPwFMEOTxAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9OODy0NgNABN6geAAAA=')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.302286px;}
|
||
._0{width:3.073600px;}
|
||
._20{width:6.240614px;}
|
||
._16{width:12.302226px;}
|
||
._c{width:13.445534px;}
|
||
._e{width:14.541758px;}
|
||
._9{width:15.589581px;}
|
||
._10{width:16.928492px;}
|
||
._a{width:18.200582px;}
|
||
._15{width:19.387792px;}
|
||
._5{width:21.691454px;}
|
||
._14{width:22.909110px;}
|
||
._1e{width:24.390877px;}
|
||
._13{width:26.776883px;}
|
||
._4{width:31.159050px;}
|
||
._b{width:32.418280px;}
|
||
._17{width:33.855850px;}
|
||
._1{width:36.288314px;}
|
||
._1b{width:38.285018px;}
|
||
._2{width:40.911750px;}
|
||
._18{width:50.805739px;}
|
||
._1c{width:57.114458px;}
|
||
._1d{width:75.317760px;}
|
||
._11{width:84.654034px;}
|
||
._1a{width:101.595727px;}
|
||
._19{width:372.601943px;}
|
||
._12{width:440.347887px;}
|
||
._1f{width:802.088792px;}
|
||
._21{width:1053.922682px;}
|
||
.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;}
|
||
.y0{bottom:-0.500000px;}
|
||
.y8c{bottom:8.962000px;}
|
||
.ya6{bottom:10.911000px;}
|
||
.y3d{bottom:10.993000px;}
|
||
.y67{bottom:11.254000px;}
|
||
.y83{bottom:11.582000px;}
|
||
.ybf{bottom:12.736000px;}
|
||
.y11{bottom:13.018000px;}
|
||
.y1f{bottom:20.429000px;}
|
||
.y3c{bottom:21.877000px;}
|
||
.y48{bottom:22.521000px;}
|
||
.ya5{bottom:23.514000px;}
|
||
.y82{bottom:24.185000px;}
|
||
.y72{bottom:25.555000px;}
|
||
.ybe{bottom:28.317000px;}
|
||
.y1e{bottom:31.313000px;}
|
||
.y27{bottom:32.236000px;}
|
||
.y3b{bottom:32.761000px;}
|
||
.y55{bottom:34.114000px;}
|
||
.ya4{bottom:36.116000px;}
|
||
.y5e{bottom:36.543000px;}
|
||
.y81{bottom:36.787000px;}
|
||
.y10{bottom:36.806000px;}
|
||
.y71{bottom:38.158000px;}
|
||
.y1d{bottom:42.197000px;}
|
||
.y6{bottom:42.285000px;}
|
||
.y3a{bottom:43.645000px;}
|
||
.y26{bottom:45.984000px;}
|
||
.y54{bottom:46.716000px;}
|
||
.ya3{bottom:48.719000px;}
|
||
.y80{bottom:49.390000px;}
|
||
.y5d{bottom:50.291000px;}
|
||
.y70{bottom:50.760000px;}
|
||
.y98{bottom:51.484000px;}
|
||
.y47{bottom:52.888000px;}
|
||
.y1c{bottom:53.081000px;}
|
||
.y66{bottom:54.293000px;}
|
||
.y2f{bottom:54.627000px;}
|
||
.ybd{bottom:55.137000px;}
|
||
.yf{bottom:56.009000px;}
|
||
.yb2{bottom:56.185000px;}
|
||
.y5{bottom:58.960000px;}
|
||
.y53{bottom:59.319000px;}
|
||
.y25{bottom:59.732000px;}
|
||
.ya2{bottom:61.322000px;}
|
||
.y7f{bottom:61.993000px;}
|
||
.y6f{bottom:63.363000px;}
|
||
.y1b{bottom:63.965000px;}
|
||
.y97{bottom:64.087000px;}
|
||
.y5c{bottom:64.393000px;}
|
||
.y39{bottom:65.413000px;}
|
||
.y46{bottom:65.491000px;}
|
||
.ybc{bottom:67.739000px;}
|
||
.yb1{bottom:68.788000px;}
|
||
.y65{bottom:69.874000px;}
|
||
.y24{bottom:73.481000px;}
|
||
.ya1{bottom:73.924000px;}
|
||
.y7e{bottom:74.595000px;}
|
||
.y1a{bottom:74.849000px;}
|
||
.ye{bottom:75.212000px;}
|
||
.y96{bottom:76.689000px;}
|
||
.y45{bottom:78.094000px;}
|
||
.y2e{bottom:78.652000px;}
|
||
.ybb{bottom:80.342000px;}
|
||
.y8b{bottom:83.507000px;}
|
||
.y52{bottom:84.524000px;}
|
||
.y5b{bottom:84.956000px;}
|
||
.y64{bottom:85.456000px;}
|
||
.y19{bottom:85.734000px;}
|
||
.ya0{bottom:86.527000px;}
|
||
.y38{bottom:87.182000px;}
|
||
.y7d{bottom:87.198000px;}
|
||
.y6e{bottom:88.568000px;}
|
||
.y95{bottom:89.292000px;}
|
||
.y44{bottom:90.696000px;}
|
||
.yba{bottom:92.945000px;}
|
||
.yb0{bottom:93.993000px;}
|
||
.yd{bottom:94.415000px;}
|
||
.y8a{bottom:96.110000px;}
|
||
.y18{bottom:96.618000px;}
|
||
.y51{bottom:97.127000px;}
|
||
.y37{bottom:98.066000px;}
|
||
.y2d{bottom:98.446000px;}
|
||
.y5a{bottom:99.058000px;}
|
||
.y7c{bottom:99.801000px;}
|
||
.y6d{bottom:101.171000px;}
|
||
.y94{bottom:101.895000px;}
|
||
.y23{bottom:102.186000px;}
|
||
.y43{bottom:103.299000px;}
|
||
.yaf{bottom:106.596000px;}
|
||
.y89{bottom:108.713000px;}
|
||
.y50{bottom:109.730000px;}
|
||
.y9f{bottom:111.732000px;}
|
||
.y7b{bottom:112.403000px;}
|
||
.yc{bottom:113.618000px;}
|
||
.y6c{bottom:113.774000px;}
|
||
.y17{bottom:113.955000px;}
|
||
.y93{bottom:114.497000px;}
|
||
.y63{bottom:114.985000px;}
|
||
.y42{bottom:115.902000px;}
|
||
.y4{bottom:116.359000px;}
|
||
.yb9{bottom:118.150000px;}
|
||
.y2c{bottom:118.240000px;}
|
||
.yae{bottom:119.198000px;}
|
||
.y36{bottom:119.834000px;}
|
||
.y59{bottom:121.035000px;}
|
||
.y88{bottom:121.315000px;}
|
||
.y4f{bottom:122.332000px;}
|
||
.y9e{bottom:124.335000px;}
|
||
.y7a{bottom:125.006000px;}
|
||
.y22{bottom:126.210000px;}
|
||
.y6b{bottom:126.376000px;}
|
||
.y92{bottom:127.100000px;}
|
||
.y41{bottom:128.504000px;}
|
||
.y16{bottom:129.537000px;}
|
||
.y62{bottom:130.566000px;}
|
||
.y35{bottom:130.718000px;}
|
||
.yb8{bottom:130.753000px;}
|
||
.yad{bottom:131.801000px;}
|
||
.y4e{bottom:134.935000px;}
|
||
.y2b{bottom:136.810000px;}
|
||
.y9d{bottom:136.938000px;}
|
||
.y79{bottom:137.609000px;}
|
||
.y12{bottom:138.248000px;}
|
||
.y3{bottom:138.377000px;}
|
||
.y6a{bottom:138.979000px;}
|
||
.y91{bottom:139.703000px;}
|
||
.y40{bottom:141.107000px;}
|
||
.y34{bottom:141.602000px;}
|
||
.yb{bottom:141.611000px;}
|
||
.yb7{bottom:143.355000px;}
|
||
.yac{bottom:144.404000px;}
|
||
.y21{bottom:146.004000px;}
|
||
.y87{bottom:146.521000px;}
|
||
.y4d{bottom:147.538000px;}
|
||
.y9c{bottom:149.540000px;}
|
||
.y78{bottom:150.211000px;}
|
||
.y69{bottom:151.582000px;}
|
||
.y90{bottom:152.305000px;}
|
||
.y33{bottom:152.486000px;}
|
||
.y58{bottom:152.974000px;}
|
||
.y3f{bottom:153.710000px;}
|
||
.y2a{bottom:155.381000px;}
|
||
.yab{bottom:157.006000px;}
|
||
.y86{bottom:159.123000px;}
|
||
.y61{bottom:160.096000px;}
|
||
.y4c{bottom:160.140000px;}
|
||
.ya{bottom:160.814000px;}
|
||
.y9b{bottom:162.143000px;}
|
||
.y77{bottom:162.814000px;}
|
||
.y32{bottom:163.371000px;}
|
||
.y20{bottom:164.575000px;}
|
||
.y8f{bottom:164.908000px;}
|
||
.y15{bottom:166.044000px;}
|
||
.y3e{bottom:168.554000px;}
|
||
.yb6{bottom:168.561000px;}
|
||
.y57{bottom:169.086000px;}
|
||
.yaa{bottom:169.609000px;}
|
||
.y68{bottom:170.556000px;}
|
||
.y85{bottom:171.726000px;}
|
||
.y4b{bottom:172.743000px;}
|
||
.y31{bottom:174.255000px;}
|
||
.y29{bottom:174.424000px;}
|
||
.y9a{bottom:174.746000px;}
|
||
.y76{bottom:175.417000px;}
|
||
.y60{bottom:175.677000px;}
|
||
.y2{bottom:177.832000px;}
|
||
.y9{bottom:180.017000px;}
|
||
.yb5{bottom:181.163000px;}
|
||
.y14{bottom:181.626000px;}
|
||
.ya9{bottom:182.212000px;}
|
||
.y84{bottom:184.329000px;}
|
||
.y56{bottom:185.198000px;}
|
||
.y4a{bottom:185.346000px;}
|
||
.y8e{bottom:186.726000px;}
|
||
.y99{bottom:187.348000px;}
|
||
.y75{bottom:188.019000px;}
|
||
.y30{bottom:191.592000px;}
|
||
.yb4{bottom:193.766000px;}
|
||
.ya8{bottom:194.814000px;}
|
||
.y5f{bottom:197.211000px;}
|
||
.y1{bottom:198.454000px;}
|
||
.y8{bottom:199.220000px;}
|
||
.y49{bottom:200.190000px;}
|
||
.y74{bottom:200.622000px;}
|
||
.y8d{bottom:202.308000px;}
|
||
.y28{bottom:204.954000px;}
|
||
.yb3{bottom:206.369000px;}
|
||
.y13{bottom:207.174000px;}
|
||
.ya7{bottom:207.417000px;}
|
||
.y73{bottom:213.225000px;}
|
||
.y7{bottom:236.149000px;}
|
||
.ha{height:22.124998px;}
|
||
.h8{height:23.910300px;}
|
||
.hc{height:24.818995px;}
|
||
.hd{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;}
|
||
.xa{left:31.335000px;}
|
||
.x5{left:34.488000px;}
|
||
.x10{left:36.225000px;}
|
||
.x9{left:37.711000px;}
|
||
.xd{left:45.590000px;}
|
||
.xb{left:48.272000px;}
|
||
.x6{left:50.486000px;}
|
||
.x11{left:63.207000px;}
|
||
.xe{left:65.208000px;}
|
||
.xf{left:68.994000px;}
|
||
.x12{left:74.972000px;}
|
||
.xc{left:82.145000px;}
|
||
.x8{left:106.772000px;}
|
||
.x2{left:125.114000px;}
|
||
.x14{left:229.997000px;}
|
||
.x15{left:248.827000px;}
|
||
.x3{left:378.705000px;}
|
||
.x13{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.736382pt;}
|
||
._0{width:4.098134pt;}
|
||
._20{width:8.320819pt;}
|
||
._16{width:16.402968pt;}
|
||
._c{width:17.927378pt;}
|
||
._e{width:19.389011pt;}
|
||
._9{width:20.786108pt;}
|
||
._10{width:22.571323pt;}
|
||
._a{width:24.267443pt;}
|
||
._15{width:25.850389pt;}
|
||
._5{width:28.921939pt;}
|
||
._14{width:30.545480pt;}
|
||
._1e{width:32.521170pt;}
|
||
._13{width:35.702511pt;}
|
||
._4{width:41.545400pt;}
|
||
._b{width:43.224373pt;}
|
||
._17{width:45.141133pt;}
|
||
._1{width:48.384419pt;}
|
||
._1b{width:51.046690pt;}
|
||
._2{width:54.549000pt;}
|
||
._18{width:67.740985pt;}
|
||
._1c{width:76.152610pt;}
|
||
._1d{width:100.423680pt;}
|
||
._11{width:112.872046pt;}
|
||
._1a{width:135.460970pt;}
|
||
._19{width:496.802591pt;}
|
||
._12{width:587.130516pt;}
|
||
._1f{width:1069.451723pt;}
|
||
._21{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;}
|
||
.y0{bottom:-0.666667pt;}
|
||
.y8c{bottom:11.949333pt;}
|
||
.ya6{bottom:14.548000pt;}
|
||
.y3d{bottom:14.657333pt;}
|
||
.y67{bottom:15.005333pt;}
|
||
.y83{bottom:15.442667pt;}
|
||
.ybf{bottom:16.981333pt;}
|
||
.y11{bottom:17.357333pt;}
|
||
.y1f{bottom:27.238667pt;}
|
||
.y3c{bottom:29.169333pt;}
|
||
.y48{bottom:30.028000pt;}
|
||
.ya5{bottom:31.352000pt;}
|
||
.y82{bottom:32.246667pt;}
|
||
.y72{bottom:34.073333pt;}
|
||
.ybe{bottom:37.756000pt;}
|
||
.y1e{bottom:41.750667pt;}
|
||
.y27{bottom:42.981333pt;}
|
||
.y3b{bottom:43.681333pt;}
|
||
.y55{bottom:45.485333pt;}
|
||
.ya4{bottom:48.154667pt;}
|
||
.y5e{bottom:48.724000pt;}
|
||
.y81{bottom:49.049333pt;}
|
||
.y10{bottom:49.074667pt;}
|
||
.y71{bottom:50.877333pt;}
|
||
.y1d{bottom:56.262667pt;}
|
||
.y6{bottom:56.380000pt;}
|
||
.y3a{bottom:58.193333pt;}
|
||
.y26{bottom:61.312000pt;}
|
||
.y54{bottom:62.288000pt;}
|
||
.ya3{bottom:64.958667pt;}
|
||
.y80{bottom:65.853333pt;}
|
||
.y5d{bottom:67.054667pt;}
|
||
.y70{bottom:67.680000pt;}
|
||
.y98{bottom:68.645333pt;}
|
||
.y47{bottom:70.517333pt;}
|
||
.y1c{bottom:70.774667pt;}
|
||
.y66{bottom:72.390667pt;}
|
||
.y2f{bottom:72.836000pt;}
|
||
.ybd{bottom:73.516000pt;}
|
||
.yf{bottom:74.678667pt;}
|
||
.yb2{bottom:74.913333pt;}
|
||
.y5{bottom:78.613333pt;}
|
||
.y53{bottom:79.092000pt;}
|
||
.y25{bottom:79.642667pt;}
|
||
.ya2{bottom:81.762667pt;}
|
||
.y7f{bottom:82.657333pt;}
|
||
.y6f{bottom:84.484000pt;}
|
||
.y1b{bottom:85.286667pt;}
|
||
.y97{bottom:85.449333pt;}
|
||
.y5c{bottom:85.857333pt;}
|
||
.y39{bottom:87.217333pt;}
|
||
.y46{bottom:87.321333pt;}
|
||
.ybc{bottom:90.318667pt;}
|
||
.yb1{bottom:91.717333pt;}
|
||
.y65{bottom:93.165333pt;}
|
||
.y24{bottom:97.974667pt;}
|
||
.ya1{bottom:98.565333pt;}
|
||
.y7e{bottom:99.460000pt;}
|
||
.y1a{bottom:99.798667pt;}
|
||
.ye{bottom:100.282667pt;}
|
||
.y96{bottom:102.252000pt;}
|
||
.y45{bottom:104.125333pt;}
|
||
.y2e{bottom:104.869333pt;}
|
||
.ybb{bottom:107.122667pt;}
|
||
.y8b{bottom:111.342667pt;}
|
||
.y52{bottom:112.698667pt;}
|
||
.y5b{bottom:113.274667pt;}
|
||
.y64{bottom:113.941333pt;}
|
||
.y19{bottom:114.312000pt;}
|
||
.ya0{bottom:115.369333pt;}
|
||
.y38{bottom:116.242667pt;}
|
||
.y7d{bottom:116.264000pt;}
|
||
.y6e{bottom:118.090667pt;}
|
||
.y95{bottom:119.056000pt;}
|
||
.y44{bottom:120.928000pt;}
|
||
.yba{bottom:123.926667pt;}
|
||
.yb0{bottom:125.324000pt;}
|
||
.yd{bottom:125.886667pt;}
|
||
.y8a{bottom:128.146667pt;}
|
||
.y18{bottom:128.824000pt;}
|
||
.y51{bottom:129.502667pt;}
|
||
.y37{bottom:130.754667pt;}
|
||
.y2d{bottom:131.261333pt;}
|
||
.y5a{bottom:132.077333pt;}
|
||
.y7c{bottom:133.068000pt;}
|
||
.y6d{bottom:134.894667pt;}
|
||
.y94{bottom:135.860000pt;}
|
||
.y23{bottom:136.248000pt;}
|
||
.y43{bottom:137.732000pt;}
|
||
.yaf{bottom:142.128000pt;}
|
||
.y89{bottom:144.950667pt;}
|
||
.y50{bottom:146.306667pt;}
|
||
.y9f{bottom:148.976000pt;}
|
||
.y7b{bottom:149.870667pt;}
|
||
.yc{bottom:151.490667pt;}
|
||
.y6c{bottom:151.698667pt;}
|
||
.y17{bottom:151.940000pt;}
|
||
.y93{bottom:152.662667pt;}
|
||
.y63{bottom:153.313333pt;}
|
||
.y42{bottom:154.536000pt;}
|
||
.y4{bottom:155.145333pt;}
|
||
.yb9{bottom:157.533333pt;}
|
||
.y2c{bottom:157.653333pt;}
|
||
.yae{bottom:158.930667pt;}
|
||
.y36{bottom:159.778667pt;}
|
||
.y59{bottom:161.380000pt;}
|
||
.y88{bottom:161.753333pt;}
|
||
.y4f{bottom:163.109333pt;}
|
||
.y9e{bottom:165.780000pt;}
|
||
.y7a{bottom:166.674667pt;}
|
||
.y22{bottom:168.280000pt;}
|
||
.y6b{bottom:168.501333pt;}
|
||
.y92{bottom:169.466667pt;}
|
||
.y41{bottom:171.338667pt;}
|
||
.y16{bottom:172.716000pt;}
|
||
.y62{bottom:174.088000pt;}
|
||
.y35{bottom:174.290667pt;}
|
||
.yb8{bottom:174.337333pt;}
|
||
.yad{bottom:175.734667pt;}
|
||
.y4e{bottom:179.913333pt;}
|
||
.y2b{bottom:182.413333pt;}
|
||
.y9d{bottom:182.584000pt;}
|
||
.y79{bottom:183.478667pt;}
|
||
.y12{bottom:184.330667pt;}
|
||
.y3{bottom:184.502667pt;}
|
||
.y6a{bottom:185.305333pt;}
|
||
.y91{bottom:186.270667pt;}
|
||
.y40{bottom:188.142667pt;}
|
||
.y34{bottom:188.802667pt;}
|
||
.yb{bottom:188.814667pt;}
|
||
.yb7{bottom:191.140000pt;}
|
||
.yac{bottom:192.538667pt;}
|
||
.y21{bottom:194.672000pt;}
|
||
.y87{bottom:195.361333pt;}
|
||
.y4d{bottom:196.717333pt;}
|
||
.y9c{bottom:199.386667pt;}
|
||
.y78{bottom:200.281333pt;}
|
||
.y69{bottom:202.109333pt;}
|
||
.y90{bottom:203.073333pt;}
|
||
.y33{bottom:203.314667pt;}
|
||
.y58{bottom:203.965333pt;}
|
||
.y3f{bottom:204.946667pt;}
|
||
.y2a{bottom:207.174667pt;}
|
||
.yab{bottom:209.341333pt;}
|
||
.y86{bottom:212.164000pt;}
|
||
.y61{bottom:213.461333pt;}
|
||
.y4c{bottom:213.520000pt;}
|
||
.ya{bottom:214.418667pt;}
|
||
.y9b{bottom:216.190667pt;}
|
||
.y77{bottom:217.085333pt;}
|
||
.y32{bottom:217.828000pt;}
|
||
.y20{bottom:219.433333pt;}
|
||
.y8f{bottom:219.877333pt;}
|
||
.y15{bottom:221.392000pt;}
|
||
.y3e{bottom:224.738667pt;}
|
||
.yb6{bottom:224.748000pt;}
|
||
.y57{bottom:225.448000pt;}
|
||
.yaa{bottom:226.145333pt;}
|
||
.y68{bottom:227.408000pt;}
|
||
.y85{bottom:228.968000pt;}
|
||
.y4b{bottom:230.324000pt;}
|
||
.y31{bottom:232.340000pt;}
|
||
.y29{bottom:232.565333pt;}
|
||
.y9a{bottom:232.994667pt;}
|
||
.y76{bottom:233.889333pt;}
|
||
.y60{bottom:234.236000pt;}
|
||
.y2{bottom:237.109333pt;}
|
||
.y9{bottom:240.022667pt;}
|
||
.yb5{bottom:241.550667pt;}
|
||
.y14{bottom:242.168000pt;}
|
||
.ya9{bottom:242.949333pt;}
|
||
.y84{bottom:245.772000pt;}
|
||
.y56{bottom:246.930667pt;}
|
||
.y4a{bottom:247.128000pt;}
|
||
.y8e{bottom:248.968000pt;}
|
||
.y99{bottom:249.797333pt;}
|
||
.y75{bottom:250.692000pt;}
|
||
.y30{bottom:255.456000pt;}
|
||
.yb4{bottom:258.354667pt;}
|
||
.ya8{bottom:259.752000pt;}
|
||
.y5f{bottom:262.948000pt;}
|
||
.y1{bottom:264.605333pt;}
|
||
.y8{bottom:265.626667pt;}
|
||
.y49{bottom:266.920000pt;}
|
||
.y74{bottom:267.496000pt;}
|
||
.y8d{bottom:269.744000pt;}
|
||
.y28{bottom:273.272000pt;}
|
||
.yb3{bottom:275.158667pt;}
|
||
.y13{bottom:276.232000pt;}
|
||
.ya7{bottom:276.556000pt;}
|
||
.y73{bottom:284.300000pt;}
|
||
.y7{bottom:314.865333pt;}
|
||
.ha{height:29.499997pt;}
|
||
.h8{height:31.880400pt;}
|
||
.hc{height:33.091994pt;}
|
||
.hd{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;}
|
||
.xa{left:41.780000pt;}
|
||
.x5{left:45.984000pt;}
|
||
.x10{left:48.300000pt;}
|
||
.x9{left:50.281333pt;}
|
||
.xd{left:60.786667pt;}
|
||
.xb{left:64.362667pt;}
|
||
.x6{left:67.314667pt;}
|
||
.x11{left:84.276000pt;}
|
||
.xe{left:86.944000pt;}
|
||
.xf{left:91.992000pt;}
|
||
.x12{left:99.962667pt;}
|
||
.xc{left:109.526667pt;}
|
||
.x8{left:142.362667pt;}
|
||
.x2{left:166.818667pt;}
|
||
.x14{left:306.662667pt;}
|
||
.x15{left:331.769333pt;}
|
||
.x3{left:504.940000pt;}
|
||
.x13{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,223.344,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">26.<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">2025-01-30</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 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="_ _e"> </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="_ _c"> </span>should<span class="_ _e"> </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 xa ha y18 ff7 fs5 fc3 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc4">X<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xa ha y19 ff7 fs5 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xb ha y1a ff8 fs5 fc0 sc0 ls0 ws0">X(...);<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>constructor</span></div><div class="t m0 xc ha y1b ff9 fs5 fc6 sc0 ls0 ws0">//<span class="_ _10"> </span>NO<span class="_ _9"> </span>need<span class="_ _10"> </span>to<span class="_ _10"> </span>define<span class="_ _10"> </span>copy/move<span class="_ _10"> </span>semantic</div><div class="t m0 xa ha y1c ff7 fs5 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xb ha y1d ff8 fs5 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="_ _10"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>instead<span class="_ _9"> </span>raw<span class="_ _10"> </span>allocation</span></div><div class="t m0 xb ha y1e ff8 fs5 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>unique_ptr<span class="fc5"><<span class="ff7 fc7">int</span>><span class="_ _10"> </span></span>p;<span class="_ _10"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>instead<span class="_ _9"> </span>raw<span class="_ _10"> </span>allocation</span></div><div class="t m0 xa ha y1f ff8 fs5 fc0 sc0 ls0 ws0">};<span class="_ _12"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>see<span class="_ _9"> </span>smart<span class="_ _10"> </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="_ _10"> </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 xd 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>constructo<span class="_ _8"></span>r<span class="_ _13"> </span><span class="ff7">X(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xd 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="_ _13"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xd 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>destructo<span class="_ _8"></span>r<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="_ _15"> </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 xa hb y26 ffc fs4 fc0 sc0 ls0 ws0">X(const<span class="_ _5"> </span>X&)<span class="_ _15"> </span>=<span class="_ _5"> </span>delete</div><div class="t m0 xa hb y27 ffc fs4 fc0 sc0 ls0 ws0">X&<span class="_ _5"> </span>operator=(const<span class="_ _15"> </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="_ _10"> </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 xd 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>constructo<span class="_ _8"></span>r<span class="_ _13"> </span><span class="ff7">X(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xd 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="_ _13"> </span><span class="ff7">X(X&&)</span></span></div><div class="t m0 xd 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="_ _13"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(const<span class="_ _14"> </span>X&)</span></span></div><div class="t m0 xd 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="_ _13"> </span><span class="ff7">X&<span class="_ _14"> </span>operator=(X&&)</span></span></div><div class="t m0 xd 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>destructo<span class="_ _8"></span>r<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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdklEQVR42u3YsQkCMRiG4YtcsDqcQaycQMRauM1cwnEsHMINrI6rTBMLwd5r/APPM0H40rz8aXc4dQAAEMbjfltZAQCAaEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAABfqZRiBQAA4sg5u6QCABCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAAMv0Db11nmcfBgCwzDAMDb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQBoUyqlWAEAgDhyzi6pAACEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQDgR/102VoB/u55vhoBAD72xzGlzbpOr66rtRoEAIAQ3h16GgJyQCZjAAAAAElFTkSuQmCC"/><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>a<span class="_ _8"></span>re<span class="_ _e"> </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 xa ha y31 ff7 fs5 fc3 sc0 ls0 ws0">class<span class="_ _10"> </span><span class="fc4">Singleton<span class="_ _10"> </span><span class="ff8 fc0">{</span></span></div><div class="t m0 xa ha y32 ff7 fs5 fc3 sc0 ls0 ws0">public<span class="ff8 fc5">:</span></div><div class="t m0 xb ha y33 ff7 fs5 fc3 sc0 ls0 ws0">static<span class="_ _10"> </span><span class="ff8 fc0">Singleton<span class="fc5">&<span class="_ _10"> </span></span>get_instance()<span class="_ _10"> </span>{<span class="_ _17"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>note<span class="_ _9"> </span>"static"</span></span></div><div class="t m0 xe ha y34 ff7 fs5 fc3 sc0 ls0 ws0">static<span class="_ _10"> </span><span class="ff8 fc0">Singleton<span class="_ _10"> </span>instance<span class="_ _10"> </span>{<span class="_ _10"> </span>..init..<span class="_ _10"> </span>}<span class="_ _10"> </span>;</span></div><div class="t m0 xe ha y35 ff7 fs5 fc3 sc0 ls0 ws0">return<span class="_ _10"> </span><span class="ff8 fc0">instance;<span class="_ _18"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>destroyed<span class="_ _9"> </span>at<span class="_ _10"> </span>the<span class="_ _10"> </span>end<span class="_ _10"> </span>of<span class="_ _10"> </span>the<span class="_ _10"> </span>program</span></span></div><div class="t m0 xb ha y36 ff8 fs5 fc0 sc0 ls0 ws0">}<span class="_ _19"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>initiliazed<span class="_ _9"> </span>at<span class="_ _10"> </span>first<span class="_ _10"> </span>use</span></div><div class="t m0 xb ha y37 ff8 fs5 fc0 sc0 ls0 ws0">Singleton(<span class="ff7 fc3">const<span class="_ _10"> </span></span>Singleton<span class="fc5">&</span>)<span class="_ _1a"> </span><span class="fc5">=<span class="_ _10"> </span><span class="ff7 fc3">delete</span></span>;</div><div class="t m0 xb ha y38 ff7 fs5 fc7 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="fc3">operator<span class="ff8 fc5">=<span class="fc0">(</span></span>const<span class="_ _10"> </span><span class="ff8 fc0">Singleton<span class="fc5">&</span>)<span class="_ _10"> </span><span class="fc5">=<span class="_ _10"> </span></span></span>delete<span class="ff8 fc0">;</span></span></div><div class="t m0 xb ha y39 ff7 fs5 fc7 sc0 ls0 ws0">void<span class="_ _10"> </span><span class="ff8 fc4">f<span class="fc0">()<span class="_ _10"> </span>{}</span></span></div><div class="t m0 xa ha y3a ff7 fs5 fc3 sc0 ls0 ws0">private<span class="ff8 fc5">:</span></div><div class="t m0 xb ha y3b ff8 fs5 fc0 sc0 ls0 ws0">T<span class="_ _10"> </span>_data;</div><div class="t m0 xb ha y3c ff8 fs5 fc0 sc0 ls0 ws0">Singleton(<span class="_ _10"> </span>..args..<span class="_ _10"> </span>)<span class="_ _10"> </span>{<span class="_ _10"> </span>...<span class="_ _10"> </span>}<span class="_ _17"> </span><span class="ff9 fc6">//<span class="_ _10"> </span>used<span class="_ _9"> </span>in<span class="_ _10"> </span>the<span class="_ _10"> </span>initialization</span></div><div class="t m0 xa ha y3d ff8 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="_ _10"> </span>IMPLementation<span class="_ _a"> </span>(PIMPL)<span class="_ _10"> </span>-<span class="_ _a"> </span>Compilation<span class="_ _10"> </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="_ _10"> </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>a<span class="_ _8"></span>y</div><div class="t m0 x1 hc y3e ff7 fs7 fc0 sc0 ls0 ws0">header.hpp</div><div class="t m0 xa hd y3f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">A<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 xa hd y40 ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y41 ffe fs7 fc0 sc0 ls0 ws0">A();</div><div class="t m0 x6 hd y42 fff fs7 fc0 sc0 ls0 ws0">∼<span class="ffe">A();</span></div><div class="t m0 x6 hd y43 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">f<span class="fc0">();</span></span></div><div class="t m0 xa hd y44 ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y45 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Impl<span class="ffe fc0">;<span class="_ _1b"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>forward<span class="_ _15"> </span>declaration</span></span></span></div><div class="t m0 x6 hd y46 ffe fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">*<span class="_ _a"> </span></span>ptr;<span class="_ _1c"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>opaque<span class="_ _15"> </span>pointer</span></div><div class="t m0 xa hd y47 ffe 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdklEQVR42u3YsQkCMRiG4UQuWAVnECsnELEW3MwlHMfCIdzA6rjKNLFzABv/455ngvClefnz7nBKAAAQxvNxX1kBAIBoRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAF+5tWYFAADiKKW4pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAwX8OM3jpNkw8DAPhNrXVGr3VJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIB/ya01KwAAEEcpxSUVAIBwRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMCCDON1awVgOV7nmxEAgtsfLzlv1n18p9R7NwgAACF8ADmCGgKgKI3VAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">PIMPL<span class="_ _10"> </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="ffe">Impl<span class="_ _16"> </span></span>actual<span class="_ _16"> </span>implementation)</span></div><div class="t m0 xa hd y4a ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">A<span class="ffe fc5">::<span class="fc0">Impl<span class="_ _15"> </span>{<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _15"> </span>could<span class="_ _a"> </span>be<span class="_ _15"> </span>a<span class="_ _a"> </span>class<span class="_ _15"> </span>with<span class="_ _a"> </span>a<span class="_ _15"> </span>complex<span class="_ _a"> </span>logic</span></span></span></span></div><div class="t m0 xa hd y4b ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y4c ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">internal_f()<span class="_ _15"> </span>{</span></div><div class="t m0 xf hd y4d ffe fs7 fc0 sc0 ls0 ws0">..<span class="ff7 fc3">do<span class="_ _a"> </span></span>something..</div><div class="t m0 x6 hd y4e ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y4f ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y50 ff7 fs7 fc7 sc0 ls0 ws0">int<span class="_ _1c"> </span><span class="ffe fc0">_data1;</span></div><div class="t m0 x6 hd y51 ff7 fs7 fc7 sc0 ls0 ws0">float<span class="_ _a"> </span><span class="ffe fc0">_data2;</span></div><div class="t m0 xa hd y52 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd y53 ffe fs7 fc0 sc0 ls0 ws0">A<span class="fc5">::</span>A()<span class="_ _1d"> </span><span class="fc5">:<span class="_ _a"> </span></span>ptr{<span class="ff7 fc3">new<span class="_ _15"> </span></span>Impl()}<span class="_ _a"> </span>{}</div><div class="t m0 xa hd y54 ffe fs7 fc0 sc0 ls0 ws0">A<span class="fc5">::</span><span class="fff">∼</span>A()<span class="_ _1d"> </span>{<span class="_ _a"> </span><span class="ff7 fc3">delete<span class="_ _15"> </span></span>ptr;<span class="_ _a"> </span>}</div><div class="t m0 xa hd y55 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">A<span class="fc5">::</span>f()<span class="_ _15"> </span>{<span class="_ _a"> </span>ptr<span class="fc5">-></span>internal_f();<span class="_ _15"> </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="_ _10"> </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 x11 h6 y5b ff4 fs4 fc0 sc0 ls0 ws0">-<span class="_ _17"> </span><span class="ffc">Impl*<span class="_ _5"> </span>ptr<span class="_ _1e"> </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="_ _1e"> </span><span class="ffc">unique_ptr<impl><span class="_ _5"> </span>ptr<span class="_ _1e"> </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="_ _15"> </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 x11 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="_ _c"> </span>reserved<span class="_ _16"> </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 x12 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="_ _10"> </span>-<span class="_ _a"> </span>Implementation<span class="_ _10"> </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="_ _13"> </span><span class="ffc">Impl<span class="_ _13"> </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>protecte<span class="_ _8"></span>d<span class="_ _e"> </span>memb<span class="_ _f"></span>ers<span class="_ _e"> </span>into<span class="_ _13"> </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="_ _13"> </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="_ _15"> </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="_ _13"> </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>a<span class="_ _8"></span>rding<span class="_ _e"> </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 hd y67 ffe 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkklEQVR42u3YsWkDQRCG0Vtzg6NFNQhHqkAIxwZ35iZUjgIX4Q4cHRt5knNgcAEWWHPovQLE8h+Ij2lPx+cJAADK+Hi/PFgBAIBqRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAL9aZloBAIA6IsIlFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwD+aN/TWMcb1P9J799UB/DMDxbmkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDbaplpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAHdk3tBbxxg+GADA3/TeN/Ral1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAsDEtM60AAEAdEeGSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBALgr8/K2twIA/Ph8ORsBbu5wem1t97guX9O0rqtBAAAo4RtpqiMAuMArQQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _10"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _1f"> </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="_ _10"> </span>P<span class="_ _d"></span>attern<span class="_ _10"> </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="_ _e"> </span>which<span class="_ _e"> </span>a<span class="_ _e"> </span>class</span></span></div><div class="t m0 xa h9 y30 ffc fs6 fc0 sc0 ls0 ws0">X<span class="_ _13"> </span><span class="ff4">derives<span class="_ _c"> </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="_ _13"> </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 xa hd y69 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ffe fc5"><</span>class<span class="_ _15"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 xa hd y6a ff7 fs7 fc3 sc0 ls0 ws0">struct<span class="_ _a"> </span><span class="fc4">Base<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 x6 hd y6b ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">my_method<span class="fc0">()<span class="_ _15"> </span>{</span></span></div><div class="t m0 xf hd y6c ff7 fs7 fc3 sc0 ls0 ws0">static_cast<span class="ffe fc5"><<span class="fc0">T</span>*><span class="fc0">(</span></span>this<span class="ffe fc0">)<span class="fc5">-></span>my_method_impl();</span></div><div class="t m0 x6 hd y6d ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y6e ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd y6f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Derived<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Base<span class="fc5"><</span>Derived<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 xa hd y70 ff9 fs7 fc6 sc0 ls0 ws0">//<span class="_ _1b"> </span><span class="ff10">void<span class="_ _a"> </span>my_method()<span class="_ _a"> </span>is<span class="_ _15"> </span>inherited</span></div><div class="t m0 x6 hd y71 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">my_method_impl<span class="fc0">()<span class="_ _15"> </span>{<span class="_ _a"> </span>...<span class="_ _15"> </span>}<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _15"> </span>private<span class="_ _a"> </span>method</span></span></span></div><div class="t m0 xa hd y72 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x13 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQlCMRSG0UResArOIFZOIGItuJlLOI6FQ7iB1eNVpomdpYUg3CfnTBD+NB83b3aHBAAAYdxv14UVAACIRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPCWW2tWAAAgjlKKSyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAEQqAAD82jCjt07T5MMAAL5Ta53Ra11SAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqSYAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPggt9asAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAiG4Yz2srAMB8PY4XI/BntvtTzqtlH58p9d4NAgBACC+S1BoCkWWv0gAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _10"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _1f"> </span>2/3</div><div class="t m0 xa hd y73 ff9 fs7 fca sc0 ls0 ws0">#<span class="_ _20"> </span>include<span class="_ _1e"> </span><span class="fc6"><iostream></span></div><div class="t m0 xa hd y74 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ffe fc5"><</span>typename<span class="_ _15"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 xa hd y75 ff7 fs7 fc3 sc0 ls0 ws0">struct<span class="_ _a"> </span><span class="fc4">Writer<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 x6 hd y76 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">write<span class="fc0">(</span></span><span class="fc3">const<span class="_ _15"> </span></span>char<span class="ffe fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _15"> </span>{</span></span></div><div class="t m0 xf hd y77 ff7 fs7 fc3 sc0 ls0 ws0">static_cast<span class="ffe fc5"><</span>const<span class="_ _a"> </span><span class="ffe fc0">T<span class="fc5">*></span>(</span>this<span class="ffe fc0">)<span class="fc5">-></span>write_impl(str);</span></div><div class="t m0 x6 hd y78 ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y79 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd y7a ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">CerrWriter<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Writer<span class="fc5"><</span>CerrWriter<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 x6 hd y7b ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">write_impl<span class="fc0">(</span></span><span class="fc3">const<span class="_ _15"> </span></span>char<span class="ffe fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _15"> </span>{<span class="_ _1b"> </span>std</span>::<span class="fc0">cerr<span class="_ _a"> </span></span><<<span class="_ _a"> </span><span class="fc0">str;<span class="_ _1b"> </span>}</span></span></div><div class="t m0 xa hd y7c ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd y7d ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">CoutWriter<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Writer<span class="fc5"><</span>CoutWriter<span class="fc5">><span class="_ _a"> </span></span>{</span></div><div class="t m0 x6 hd y7e ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc4">write_impl<span class="fc0">(</span></span><span class="fc3">const<span class="_ _15"> </span></span>char<span class="ffe fc5">*<span class="_ _a"> </span><span class="fc0">str)<span class="_ _15"> </span>{<span class="_ _1b"> </span>std</span>::<span class="fc0">cout<span class="_ _a"> </span></span><<<span class="_ _a"> </span><span class="fc0">str;<span class="_ _1b"> </span>}</span></span></div><div class="t m0 xa hd y7f ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd y80 ffe fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _a"> </span>x;</div><div class="t m0 xa hd y81 ffe fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _a"> </span>y;</div><div class="t m0 xa hd y82 ffe fs7 fc0 sc0 ls0 ws0">x.write(<span class="fcb">"abc"</span>);</div><div class="t m0 xa hd y83 ffe fs7 fc0 sc0 ls0 ws0">y.write(<span class="fcb">"abc"</span>);</div><div class="t m0 x13 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImUlEQVR42u3ZsU0DQRCG0Vt0I6KTa0BEVIAQMZJbcOB6aIIOCKjBEgFF0AGRdQH2JEdG5sAO0Kx4r4LVv8mn3XZ7/zgAAEAZnx/vV1YAAKAakQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwK+WmVYAAKCOiPCSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDA/zV2dNZ5nl0YAMBlpmnq6LReUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAJbXMtAIAAHVEhJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAM439nLQ78Nhvdm6MOjL7u3VCABcoGWmFQAAqCMifPcDAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAAC6Mu6fb6wAAPyxr6cXI3DK3cO6tdX1sj8Ow7IsBgEAoIQfvfkjANA4ax4AAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Curiously<span class="_ _10"> </span>Recurring<span class="_ _a"> </span>T<span class="_ _6"></span>emplate<span class="_ _a"> </span>P<span class="_ _d"></span>attern<span class="_ _1f"> </span>3/3</div><div class="t m0 xa hd y84 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="_ _a"> </span><span class="ffe fc5"><</span>typename<span class="_ _15"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 xa hd y85 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">f(Writer<span class="fc5"><</span>T<span class="fc5">>&<span class="_ _15"> </span></span>writer)<span class="_ _a"> </span>{</span></div><div class="t m0 x6 hd y86 ffe fs7 fc0 sc0 ls0 ws0">writer.write(<span class="fcb">"abc);</span></div><div class="t m0 xa hd y87 ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y88 ffe fs7 fc0 sc0 ls0 ws0">CoutWriter<span class="_ _a"> </span>x;</div><div class="t m0 xa hd y89 ffe fs7 fc0 sc0 ls0 ws0">CerrWriter<span class="_ _a"> </span>y;</div><div class="t m0 xa hd y8a ffe fs7 fc0 sc0 ls0 ws0">f(x);</div><div class="t m0 xa hd y8b ffe fs7 fc0 sc0 ls0 ws0">f(y);</div><div class="t m0 x10 hd y8c ffe fs7 fc9 sc0 ls0 ws0">CRTP<span class="_ _a"> </span>C++<span class="_ _15"> </span>Examples</div><div class="t m0 x13 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:4.185000px;width:82.018000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YuwkCQRSG0RnZwWixBjGyAhFjwc5swnIMLMIOjJaNnGTMTH0EclfOqWD4J/m4ebXZJQAACON6Oc+sAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICnXGu1AgAAcZRSXFIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAf6Gb0FvHcfRhAADf6ft+Qq91SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAx3Kt1QoAAMRRSnFJBQAgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAvKUbjksrAAC8dNufjPAb6+0h58W8DfeUWmsGAQAghAd5rRoCpM3chgAAAABJRU5ErkJggg=="/><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="_ _10"> </span>Function<span class="_ _21"> </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="_ _10"> </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 xa hd y8f ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">Base<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 xa hd y90 ff7 fs7 fc3 sc0 ls0 ws0">public<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y91 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ffe fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 x6 hd y92 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">method(T<span class="_ _15"> </span>t)<span class="_ _a"> </span>{</span></div><div class="t m0 xf hd y93 ffe fs7 fc0 sc0 ls0 ws0">v_method(t);<span class="_ _1d"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>call<span class="_ _15"> </span>the<span class="_ _a"> </span>actual<span class="_ _15"> </span>implementation</span></div><div class="t m0 x6 hd y94 ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y95 ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y96 ff7 fs7 fc3 sc0 ls0 ws0">virtual<span class="_ _a"> </span><span class="fc7">void<span class="_ _15"> </span><span class="ffe fc0">v_method(</span>int<span class="_ _a"> </span><span class="ffe fc0">t)<span class="_ _1d"> </span><span class="fc5">=<span class="_ _15"> </span>0</span>;<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _15"> </span>v_method<span class="_ _a"> </span>is<span class="_ _15"> </span>valid<span class="_ _a"> </span>only</span></span></span></div><div class="t m0 x6 hd y97 ff7 fs7 fc3 sc0 ls0 ws0">virtual<span class="_ _a"> </span><span class="fc7">void<span class="_ _15"> </span><span class="ffe fc4">v_method<span class="fc0">(</span></span>double<span class="_ _a"> </span><span class="ffe fc0">t)<span class="_ _15"> </span><span class="fc5">=<span class="_ _a"> </span>0</span>;<span class="_ _15"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>for<span class="_ _15"> </span>"int"<span class="_ _a"> </span>and<span class="_ _15"> </span>"double"</span></span></span></div><div class="t m0 xa hd y98 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x13 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkElEQVR42u3YsU0DQRBA0Vt0I0crakBEVGBZjpHojCYoxwFF0AGRtRGTHAGSC7CRPGe/V8Bpbjb5mva83U8AAFDG1+fhwRYAAKhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAcNIy0xYAAKgjIlxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAODezVYA8GeMcflHeu9+CuByLqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4LpaZtoCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAD4Z/OKZh1jeDAAgPP03lc0rUsqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QoAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAATC0zbQEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAKqbj+9PtgAAcKu+Xz9WN/PL7q21x81y/JmmZVk8IgAAJfwCeesjAHNWcecAAAAASUVORK5CYII="/><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="_ _10"> </span>Function<span class="_ _21"> </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="_ _13"> </span><span class="ffc">A<span class="_ _13"> </span></span>and<span class="_ _13"> </span><span class="ffc">B</span></div><div class="t m0 xa hd y99 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">AImpl<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Base<span class="_ _a"> </span>{</span></div><div class="t m0 xa hd y9a ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ffe fc5">:</span></div><div class="t m0 x6 hd y9b ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ffe fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 x6 hd y9c ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">t_method(T<span class="_ _15"> </span>t)<span class="_ _a"> </span>{<span class="_ _15"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>template<span class="_ _15"> </span>"method()"<span class="_ _a"> </span>implementation<span class="_ _15"> </span>for<span class="_ _a"> </span>A</span></span></div><div class="t m0 xf hd y9d ffe fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>cout<span class="_ _a"> </span><span class="fc5"><<<span class="_ _15"> </span><span class="fcb">"A<span class="_ _a"> </span>"<span class="_ _15"> </span></span><<<span class="_ _a"> </span></span>t<span class="_ _15"> </span><span class="fc5"><<<span class="_ _a"> </span></span>std<span class="fc5">::</span>endl;</div><div class="t m0 x6 hd y9e ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd y9f ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd ya0 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">BImpl<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Base<span class="_ _a"> </span>{</span></div><div class="t m0 xa hd ya1 ff7 fs7 fc3 sc0 ls0 ws0">protected<span class="ffe fc5">:</span></div><div class="t m0 x6 hd ya2 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ffe fc5"><</span>typename<span class="_ _a"> </span><span class="fc4">T<span class="ffe fc5">></span></span></div><div class="t m0 x6 hd ya3 ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">t_method(T<span class="_ _15"> </span>t)<span class="_ _a"> </span>{<span class="_ _15"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>template<span class="_ _15"> </span>"method()"<span class="_ _a"> </span>implementation<span class="_ _15"> </span>for<span class="_ _a"> </span>B</span></span></div><div class="t m0 xf hd ya4 ffe fs7 fc0 sc0 ls0 ws0">std<span class="fc5">::</span>cout<span class="_ _a"> </span><span class="fc5"><<<span class="_ _15"> </span><span class="fcb">"B<span class="_ _a"> </span>"<span class="_ _15"> </span></span><<<span class="_ _a"> </span></span>t<span class="_ _15"> </span><span class="fc5"><<<span class="_ _a"> </span></span>std<span class="fc5">::</span>endl;</div><div class="t m0 x6 hd ya5 ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa hd ya6 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x13 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIvElEQVR42u3aMUoEMRSA4YnkYfWw8QLiISy8m60X28JDWHqBJZVpxs5SEAb2Zff7TjC8hPCTTHt+ed0AAKCMz4/TnSkAAFCNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4Febc5oCAAB1RISbVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOBvfaFvHWNYMKCOzHRMAWsdUwtxkwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAV6MbAcBRMtMQAA7R5pymAABAHRHhuR8AgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAANyYvtC3jjEs2H9lpmVl0b0BwC1zkwoAQDndCAAobq0nF88UcAg3qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQDgsroRAFBcZhoCiFSHFAAAF+a5HwCActqc0xQAAKgjIlZ67h9jWLOLqP+jhb1hbwBwZTz3AwAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAAIdqc05TAACgjohwkwoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAADtbP70+mAABAHY9vX6093O/n723b991AAAAo4QclaDF7WNKtugAAAABJRU5ErkJggg=="/><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="_ _10"> </span>Function<span class="_ _21"> </span>3/3</div><div class="t m0 xa hd ya7 ff7 fs7 fc3 sc0 ls0 ws0">template<span class="ffe fc5"><</span>class<span class="_ _a"> </span><span class="fc4">Impl<span class="ffe fc5">></span></span></div><div class="t m0 xa hd ya8 ff7 fs7 fc3 sc0 ls0 ws0">class<span class="_ _a"> </span><span class="fc4">DerivedWrapper<span class="_ _15"> </span><span class="ffe fc5">:<span class="_ _a"> </span></span></span>public<span class="_ _15"> </span><span class="ffe fc0">Impl<span class="_ _a"> </span>{</span></div><div class="t m0 xa hd ya9 ff7 fs7 fc3 sc0 ls0 ws0">private<span class="ffe fc5">:</span></div><div class="t m0 x6 hd yaa ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">v_method(</span>int<span class="_ _15"> </span><span class="ffe fc0">t)<span class="_ _a"> </span></span><span class="fc3">override<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 xf hd yab ffe fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">::</span>t_method(t);</div><div class="t m0 x6 hd yac ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x6 hd yad ff7 fs7 fc7 sc0 ls0 ws0">void<span class="_ _a"> </span><span class="ffe fc0">v_method(</span>double<span class="_ _15"> </span><span class="ffe fc0">t)<span class="_ _a"> </span></span><span class="fc3">override<span class="_ _15"> </span><span class="ffe fc0">{</span></span></div><div class="t m0 xf hd yae ffe fs7 fc0 sc0 ls0 ws0">Impl<span class="fc5">::</span>t_method(t);</div><div class="t m0 x6 hd yaf ffe fs7 fc0 sc0 ls0 ws0">}<span class="_ _a"> </span><span class="ff9 fc6">//<span class="_ _15"> </span>call<span class="_ _a"> </span>the<span class="_ _15"> </span>base<span class="_ _a"> </span>method</span></div><div class="t m0 xa hd yb0 ffe fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xa hd yb1 ff7 fs7 fc3 sc0 ls0 ws0">using<span class="_ _a"> </span><span class="ffe fc0">A<span class="_ _15"> </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 xa hd yb2 ff7 fs7 fc3 sc0 ls0 ws0">using<span class="_ _a"> </span><span class="ffe fc0">B<span class="_ _15"> </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 x14 hd yb3 ff7 fs7 fc7 sc0 ls0 ws0">int<span class="_ _a"> </span><span class="ffe fc4">main<span class="fc0">(</span></span>int<span class="_ _15"> </span><span class="ffe fc0">argc,<span class="_ _a"> </span></span>char<span class="ffe fc5">*<span class="_ _15"> </span><span class="fc0">argv[])<span class="_ _a"> </span>{</span></span></div><div class="t m0 x15 hd yb4 ffe fs7 fc0 sc0 ls0 ws0">A<span class="_ _a"> </span>a;</div><div class="t m0 x15 hd yb5 ffe fs7 fc0 sc0 ls0 ws0">B<span class="_ _a"> </span>b;</div><div class="t m0 x15 hd yb6 ffe fs7 fc0 sc0 ls0 ws0">Base<span class="fc5">*<span class="_ _a"> </span></span>base<span class="_ _15"> </span><span class="fc5">=<span class="_ _a"> </span><span class="ff7 fc3">nullptr</span></span>;</div><div class="t m0 x15 hd yb7 ffe fs7 fc0 sc0 ls0 ws0">base<span class="_ _a"> </span><span class="fc5">=<span class="_ _15"> </span>&</span>a;</div><div class="t m0 x15 hd yb8 ffe fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">1</span>);<span class="_ _1c"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>print<span class="_ _a"> </span>"A<span class="_ _15"> </span>1"</span></div><div class="t m0 x15 hd yb9 ffe 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="_ _15"> </span>print<span class="_ _a"> </span>"A<span class="_ _15"> </span>2.0"</span></div><div class="t m0 x15 hd yba ffe fs7 fc0 sc0 ls0 ws0">base<span class="_ _a"> </span><span class="fc5">=<span class="_ _15"> </span>&</span>b;</div><div class="t m0 x15 hd ybb ffe fs7 fc0 sc0 ls0 ws0">base<span class="fc5">-></span>method(<span class="fc5">1</span>);<span class="_ _1c"> </span><span class="ff9 fc6">//<span class="_ _a"> </span>print<span class="_ _a"> </span>"B<span class="_ _15"> </span>1"</span></div><div class="t m0 x15 hd ybc ffe 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="_ _15"> </span>print<span class="_ _a"> </span>"B<span class="_ _15"> </span>2.0"</span></div><div class="t m0 x14 hd ybd ffe fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xa h9 ybe ff7 fs6 fc0 sc0 ls0 ws0">method()<span class="_ _13"> </span><span class="ff4">calls<span class="_ _13"> </span></span>v_method()<span class="_ _13"> </span><span class="ff4">(pure<span class="_ _c"> </span>virtual<span class="_ _e"> </span>metho<span class="_ _f"></span>d<span class="_ _e"> </span>of<span class="_ _13"> </span><span class="ffc">Base<span class="_ _16"> </span></span>)</span></div><div class="t m0 xa h9 ybf ff7 fs6 fc0 sc0 ls0 ws0">v_method()<span class="_ _13"> </span><span class="ff4">calls<span class="_ _13"> </span></span>t_method()<span class="_ _13"> </span><span class="ff4">(actual<span class="_ _c"> </span>implementation)</span></div><div class="t m0 x13 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>
|