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,d09GRgABAAAAABPsAA0AAAAAHQwAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAT0AAAABoAAAAcn3rRzEdERUYAABO0AAAAHAAAAB4AJwA5T1MvMgAAAaQAAAA/AAAAVlcSYkpjbWFwAAAChAAAAOQAAAHKXwE1WGdhc3AAABOsAAAACAAAAAj//wADZ2x5ZgAAA9AAAA3VAAAUtMVM1K9oZWFkAAABMAAAADMAAAA2JvxLL2hoZWEAAAFkAAAAIAAAACQGZwLfaG10eAAAAeQAAACfAAAAzGpICnxsb2NhAAADaAAAAGgAAABoczh4jm1heHAAAAGEAAAAHgAAACAAeABSbmFtZQAAEagAAAGZAAAC3PqDKoJwb3N0AAATRAAAAGYAAACIBM0FhXicY2BkYGBgYmRL9UvLiee3+crAzfwCKMLwSJd5BZzm+c/GXMb0DsjlYGACiQIAH10KHQB4nGNgZGBgevefjYGB+RIDw//LzGUMQBEUYAwAgTQFS3icY2BkYGAwZvBnYGYAASYgZmQAiTmA+QwAD5YAywAAeJxjYGTSYtrDwMrAwNQFpBkYeiA04wMGQ0YmoCgDBzMDDDAyIIGANNcUIKXAUMn07j8bUOU7hl8wNQDOJgsMAHicY5RgAANGXxABRGsYwoDYljmCwZbRiCGcMZ+Bh0mNwRaIfYBYD4RB4kx3GbSY9gPVSTFEMzUBcTIQ3wXq8WaIYXJliGa+BMQguf1QnMxgCJTXAGJppgVA83gZNJkMgepfMqgCaVXG/wzyjAEMckDzJYF8G6BTzIDYljmZwQbEB4rLg9WXAPEyoNopDCJgdV8YpJheMEgAaVkAIjQgGgB4nLWQPS9DcRSHn1t1ab2Wqne9tKpVbZXNJgaRiIiIwWZsYhCL+Ea+AmLSeImaTNTmg/yce/9iMHXxS877M5xzgC6czeARqmmVF9VxriwWCCzzzZeoUGOdDTbZZoc99jnkiGManHHBpWR8QJGycfWI2zJu17iDiDvhlPOQ05c+1daH3vWmV7X0omc96VEPutedbnWj6599OpDn8wt7MXOxv4A7MVS8G7+nlwTJvn7XGXBhkKHh1MgoaRjLjDPB5NS0PQFm3XwuG8wv5PKLBVgqlpbLrFSqtdU6a51u+b/6Bu2yNcMAAAAAAAAAAAAAADIAYgCEALAAwgDiAQoBTAGmAdQCEAJQAoACuALmAygDQgNmA7YD6gQaBFgEsATcBRIFSAWUBdwGGAZiBp4G2AdCB3oHqAfCCBAISAh2CLAI4AkwCWQJmAnEChYKWnichVgLkBvlfd/vW+1D0j4k7UuP1ep10uoknaTT87jjdD6fzz4TbGzO9tnYlATTxjbv1AFTl8YQGtwQ8qDTDBMyaUqgncy0kJBAm+k0CRQ6cZIOM03SjB1SkmYypQEcU5sSDCf3/32r09kX2no8a+3K+j9+v9//8S2DmF0XeHQLPs2kGIbT+TLKFtxCuNXp9tAUajjI0AWFNXTTMtEtkhpRZfXbB/fJQSUS8It8olCLb56SXvf7OOUJ1Pz8+a2SD/E8K6Z7t/3lgWd+vCAz8Acx0+Bjp+cjr/OCgsBNFbVb3R7bboG/dqsDzoiPnb9lHJyGJPXb51eM+4RM77bHDzz9480yR/1S+w+wcXyQ0cCbnsuE9Ww7nMm2mplwq2GEM2y83X9jR/9Mu41CO5CKRoafQ+12/4wX49KFzzKnmI8yCYbp6ipaiZEA0c0WppEXonHK3xJFVQr4hQDPBtmYX9C3aGJCUxYlDqJzVDEtwiNdEHTPrsQ8i8aRnxFIbGCzNYXQeP2Fev0F5F9YWMXnFcBHhRtdQHwuC5B0UafZMNErfP/JYCoS5dF28g9+XlTfPZqNhUWV/eNszPv9lXA5ib/PwO0I5E98hMFIq9nDXTACLIab6GS9/4t6fWutVq+MLZghxdQNduPCwgL2yQsoGlKUSEhZ/mtqrwqX02CvQvkCgyT/GdQBsnJZASzXUIcYNg1dQUCniprdhmUa6LRu979s64FvXT/R2ZXm/IK/Eel2dh26Jz+S90+w9z26oSUY9YRhJEQt8P2D17S23apJ6+bKlfuvK20p5sU6vhv5/Dkaw4VfobcghlkvBsIFcWmZzUYPQyBEqRBVFwiCJC+KDKDrsZA0qFZwEHrr8B9O3diUeMEXuGJ/ZjTCuzMVYAenNMMOppKVHU2RF0RbUHNjmwqxykwlfdPcpu8dPFIu+eeDgY1GqejMzQl6xGQRi3yKXOiVipuDUtHPs2baNjg9N1e9cSq8h2EwswTonULfBR5B6ZpXTUPlhNfcnxI1KhOQz+ondP3wUf+m4RfEdgkuT+FnGJsZIYgQUzWUEYhN0IrWw7RcLc102YKb41WEn3I7GSuY7b/qKuMjLvcDIRZRdiuRmPAD7mfXCTwS7YVEIpp6/63FhCDjfbrOsrq+/Jj8PRTTkyNX/3BFm2/ij+HniP+8LvAEY1KwlH6gnN5XEQE/RLjpUmEY+GP8VLm46W/37tt37dMT17RFDQc5Nr+tcUun2+3evH7EbfBYmhR9WSl4zd6vPrX3mpDuC9wYYLPOutn+u7MzkuziIMl7L1xegrxVxiHVQdXYhgbVzIAWhFaVLaMwSILFL33+b/q/sXUjgcQnd85/mouN7e4du2d6qRrj0K4v/J2RwLts/eDSF8uT28ZHlv87U7tykuRH7C/irzH5odYH1s0k8ebmjAzROXxjzNCGiBdB5Aeooz9JavH0q+NISBhWrP/2Q48YWoiqGy/auhkXMyr7DT1ha/+MMWtaHp7EXwv8DbIB+7SOgEfDE8iKewO34ql/L79CbL+i203q8a6kho+C2ReI2XdWXa1y9RBwVfW4WmXKGlIF3XaVq3YuC3IE4Rj4IeHQHR5bvXr9MkHDAc5XLpYnPL6q44uS9KLUENmGx5YUsH2BQ0FfORTx+AreK8/LMsSwDyL5NeUL+ugwIar4Xw+yaCY1D6VdNHQPExN+Y17CgVc13YaDDWwC5o8Pfvt2yBDxRQaWX/aJITno2WHvADsdasfzneMFVmGzVUzrInxJSFAtVrMDxYOoL/YO3U4kNSRNHRNUM5QOmapweD6I4ClxvdgIH5vlkf+y+4Lp6A6agxnHXOWT/X8KRQSMhUgIJb9cXX5nJbTR/vOPRYsfRxtslTDk5flNiC+zEp+L1kaEmiuZ42/q9rUNo//6in+4QRqiIYLrIjaWz654Ki6/imUSDtGBVzP3gB+N9CG0RlvEuED6p1c299x718MDXs4fue+B7p6jf+B2nbAP/duhAy+t2D90y7r1/XdUK58e2n8Q7GeZMslkMCtddk0yDgctuEtcgcY7+EFJkqdkSRUeu1W368ThmVB8cqybj31Bm9h+77072o6iYByQUKr/9opnJMpOcbb4QOErExM/nwIMxy/8CudhLvQGc6GGqnybDCei8ka7Bc3IBbLJFMDwiGwwKqLKz2Vhj0khB+H8scNXbOZ5xdB0xY9VX4CXdp9Oqfl6ozwVnRi/emH0hu2aQL7whXvX3jlhv3/rwe/cfrOFMS/6A35YO8SliHTVBwopRQ5KUio2tXX9HlcpBniefBOaXsqXeDNyhHBeBKy+jr9C9goESOXcIUYCYEamgVfsXw9FIt+hRJyIREKQfAVK/YhlsuzyLykYCRZ6iDgodkTs4Wc9LcHOwCp4wAEkvjIJrMFYwM9yLwvxsLqPNP+fcW5HDceFRwW9db8Qj6iuix9h1eUvwTrA6hq+TmUTMAf6s8bk59Dvw0PSV8DXAcr3RftAF+U4KKv2IAHYW/K0VA9AqbZhB0CHcv13tJAmRBz0TDoU6D+MZkKqJnjj35TRuywWjUjcisajcp/3wU0YtDV64U10Cv0EcJsYVvH0YCXqcc3hoKdbI501QlvxAbNEzeiUbueTWuf3ZrY7lXWdGVtJuXvX8VwQC4HQlqXvHlftjptyHU7JxAxav/pVuyeccccM8ihXG5vjgxNhURTSf/7oEsKyMWo7FRSIFCAu0luDgEGOaZEtS+EghEtqKomI4BwfmUkQYpgGhINIVNPljZW5KqoVieYhPNHekHenXVsW7kdBvZhsFlK19JgZxL/JxrrFRtpquCu97T/9RtxMN4rtUirTts1c/7xrJTsZ4CQPOJ0AnEreTg2ItFveSNaHM5ls7g5LhjLAZKITojG/8/X/Gr/cjUosaN5pVZMlU8IQRMlZnIEnfEMUgrk33lQiwYBRl4MxQ7fHC04i1XaiEwHZBRyI37MUh4u6LNnPOMpPwxos8wbbLpAIvAB6CJ3V7WLc7FwxOlt0ZBEhUXFK60tXtChjx9NVigDFI23rfiBHT0xakHonGgrHOhSWXxDGlt96I2XZnUyPABJRiGZSENPLgEWGcQdVlnF8XtoUEAoP0QvcC3RZQS+Hwmr/DOJC8Xp6x1wQ1kPWF9Cu3HnkvrvuuOl3b2WL3Q8KyGeYbDRbTeqTAb+VlkS/v3D0rsN/9KHfmZs/TmqQzPC78bPMqOeV9hgFJ1GzAfvZsM7pUadJ2CHdCN2NeMmfLFvJANus1+uQvq2HNGPiH0eSsQC+mZwsbAn28ZsX+k+QUkFX43B4ZNtf8Zw/wrBM7EIDm+hHTJOZY7YSv7S1QZJEj4ZumYPGSyUA078Af6lvDwxQJ85l4T86INaO1oIQFWiRTTAq8+JoK3ViWw0bSqPuuvOFeixy/rap0shcIjF+Yk97clrmWeEkq6Ri9Zh3PXD0cCii/+lD6M9kX7Cw/vG4xEYNCfFBM9PIfDKhzTjTidzufHnb47mcoOUOxBJJqdKg1/63GqxpbiQ4Xg6Xc6Ap96K5TeqcT6I1K0S4SYoMThrnQE1JLZotz8GHQV2hQGpzdcs8rWukFbNz0z9d3RL6p/V8cW4LnV+gXOYE/gtvT1+7pXTX7OnPUYaoA0FLNp0INOnBAoMOEcvPxywrpnnTl/ZK5rn33n8usnTp/gP5swXgdPL/yP+94ACl0RZIuTXYAoUimittuPSDkcgCOJo7Nv2RUOcmChDEro1m1vd+uvbjbSSkxmgys38/AWvADcRW/P+4gWDIueu9uCHuBb0wnf9tcgYOFbtgEX+0ljEPtSx4bwu8tgaq9WVJl3dY0lT5c2fPnT2OeMV0WwVL5hEOGuVeyQyin7/22vnTcbsatyXZjtUS8XS2Y5um3ckytIf3oCH/iEmSis17PXzNZmR0iDfoEPSdB5QFaeCpynxlfmxFaHFzeunp4x9sjghhy7n9P8KDnv0NSmnF1qFvnXk0c0aVpbCnB3QD+EzTTQwOy/87bjfwSndpoJE0QBaqVBxF5tADGrSi+dlnVvGaLTRNIRAm/JDe9wnAa8JDazgWSfDt1nAZggfekXi4CsGK4GDLRJ/46mT3fTKCgSBO7tmaSpj5TCU8/rVOBWlqJEgGRWBi84KdydqJslZ/8OFwNMJv8qnifEdPCD5B1NXK1KckHjYjDkZGoDYeifp5TjDCZbqn6BDfh/EWprByJpmG/gsrSnuYPWmWdH4P+jX68Pta7YN6vW4ZiVRS21Ov79E1d1TgeN4n1nQz9OnlBXroWVx4rTbiwGS3iU7Bzzk4e4+s3RqGrYO46AzLmqgUCrF2/eJVRgLkaow2u1S3VKHxnZdvQTbtGz8ZjW9svz5YrhFDivwk+Il5exfd4leXrgSiZwl0krtTGd88rtzJFaOmLXD79wsxxyiiJzil/6lSCd2ucLaqKP1/QVVLp3ajINAXwW4TblhvowbiXGH4usxl6TJnWtrKWx3qjXzAL94oRlMbIpbCc5fxyDflj2bscMTiD6GQLOtOVNymlGyfUjDiom/n9kA8r4VV9ET/WELjYYK+2EW1f82YLIByTJaxFu//svrIBwRLDSn9H6JsPoIH7/GSF5o097HBzskOhszgtQyCw/8ACqDRom+fPDC+xOmlTeUNsIbJrJDJxkYUURD+gXPjI3FrB4dwpciqBbOInhTkfkHNd0YUdqOo+gw7YcXC6IuSL55o/n3T+cyHfBbzP/XqZS4AAAB4nJVSy07CUBA9F4vRBcadiXExSzFprYUNLjFqQkQJFcO2YIEG0mtaEsLa31H/wy/wS9x7envVqCvbdObM68wjBbCDFyiUz90XVthSexZX4KgjizdQV48WO6ipV4ur2FHvFm+iVhFmKmeb1pOpKrDCrqpaXCH/Z84G+urYYgf76tniKg7Um8Wb2K84OIPGA9bIkGCKGZYQBPD5NuDyLXGL3hGzBG14lB1EGGPO2hVy6oS+CCnuTcxD12Rdm3iZWWQc0k4NU8xOERaY0NJG3tI3pB4gxDn6lIJL6ht6erTqZMSZflhnyXS2lMD3G65L2ZLRWtqedKLxXK/yeSJRei8dr+vJtV7RmcihTmUUz6LFRPREbuOhDMLzfiiX/ZtBL6yT94oDh2aBHCdcF1fdMErzE6I251twL7T1gvLCrLA0OuPBYnMujzWCU36/mdwvgjIe8JSuOW1x2ABNUup0eaGzaSyB58upfPZ2i460g5bb4KZB8++c3+z4UVX8djHny3n28uTljD77CYNxlic8Cvv5TfkH7QeM+HTOAAAAeJxtzcsKAWEAQOHPWNKQsLOTWwrJyMLOnXLLZeTFPC1/1nPqLE9H5M/34yqLcTAnkldQFCspq6iqqWtoamnr6OrpGxgahWIiMTUzt7C0sraxtbN3cHRydgm3m7uHp9TL+wduQgxSAAAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCIyBmAfMYAAXEAGF4nGNgYGBkAILbCqeqQfQjXeYVMBoAQVoFtgAA')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,d09GRgABAAAAAA64AA0AAAAAFJgAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAOnAAAABoAAAAcn3rRzEdERUYAAA6AAAAAHAAAAB4AJwAkT1MvMgAAAaQAAABBAAAAVlXmX1xjbWFwAAACWAAAAMkAAAHKaEJgamdhc3AAAA54AAAACAAAAAj//wADZ2x5ZgAAA2QAAAkPAAAMhMEFOERoZWFkAAABMAAAADMAAAA2Jr5LL2hoZWEAAAFkAAAAHgAAACQGHQJpaG10eAAAAegAAABwAAAAeD8IBW5sb2NhAAADJAAAAD4AAAA+KZ4mGG1heHAAAAGEAAAAHQAAACAAYgBPbmFtZQAADHQAAAG3AAADOWsDV/1wb3N0AAAOLAAAAEwAAABeAtcDKnicY2BkYGBgYmTL7r9zMZ7f5isDN/MLoAjDI13mFXBa/D8bsy7TOyCXg4EJJAoATiMLAQB4nGNgZGBgevefjYGB2YUBCJh1GRgZUIEcAEadAo0AAHicY2BkYGCQY/BhYGIAARDJyAAScwDzGQAM/QCyAAAAeJxjYGSyY5zAwMrAwNTFtIeBgaEHQjM+YDBkZAKKMrAyM8AAIwMSCEhzTQFSCgzlTO/+swFVvmP4BVMDAMWiCu4AAAB4nGOUYAADRl8QAUT2DFlMmgxOQKzNrMdgwGzLYMl0ksGccRqDEdMzBktmBSA/mcGDWYjBBKi2G4hVmVIZlJgKGXSZ9Bi0mSSAuJHBmFGPQZ3pNYM+UE6bqYbBmCmKQZfxFJD2Z1BhdmEQBwBGtw+seJy1j8tKggEQhb/fvJS3vJa3wJXLFtELBCG4i3AnLQRBXIgQQW8kIhiBrnQVSg9g4Av4IMfRX1Ry48YDc+Yc+BYzwAXuFHBYa2bN2XQvPdslipb85vc88MgTz5Sp8EKVGm/UadKiwwefkvHH3OuWaxjX5n3NaamF/jTXr2aa6kcTjTXSUN/60kB99dTd3nOCHD872PGYef4D7ot7eW189tSBAnDJFQTdGiIcibrxmph5HBLJVJoby7eZLOTyBbg79cZzawXZ0DJNAAAAAAAAAAAAAAAAAAASAFYAigDMAQIBQAFsAa4CFgJ+AsIC1ALkAyIDVgOSA8gEGgQ+BIYEwATuBU4FuAXoBkIAAHicdVZrbBTXGZ17Z3dmdnZ39jkznn3Nzs4+bK+93vd6vbapbewYbCjGwbwao+KGGAPBJqEN0LRpUihSi1Ok0LQpNEWCKCgRlUgbJSptlShKWhWpP5o/lUKlqiokqRRBlFIpwuN+d2YNNKXS+Hpee8/5Hud8QyFqjqKo92FlKaoaZBLpcrX4vtqhqh1jZFHhKaIGYbmGX6ByFJVitXJ1FapWymk9wbDVUlESg4yeyKFK2boQMCsgDyoVa9UauhYxnqDZv+xaP1Rc76UdSkT3sf7I/qkdT/nbVZX7kuP4W1tZp3Dxop9n/7FvZni6O4dUMRyiI8oDj+6d0rqr8ShbdhxhHRMUprLAYwmfp2KUBkx0MSg1kAg82EqpWO1DWgX1A24MBUVfSfchtLRHqcqpR2ZTclUxrqFBjmEZxrbnknH7/OaoX6Vp1R/drKI/8zbMsQ6jjg4bxyjAycOyhK9QaaqNorQM7F+slLuQxjIAWRLNG/24FiBokhyIoQZKORFeemZvcqO9btzK29PJx9Or1M4Wh/2qjXO6WOZDLpbzG7cOHwbQqN39k6ddXDBGGAghrxtvcnKsZ2lR8lxHa43XKcKhDstn+BXKT+kQNaRYI0FWfOV0FlW0osSWM3CWYEQfyQIkG392+ahxrKWqKNUWdPjo5a91P3BoIeHxJBYWRgbQhh+8A8FiD4R95dlTa6aF0NLfQ8L6MbO+NcA6gV+mOuFCz9Fk2ygiaCWfTvDEIAnxTqZXSOATChvIjvYcTXimR1oVpXVkmm3PacnvHtQtGrgHvVcfLAUBLD9s/Hs4f0v0Oq20YxcwIdhFWGYgzihk+gsAEvSQqK+EiGb0rx/UQ90hOO6eWZt5Vqq5dDPqp+7k7wzsGyFdC/kjUUj3CYJk0goZmqbYT+MzJ6d/Bdz1hflmFGjf7LOPYL82nH844flRfljzY3RzbO6TFUwT/dFxMVxSFSFkfBpSS+Emh+WPaQE49FBroV9BGXoiQ4SSzqTv0PkiG1ATK8kxBAfQQTUQFV3O2YC1gAhDWnAE2yMTXTG3M5weeBL4JT9INomuXvj5Vzf3JCSvwxNKCUrYhnn39UAm2ZeIlRw+x6E3tri1dKgt3N3X6Aoll/4rgD1rKltFb1LKNXau4rNJL1pMVuIBFiPskYwlyuyT0eWPcQi/RY2SaED0GRaWdB8qEyHIkiyRSMoQYvNIm54AsdRMpURRUEDwA3hEqhqUVBRDOPT49m+NpDiWoxHDOBE9ODAz8OWklClwGjdS17q+MdWxVg2mGJvdfIOjsWvnjv4NxZ7j6ybenPzmaK+LF37v5BjHXLk0Va+0t/hcmMU+JVEd2XAg0hJs8LTD8wcnZ2edWx5bX0mOC1rgoBVPGYp0FfwkZ/U9yTGGZru32fsRlIaEoicEG6vXNHxVYTzZgf4873RgLldqbTv1XFtrKcdhh5PPt5c7ZD9nUwL4GfTO6tU5F0ZOl7B0M+h1kVy7vEHsEVzgFXafnO/u/JvF4/vLDFLwJ8SD7bqvJMIfUhYXd+36nP6w9fas+U5qmaFes96RdSLMSuk1eGPx81b6x63QawmIZQgHqCSVMZXU9CydIeKVTc/qpy3LIo5V6kIsHhpV5iqi9KeETQpMtmqSJjqYszaWF7hX+VD7Hx+apmklwpW7t/KcN4gUuEJC2OdBZ5ycZKwOCRdu3jT7HHwD92FMeU1fNr3Kamn9/k7Vt7jbuF6Q5QJS5k5MdpS+si7sdofXzZSTS7OnFK+KDqhe5adzj3UPCFHjWFQYrVl5Av/HPrRM/sMcuosh6zl0j2mJTdMiaGDT2Bc1aibabwKKo7FpV9g9Uo0rSrw64g7vzfemfOzbbxPU/YB64cFeIXpeL79X1t+MCr7OetHCRTcAN2X2yX2hYCqwdwmhGwrX2Lgj7B6qqoqiVodivUf2mxQuoalNDSH6CxPh5aRAktqEtmIsLX+KJ7GX6oMYCUyQCIbIzNSSTPygqSNTRgIN9aXBKPsR6HDFNfFk2u/gElx298FzLy1sqWd4Ow/acdjcu/oC7b05Ld7Zm5NKibA7VA3q08XC657Ygqy5el+cX/jZqpKr5QLoxb11G6cWd/T3PVSM80FPXI7FA0AXOEKHQfdgSiTT8W7Yck20qlxC7Px8RZYr1gohejQ0r3kU88z4oeaxYu2Cel7G5ry1OhY2ytBMIkOzvmBJtJrY3JrM2TBMdxBmEwJfnrHPFmT0W07ifo1GU4WpUblwyOeyv/oKw/sPkWRbqT2NjE6/H11BxvFxQmAcbYJk293GdnROsMMbxqLqvdtfPcCH1DkBKMTiUOYeKiYTkBPylXVIdA33jNp4B2e8y5sEguUnwIjsSBxN56fQR+PGk17eiX7pMl5oIj/JKsjOGt9GbeSGqR1S7zVQbwdMKjKnzEKbQwmmBdhRMIahifGaMx+cOf3X01PJRj0a6elJJeuNnkY9SS0vnD69MH/27MODO4sQ8szgyGxNUWqzli5h7wmIp0wNm/MHNecP8bP/7VrrU46NYcvJa2Vz8hBXNLsdSEw4M9ERTeKxg48Xt8mFPXMkzTe2Hhrv1tt5xu9wS1nW5X4jGMnrkU7WtSXXkNnVQiKhSalcuCXijF+E1FtlIRKfqGaHBHdXNLTd19LvRq1qVnJhqP8lqTXa1AJ6HnIztjJvGJbE8H8GTlMhVXPYrGgkXSGzkwwb2ZyqEnp+68j2mmB3MqYkYODk8mOFRtwb7hjLiR3bhsaKdx7yMP2YYLQ7mW/EE3RjOBvKLPZPF0S7l235Hhk5Y8nMqrZCyMM7fT6xo947ZT07DuqB33rCeS3UkwoVBCR4/eE2s8eSUJgsuk2plpfc+by590uAfFmTUZNV2OLGrDdUEzPvZsRayJt9sMAqAvonmpwuOuPGc6YglUAc7Y07i9MXyP7y8r/oTmx+/yCGpQUE9uGEMxAVoJGmFRNkJIhhVDMn8cot0Bf5qs9U5GKN7uxuOWljYZJ952mnw82+yClaa3F3DdNH9tkEjpWjcFW1Hzlgb4luTqnoI3rYmHVxvAvtNU76UQD9TnIRZlGa5ZBxDpXcOfgINu9wbuMlNOjhfSqyJPAfG/UfxgB4nK1STW/aQBB96wBSpTa3Xqocprckkl1juIDUS8iHikISmVDluiQLWIAX2SDEP+qh6g/qr+nzelWpVdtTbXnmzZuPnZk1gGN8g0L9fP6JFd6o9x4HaKmPHh+hrb543MDboOVxE8dB3+MW+R0jVeMVra8uq8IK71TT4wCv1QePjzBVlx43cK6+e9zESXDicQvnwScMYLHBAQUyzLHAFoIEMd8OQr417pGdMkpwgYhyCI1nLJm7R0mdkdPI8eJ8EUYu6s7568gq4pR27ioZnqSxwoyWdfKR3BP1BGNcIaUU3FDfk3mgdcaKGNjNocjmi60kcdwJQ8qeTA9yEclQPy/tvlxmovMXGUajSO7snmQmpzaXqVno1UzsTB7Nk0zGV+lYbtL7ycP4jHVv2XDKRtZuiAHlhmO1OThuR6ld63ygN2WbZjVS4eJWNGyx1tTXbq6t0wW3aNwOI6YL+vz+Xj4kb5ixYznN3Do+4b5Dt/9q+wm6PMLm22tbzI0kUSx9+aWtMDXz3UoX5JNe2OFaku6/hvr9VPyxWvXvGnpL3l19b/VMMfsROk1RZtws+4m78h+O+wHy6Y1QAHicbcM9CoJgAADQ5+cJGqLNSTChTdRNHAR/cCjBAo/jxS2ce/AEp2N390/yGwliF1c3qUzuoVCq1BqtTm8wmsyeXhart4/tCxisCAEAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCWSBmAfMYAATdAEx4nGNgYGBkAILbCqeqQfQjXeYVMBoAQVoFtgAA')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,d09GRgABAAAAAATcAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAcn3rR1EdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOtf5BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAABgAAAAZHRuLQNoZWFkAAABMAAAADIAAAA2JoJK9WhoZWEAAAFkAAAAHgAAACQEWgNzaG10eAAAAegAAAAUAAAAFAVwADhsb2NhAAACRAAAAAwAAAAMAAAAMm1heHAAAAGEAAAAHQAAACAASAAkbmFtZQAAArAAAAHAAAADUdeLqtNwb3N0AAAEcAAAACkAAAA0cF7CxnicY2BkYGBgYjiSHqnjGc9v85WBm/kFUIThkS7zGjhtwdDKdJExH8jlAKoFAgAutgoYAAB4nGNgZGBgzGcAAmYuEMl0kSGFQZIBGbACACbrAdQAAHicY2BkYGBgZVBkANEMDExAzAhmO4D5DAAGEABtAAAAeJxjYGRsZZzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIHaAcQLSXFOAlIKSDWM+WDIfroYBACguCggAAAABGAAAAAAAAAFNAAAAAQAAAwoAOHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAMnicY2BksGBoZbrImM+gwMDAKMKmrKSux6isxMfEDmKbmpgZG4nLMRobmZkDWUwXY7zcQh3dtMW0tWWY2Nn5oFzjEGZmbj5GP98aHysdASV7TVYhBTDb30OKgQEAGKsRBnicrVLLattAFD2j2IZCSXftppS7KSQLDYqULpxlTBIwlhOsuAS6GieyLfyYICkYf0N/pXTRj+p39Gg07cKLdlMNmnvmvs+dAXCM71Bov89/sMIb9dHjAD018PgIifrhcQfvgrced3EcjDzuUf+VnqrziqdvLqrBCh9U1+MAr9Unj48wV0OPO9Dqp8ddvA+0xz3o4AsGsHjGHiUKLLBEDUGMiCtByNXiPrUzegkuobkPYfCIFWN3qCgL6gy2eHI2jdR5jZ299Ww8Tnjeukw5KxmsMefJuv2eugfKKTJcYcJdcEN5S80dT6fMiIF93pfFYllLHEVJGHLvy2wvl1qG5nFld9WqELN9kqFOtYztjspCTuxWZvnSrOdi53KfP8g0u5pkcjO5nd5lp8w7YsMpG6rZVkaaG7Zo2V6FM5LHKE1Nvcz2m5ldV2dUNMRKejUUMLblxlBeO3a1kyVnmbtJaiYQXPD/e5GQXHNGvVBjGN/GxJx86G6iuYcY5yxjt/W1LRe5xDqSCzloLpzki5e1KWmJ+2HCEcXn/yJ4WPuQ8O+czWvOaa94m+1NtvyatyI05mVVcNbsK0rkvxX9BfZnlWZ4nGNgYmD4//Hb7v9NDBoM2AArEDMyMDEwMzKxF2fmZuYkFgEA/qMIUwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9CNd5jUwGgBBggW+AAA=')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,d09GRgABAAAAAATQAA0AAAAAB0wAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEtAAAABoAAAAcn3rR3EdERUYAAASYAAAAGwAAAB4AJwALT1MvMgAAAaQAAABBAAAAVlOyf6BjbWFwAAAB/AAAAEYAAAFKRGzkw2dhc3AAAASQAAAACAAAAAj//wADZ2x5ZgAAAlAAAABcAAAAcJpimDFoZWFkAAABMAAAADMAAAA2JpdK/WhoZWEAAAFkAAAAHgAAACQEcwOIaG10eAAAAegAAAAUAAAAFAWFADlsb2NhAAACRAAAAAwAAAAMAAAAOG1heHAAAAGEAAAAHQAAACAASAApbmFtZQAAAqwAAAG1AAADRagRBI5wb3N0AAAEZAAAACkAAAA0cGzCxHicY2BkYGBgYjhSuXPh23h+m68M3MwvgCIMj3SZN8BpS4YGpqeMJUAuB1AtEAAAdDMLwAB4nGNgZGBgLGEAAmZ5EMn0lCGFQZIBGbACACsPAgIAAHicY2BkYGBgZVBjANEMDExAzAhmO4D5DAAGjQByAAAAeJxjYGScwDiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQOwA4wSkuaYAKQUlG8YSsGQJXA0DACxLCh0AAAABGAAAAAAAAAFNAAAAAQAAAx8AOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlGz+/wfywfT/x3dPQNUDASMbA5zDyAQkmBhQASPEiuEMACp9CVIAAAAAAAAAAAAAAAAAOHicY2BksGRoYHrKWMKgysDAKMKmrKSmrseorMTHzA5km5qYGRuJicsxGhvZMZsD2UxP4/z0/UyMPDX4FNQVxJmYePkxBBgD/JoMDHS12UWVrNUklJE5DADJcRG5eJytUstq20AUPaPYhkLxsqssLpRCApEQUjbOqsQkBhM5QYpLtuNYtoVtTZAUjHf9oLbf1E/p0WgotJSsqkH3nvt+zAAY4gcUuu/Lb6wwVB8d9jBQnx0+QaS+O9zDB2/ocB9Db+zwgPqv9FS9d5S+2agWK5yqvsMe3qvI4RMs1cThHi7UT4f7OPU+OTzAhZdiDIMXHFGhwBobNBBECHli+DwdHlG7oJfgGgHpFBrP2DL2gJq8oE6jxNLaAiTWa2btnWfrcUa5tJlyVtLYYUXJWPpI3RP5HBlukJIKJuT31DxQOmdGjM3LsSrWm0aiMIx9n3Qki6NcBzLVz1tzqLeF6HIp0yAJZGYOVBZyZkpZ5Bu9W4lZyWP+JPPsJs1kkt7PH7Jz5r1jwwkbathWxjH3bNGwvZqD4y5JdLPJjvuF2dWU26kqurT9Y2aqvSa/taM1lldcZG7XGHB1giv+b1XwOWbOmFfKmtFdRGQtsbuCCJcsYsrm1lTrXKIglCv5szM/zdevO13REI38mMuJLt8e7e/C+HfC9hHnNNe8xO4Cu8naJyI05lVdcMXsKYzl/1T8BT/ck9YAAAB4nGNgYmD4//Hb7v8TGNQYsAFWIGZkYGJgZmRiL87MzcxJLAIAALoIXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9CNd5g0wGgBBqgXGAAA=')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.584220px;}
|
||
._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.778000px;}
|
||
.ya6{bottom:10.911000px;}
|
||
.y3d{bottom:10.993000px;}
|
||
.y67{bottom:11.254000px;}
|
||
.y83{bottom:11.412000px;}
|
||
.ybf{bottom:12.552000px;}
|
||
.y11{bottom:13.018000px;}
|
||
.y1f{bottom:20.429000px;}
|
||
.y3c{bottom:21.877000px;}
|
||
.y48{bottom:22.521000px;}
|
||
.ya5{bottom:23.514000px;}
|
||
.y82{bottom:24.014000px;}
|
||
.y72{bottom:25.371000px;}
|
||
.ybe{bottom:28.134000px;}
|
||
.y1e{bottom:31.313000px;}
|
||
.y27{bottom:32.236000px;}
|
||
.y55{bottom:34.114000px;}
|
||
.y5e{bottom:35.814000px;}
|
||
.ya4{bottom:36.116000px;}
|
||
.y81{bottom:36.617000px;}
|
||
.y10{bottom:36.806000px;}
|
||
.y71{bottom:37.974000px;}
|
||
.y1d{bottom:42.197000px;}
|
||
.y6{bottom:42.285000px;}
|
||
.y3b{bottom:43.645000px;}
|
||
.y26{bottom:45.984000px;}
|
||
.y54{bottom:46.716000px;}
|
||
.ya3{bottom:48.719000px;}
|
||
.y80{bottom:49.220000px;}
|
||
.y5d{bottom:49.562000px;}
|
||
.y70{bottom:50.576000px;}
|
||
.y98{bottom:51.484000px;}
|
||
.y47{bottom:52.888000px;}
|
||
.y1c{bottom:53.081000px;}
|
||
.y66{bottom:54.293000px;}
|
||
.y3a{bottom:54.529000px;}
|
||
.y2f{bottom:54.627000px;}
|
||
.ybd{bottom:55.045000px;}
|
||
.yb2{bottom:56.001000px;}
|
||
.yf{bottom:56.009000px;}
|
||
.y5{bottom:58.960000px;}
|
||
.y53{bottom:59.319000px;}
|
||
.y25{bottom:59.732000px;}
|
||
.ya2{bottom:61.322000px;}
|
||
.y7f{bottom:61.822000px;}
|
||
.y6f{bottom:63.179000px;}
|
||
.y5c{bottom:63.747000px;}
|
||
.y1b{bottom:63.965000px;}
|
||
.y97{bottom:64.087000px;}
|
||
.y39{bottom:65.413000px;}
|
||
.y46{bottom:65.491000px;}
|
||
.ybc{bottom:67.648000px;}
|
||
.yb1{bottom:68.604000px;}
|
||
.y65{bottom:69.874000px;}
|
||
.y24{bottom:73.481000px;}
|
||
.ya1{bottom:73.924000px;}
|
||
.y7e{bottom:74.425000px;}
|
||
.y1a{bottom:74.849000px;}
|
||
.ye{bottom:75.212000px;}
|
||
.y96{bottom:76.689000px;}
|
||
.y45{bottom:78.094000px;}
|
||
.y2e{bottom:78.652000px;}
|
||
.ybb{bottom:80.250000px;}
|
||
.y8b{bottom:83.323000px;}
|
||
.y5b{bottom:84.310000px;}
|
||
.y52{bottom:84.524000px;}
|
||
.y64{bottom:85.456000px;}
|
||
.y19{bottom:85.734000px;}
|
||
.ya0{bottom:86.527000px;}
|
||
.y7d{bottom:87.028000px;}
|
||
.y38{bottom:87.182000px;}
|
||
.y6e{bottom:88.384000px;}
|
||
.y95{bottom:89.292000px;}
|
||
.y44{bottom:90.696000px;}
|
||
.yba{bottom:92.853000px;}
|
||
.yb0{bottom:93.809000px;}
|
||
.yd{bottom:94.415000px;}
|
||
.y8a{bottom:95.926000px;}
|
||
.y18{bottom:96.618000px;}
|
||
.y51{bottom:97.127000px;}
|
||
.y37{bottom:98.066000px;}
|
||
.y2d{bottom:98.446000px;}
|
||
.y5a{bottom:98.496000px;}
|
||
.y7c{bottom:99.630000px;}
|
||
.y6d{bottom:100.987000px;}
|
||
.y94{bottom:101.895000px;}
|
||
.y23{bottom:102.186000px;}
|
||
.y43{bottom:103.299000px;}
|
||
.yaf{bottom:106.412000px;}
|
||
.y89{bottom:108.529000px;}
|
||
.y50{bottom:109.730000px;}
|
||
.y9f{bottom:111.732000px;}
|
||
.y7b{bottom:112.233000px;}
|
||
.y6c{bottom:113.590000px;}
|
||
.yc{bottom:113.618000px;}
|
||
.y17{bottom:113.955000px;}
|
||
.y93{bottom:114.497000px;}
|
||
.y63{bottom:114.985000px;}
|
||
.y42{bottom:115.902000px;}
|
||
.y4{bottom:116.359000px;}
|
||
.yb9{bottom:118.058000px;}
|
||
.y2c{bottom:118.240000px;}
|
||
.yae{bottom:119.014000px;}
|
||
.y36{bottom:119.834000px;}
|
||
.y59{bottom:120.576000px;}
|
||
.y88{bottom:121.131000px;}
|
||
.y4f{bottom:122.332000px;}
|
||
.y9e{bottom:124.335000px;}
|
||
.y7a{bottom:124.836000px;}
|
||
.y6b{bottom:126.192000px;}
|
||
.y22{bottom:126.210000px;}
|
||
.y92{bottom:127.100000px;}
|
||
.y41{bottom:128.504000px;}
|
||
.y16{bottom:129.537000px;}
|
||
.y62{bottom:130.566000px;}
|
||
.yb8{bottom:130.661000px;}
|
||
.y35{bottom:130.718000px;}
|
||
.yad{bottom:131.617000px;}
|
||
.y4e{bottom:134.935000px;}
|
||
.y2b{bottom:136.810000px;}
|
||
.y9d{bottom:136.938000px;}
|
||
.y79{bottom:137.438000px;}
|
||
.y12{bottom:138.248000px;}
|
||
.y3{bottom:138.377000px;}
|
||
.y6a{bottom:138.795000px;}
|
||
.y91{bottom:139.703000px;}
|
||
.y40{bottom:141.107000px;}
|
||
.y34{bottom:141.602000px;}
|
||
.yb{bottom:141.611000px;}
|
||
.yb7{bottom:143.264000px;}
|
||
.yac{bottom:144.220000px;}
|
||
.y21{bottom:146.004000px;}
|
||
.y87{bottom:146.337000px;}
|
||
.y4d{bottom:147.538000px;}
|
||
.y9c{bottom:149.540000px;}
|
||
.y78{bottom:150.041000px;}
|
||
.y69{bottom:151.398000px;}
|
||
.y90{bottom:152.305000px;}
|
||
.y33{bottom:152.486000px;}
|
||
.y58{bottom:152.619000px;}
|
||
.y3f{bottom:153.710000px;}
|
||
.y2a{bottom:155.381000px;}
|
||
.yab{bottom:156.822000px;}
|
||
.y86{bottom:158.939000px;}
|
||
.y61{bottom:160.096000px;}
|
||
.y4c{bottom:160.140000px;}
|
||
.ya{bottom:160.814000px;}
|
||
.y9b{bottom:162.143000px;}
|
||
.y77{bottom:162.644000px;}
|
||
.y32{bottom:163.371000px;}
|
||
.y20{bottom:164.575000px;}
|
||
.y8f{bottom:164.908000px;}
|
||
.y15{bottom:166.044000px;}
|
||
.yb6{bottom:168.469000px;}
|
||
.y3e{bottom:168.554000px;}
|
||
.y57{bottom:168.856000px;}
|
||
.yaa{bottom:169.425000px;}
|
||
.y68{bottom:170.556000px;}
|
||
.y85{bottom:171.542000px;}
|
||
.y4b{bottom:172.743000px;}
|
||
.y31{bottom:174.255000px;}
|
||
.y29{bottom:174.424000px;}
|
||
.y9a{bottom:174.746000px;}
|
||
.y76{bottom:175.246000px;}
|
||
.y60{bottom:175.677000px;}
|
||
.y2{bottom:177.832000px;}
|
||
.y9{bottom:180.017000px;}
|
||
.yb5{bottom:181.072000px;}
|
||
.y14{bottom:181.626000px;}
|
||
.ya9{bottom:182.028000px;}
|
||
.y84{bottom:184.145000px;}
|
||
.y56{bottom:185.093000px;}
|
||
.y4a{bottom:185.346000px;}
|
||
.y8e{bottom:186.726000px;}
|
||
.y99{bottom:187.348000px;}
|
||
.y75{bottom:187.849000px;}
|
||
.y30{bottom:191.592000px;}
|
||
.yb4{bottom:193.674000px;}
|
||
.ya8{bottom:194.630000px;}
|
||
.y5f{bottom:197.211000px;}
|
||
.y1{bottom:198.454000px;}
|
||
.y8{bottom:199.220000px;}
|
||
.y49{bottom:200.190000px;}
|
||
.y74{bottom:200.452000px;}
|
||
.y8d{bottom:202.308000px;}
|
||
.y28{bottom:204.954000px;}
|
||
.yb3{bottom:206.277000px;}
|
||
.y13{bottom:207.174000px;}
|
||
.ya7{bottom:207.233000px;}
|
||
.y73{bottom:213.054000px;}
|
||
.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.445626pt;}
|
||
._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.704000pt;}
|
||
.ya6{bottom:14.548000pt;}
|
||
.y3d{bottom:14.657333pt;}
|
||
.y67{bottom:15.005333pt;}
|
||
.y83{bottom:15.216000pt;}
|
||
.ybf{bottom:16.736000pt;}
|
||
.y11{bottom:17.357333pt;}
|
||
.y1f{bottom:27.238667pt;}
|
||
.y3c{bottom:29.169333pt;}
|
||
.y48{bottom:30.028000pt;}
|
||
.ya5{bottom:31.352000pt;}
|
||
.y82{bottom:32.018667pt;}
|
||
.y72{bottom:33.828000pt;}
|
||
.ybe{bottom:37.512000pt;}
|
||
.y1e{bottom:41.750667pt;}
|
||
.y27{bottom:42.981333pt;}
|
||
.y55{bottom:45.485333pt;}
|
||
.y5e{bottom:47.752000pt;}
|
||
.ya4{bottom:48.154667pt;}
|
||
.y81{bottom:48.822667pt;}
|
||
.y10{bottom:49.074667pt;}
|
||
.y71{bottom:50.632000pt;}
|
||
.y1d{bottom:56.262667pt;}
|
||
.y6{bottom:56.380000pt;}
|
||
.y3b{bottom:58.193333pt;}
|
||
.y26{bottom:61.312000pt;}
|
||
.y54{bottom:62.288000pt;}
|
||
.ya3{bottom:64.958667pt;}
|
||
.y80{bottom:65.626667pt;}
|
||
.y5d{bottom:66.082667pt;}
|
||
.y70{bottom:67.434667pt;}
|
||
.y98{bottom:68.645333pt;}
|
||
.y47{bottom:70.517333pt;}
|
||
.y1c{bottom:70.774667pt;}
|
||
.y66{bottom:72.390667pt;}
|
||
.y3a{bottom:72.705333pt;}
|
||
.y2f{bottom:72.836000pt;}
|
||
.ybd{bottom:73.393333pt;}
|
||
.yb2{bottom:74.668000pt;}
|
||
.yf{bottom:74.678667pt;}
|
||
.y5{bottom:78.613333pt;}
|
||
.y53{bottom:79.092000pt;}
|
||
.y25{bottom:79.642667pt;}
|
||
.ya2{bottom:81.762667pt;}
|
||
.y7f{bottom:82.429333pt;}
|
||
.y6f{bottom:84.238667pt;}
|
||
.y5c{bottom:84.996000pt;}
|
||
.y1b{bottom:85.286667pt;}
|
||
.y97{bottom:85.449333pt;}
|
||
.y39{bottom:87.217333pt;}
|
||
.y46{bottom:87.321333pt;}
|
||
.ybc{bottom:90.197333pt;}
|
||
.yb1{bottom:91.472000pt;}
|
||
.y65{bottom:93.165333pt;}
|
||
.y24{bottom:97.974667pt;}
|
||
.ya1{bottom:98.565333pt;}
|
||
.y7e{bottom:99.233333pt;}
|
||
.y1a{bottom:99.798667pt;}
|
||
.ye{bottom:100.282667pt;}
|
||
.y96{bottom:102.252000pt;}
|
||
.y45{bottom:104.125333pt;}
|
||
.y2e{bottom:104.869333pt;}
|
||
.ybb{bottom:107.000000pt;}
|
||
.y8b{bottom:111.097333pt;}
|
||
.y5b{bottom:112.413333pt;}
|
||
.y52{bottom:112.698667pt;}
|
||
.y64{bottom:113.941333pt;}
|
||
.y19{bottom:114.312000pt;}
|
||
.ya0{bottom:115.369333pt;}
|
||
.y7d{bottom:116.037333pt;}
|
||
.y38{bottom:116.242667pt;}
|
||
.y6e{bottom:117.845333pt;}
|
||
.y95{bottom:119.056000pt;}
|
||
.y44{bottom:120.928000pt;}
|
||
.yba{bottom:123.804000pt;}
|
||
.yb0{bottom:125.078667pt;}
|
||
.yd{bottom:125.886667pt;}
|
||
.y8a{bottom:127.901333pt;}
|
||
.y18{bottom:128.824000pt;}
|
||
.y51{bottom:129.502667pt;}
|
||
.y37{bottom:130.754667pt;}
|
||
.y2d{bottom:131.261333pt;}
|
||
.y5a{bottom:131.328000pt;}
|
||
.y7c{bottom:132.840000pt;}
|
||
.y6d{bottom:134.649333pt;}
|
||
.y94{bottom:135.860000pt;}
|
||
.y23{bottom:136.248000pt;}
|
||
.y43{bottom:137.732000pt;}
|
||
.yaf{bottom:141.882667pt;}
|
||
.y89{bottom:144.705333pt;}
|
||
.y50{bottom:146.306667pt;}
|
||
.y9f{bottom:148.976000pt;}
|
||
.y7b{bottom:149.644000pt;}
|
||
.y6c{bottom:151.453333pt;}
|
||
.yc{bottom:151.490667pt;}
|
||
.y17{bottom:151.940000pt;}
|
||
.y93{bottom:152.662667pt;}
|
||
.y63{bottom:153.313333pt;}
|
||
.y42{bottom:154.536000pt;}
|
||
.y4{bottom:155.145333pt;}
|
||
.yb9{bottom:157.410667pt;}
|
||
.y2c{bottom:157.653333pt;}
|
||
.yae{bottom:158.685333pt;}
|
||
.y36{bottom:159.778667pt;}
|
||
.y59{bottom:160.768000pt;}
|
||
.y88{bottom:161.508000pt;}
|
||
.y4f{bottom:163.109333pt;}
|
||
.y9e{bottom:165.780000pt;}
|
||
.y7a{bottom:166.448000pt;}
|
||
.y6b{bottom:168.256000pt;}
|
||
.y22{bottom:168.280000pt;}
|
||
.y92{bottom:169.466667pt;}
|
||
.y41{bottom:171.338667pt;}
|
||
.y16{bottom:172.716000pt;}
|
||
.y62{bottom:174.088000pt;}
|
||
.yb8{bottom:174.214667pt;}
|
||
.y35{bottom:174.290667pt;}
|
||
.yad{bottom:175.489333pt;}
|
||
.y4e{bottom:179.913333pt;}
|
||
.y2b{bottom:182.413333pt;}
|
||
.y9d{bottom:182.584000pt;}
|
||
.y79{bottom:183.250667pt;}
|
||
.y12{bottom:184.330667pt;}
|
||
.y3{bottom:184.502667pt;}
|
||
.y6a{bottom:185.060000pt;}
|
||
.y91{bottom:186.270667pt;}
|
||
.y40{bottom:188.142667pt;}
|
||
.y34{bottom:188.802667pt;}
|
||
.yb{bottom:188.814667pt;}
|
||
.yb7{bottom:191.018667pt;}
|
||
.yac{bottom:192.293333pt;}
|
||
.y21{bottom:194.672000pt;}
|
||
.y87{bottom:195.116000pt;}
|
||
.y4d{bottom:196.717333pt;}
|
||
.y9c{bottom:199.386667pt;}
|
||
.y78{bottom:200.054667pt;}
|
||
.y69{bottom:201.864000pt;}
|
||
.y90{bottom:203.073333pt;}
|
||
.y33{bottom:203.314667pt;}
|
||
.y58{bottom:203.492000pt;}
|
||
.y3f{bottom:204.946667pt;}
|
||
.y2a{bottom:207.174667pt;}
|
||
.yab{bottom:209.096000pt;}
|
||
.y86{bottom:211.918667pt;}
|
||
.y61{bottom:213.461333pt;}
|
||
.y4c{bottom:213.520000pt;}
|
||
.ya{bottom:214.418667pt;}
|
||
.y9b{bottom:216.190667pt;}
|
||
.y77{bottom:216.858667pt;}
|
||
.y32{bottom:217.828000pt;}
|
||
.y20{bottom:219.433333pt;}
|
||
.y8f{bottom:219.877333pt;}
|
||
.y15{bottom:221.392000pt;}
|
||
.yb6{bottom:224.625333pt;}
|
||
.y3e{bottom:224.738667pt;}
|
||
.y57{bottom:225.141333pt;}
|
||
.yaa{bottom:225.900000pt;}
|
||
.y68{bottom:227.408000pt;}
|
||
.y85{bottom:228.722667pt;}
|
||
.y4b{bottom:230.324000pt;}
|
||
.y31{bottom:232.340000pt;}
|
||
.y29{bottom:232.565333pt;}
|
||
.y9a{bottom:232.994667pt;}
|
||
.y76{bottom:233.661333pt;}
|
||
.y60{bottom:234.236000pt;}
|
||
.y2{bottom:237.109333pt;}
|
||
.y9{bottom:240.022667pt;}
|
||
.yb5{bottom:241.429333pt;}
|
||
.y14{bottom:242.168000pt;}
|
||
.ya9{bottom:242.704000pt;}
|
||
.y84{bottom:245.526667pt;}
|
||
.y56{bottom:246.790667pt;}
|
||
.y4a{bottom:247.128000pt;}
|
||
.y8e{bottom:248.968000pt;}
|
||
.y99{bottom:249.797333pt;}
|
||
.y75{bottom:250.465333pt;}
|
||
.y30{bottom:255.456000pt;}
|
||
.yb4{bottom:258.232000pt;}
|
||
.ya8{bottom:259.506667pt;}
|
||
.y5f{bottom:262.948000pt;}
|
||
.y1{bottom:264.605333pt;}
|
||
.y8{bottom:265.626667pt;}
|
||
.y49{bottom:266.920000pt;}
|
||
.y74{bottom:267.269333pt;}
|
||
.y8d{bottom:269.744000pt;}
|
||
.y28{bottom:273.272000pt;}
|
||
.yb3{bottom:275.036000pt;}
|
||
.y13{bottom:276.232000pt;}
|
||
.ya7{bottom:276.310667pt;}
|
||
.y73{bottom:284.072000pt;}
|
||
.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]'>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">24.<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">2024-03-29</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 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">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:74.216000px;width:31.604000px;height:8.911000px;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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXUlEQVR42u3ZwQnCQBCG0V1x8GgNgiWkA0ltacIOPeXoXDYthIBkhPcKmMN/+mB6ZjYAACgjIi5WAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAP7M1QSca10eP73/md9GBjjgOb2MwIl6ZloBAIA6IsK7HwCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgDAHr3fb2P9tjbGsAYAACVs9SYT9fLEXgQAAAAASUVORK5CYII="/><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><span class="fc5">&<span class="_ _10"> </span></span>Singleton)<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="ff8 fc5">&<span class="_ _10"> </span><span class="fc0">Singleton)<span class="_ _10"> </span></span>=<span class="_ _10"> </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">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>t<span class="_ _8"></span>yp<span class="_ _f"></span>e<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<span class="_ _e"> </span>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<span class="_ _e"> </span>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/<span class="_ _c"> </span>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:156.017000px;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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAItklEQVR42u3ZMUpDQRCA4ay8wWrxDGLlCUSsBUvvkkNY5QYewkNYeAhvYBW2cpqXQkhhGcHM431fmSIMsxB+Ju3m7mEDAABlfH68X9gCAADViFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAI5aZtoCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgH80LWjWMcbfv6T37tUB/DIDxbmkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDzaplpCwAA1BERLqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAFZkWtCsYwwPBgBwmt77gqZ1SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKRaAQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABWarKCFXre7X598rbdWgsAUEfLzKXMOsbwYAAAp+m9L2XUiPB3PwAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACOWmbaAgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBgVab9y7UtAMCPr8dXS4Czu71/au3qct5/bzbzPFsIAAAlHADFiyv+xQQZcQAAAABJRU5ErkJggg=="/><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<span class="_ _c"> </span>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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImklEQVR42u3ZMUoDQRTH4R3Zh9WSM4iVJxCxFnKFFDmPl/AGFp4hYOEhvIFV2MLkNWtnFwgp5A1+3wmG/zQ/Ztrt/eMAAABlfH68X1kBAIBqRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAL9aZloBAIA6IsJLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAA/9fY0VnneXZhAACXmaapo9N6SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAADhHy0wrAABQR0R4SQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCANCBsZeDfh8O683WhUFfdm+vRgDgAi0zrQAAQB0R4bsfAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgDQlXH/fGMFAOCPfT29GIFT7h7Wra2ul/1xGJZlMQgAACX8APetIwDV9C72AAAAAElFTkSuQmCC"/><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.001000px;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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJCElEQVR42u3cMU4CQRSAYdbsRCwmNl7AeActLOgtLCg4jq33oeAEFoYzWHoBMgXrNNhZYGJiIvhm+b5yq+XNZPNnFuhu7u4nAAAQxtvry5kpAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOBLV2s1BQAA4kgpOUkFACAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAftY3dK+lFAsGxJFz9pgC2npMNcRJKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUIAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAOJSu1moKAADEkVJykgoAQDgiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAE5M39C9llIs2G/lnC0rbW0JAJg4SQUAIKDeCACIqa03LV5TwN9ykgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAADB9EZAi7bDMJsv9i6uV0uTAQCRCv/mYjqVpAAwYl73AwAgUgEAQKQCACBSAQBApAIAMDp+3Q9AUDlnQ4CT5SQVAIBwulqrKQAAEEdKyUkqAADhtPSd1FKKBTum+N8GsyVsCQDGykkqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAAA0ph/9J9wOw2y+2Lu4Xi2t/cm6fXj8ftGWAIBQulprK/daSrFgx5RztiVoa0sAMA4pJa/7AQAIR6QCACBSAQBApAIAIFIBAECkAgAgUgEA4NBa+p9UAABOgf9JBQAgIpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAses3z9emAABAHFdP7113eb7bfEwmu93OQAAACOETQVpLdosS1R0AAAAASUVORK5CYII="/><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<span class="_ _9"> </span>method()<span class="_ _13"> </span><span class="ff4">(pure<span class="_ _e"> </span>virtual<span class="_ _e"> </span>metho<span class="_ _f"></span>d<span class="_ _e"> </span>of<span class="_ _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<span class="_ _9"> </span>method()<span class="_ _13"> </span><span class="ff4">calls<span class="_ _13"> </span></span>t<span class="_ _10"> </span>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>
|