Modern-CPP-Programming/htmls/10.Templates_I.html
2025-01-30 14:34:16 -08:00

1328 lines
585 KiB
HTML

<!DOCTYPE html>
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="generator" content="pdf2htmlEX"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<style type="text/css">
/*!
* Base CSS for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
<style type="text/css">
/*!
* Fancy styles for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
<style type="text/css">
.ff0{font-family:sans-serif;visibility:hidden;}
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,d09GRgABAAAAAA3MAA0AAAAAE2QAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAANsAAAABoAAAAcoqQZNkdERUYAAA2UAAAAHAAAAB4AJwAjT1MvMgAAAaQAAABBAAAAVlTVYBJjbWFwAAACVAAAALYAAAGqQGFzamdhc3AAAA2MAAAACAAAAAj//wADZ2x5ZgAAA0gAAAhEAAALfE+Am49oZWFkAAABMAAAADMAAAA2Kl6TUGhoZWEAAAFkAAAAHgAAACQGZAPlaG10eAAAAegAAABqAAAAdDzUBR5sb2NhAAADDAAAADwAAAA8IPwkBG1heHAAAAGEAAAAHQAAACAAYQBPbmFtZQAAC4wAAAG2AAADOWr2WfZwb3N0AAANRAAAAEcAAABcAoMDTHicY2BkYGBgYmRbcfrKxXh+m68M3MwvgCIMjw8uj4XTUv9fMS9kOgjkcjAwgUQBoisOfAB4nGNgZGBgOvj/FQMD810GIGBeyMDIgApkAXKKBFAAAHicY2BkYGCQZfBhYGIAARDJyAAScwDzGQAM4gCxAAAAeJxjYGSyZ5zAwMrAwNTFtIeBgaEHQjM+YDBkZAKKMrAyM8AAIwMSCEhzTQFSCgylTAf/vwKqPMggBlMDAMY7CpMAAAB4nGOUYAADRl8QAURVDFKM9gxZTJoMlkCczyzE4MF0ksGccRqDEfNdBmsg34RZj8GcKZVBicmfwZipkEGXSY9Bm6mRwZhRj0GdiRHIfs2gD5TXZqoByusB5aMYdBlPAdn+DCogcQAWLw8mAAB4nL2PW4qBcRjGf5/z+Xwm2QCxBqVcuGMBkqRcSM0eLEQR5n6upjTZwliAhTz+fPrSKHPnqff4PL0HwI1tFSyuWJnKutUeliZWSZhOjBoNWrTp0KXHgCFjJkyZ8yEZXY06TYfvG35042csJJ110q+O+tFB3/rSp/baaauN1ve9L2D5cESWyzjXX4H9ggOPF5//aUwAghAyWdhuRKIPbIx4IkmKNGSyuXyBYqlc+e+y9+ECVBIoXwAAAAAAAAAAAAAAAAAOACAAYACIAMwBCgE2AYoBzgIQAk4CkALEAwADUgN2A6ID6gQkBFIEigTqBVQFhAW+eJxtVmts29YZ5b2SSOpFPSmaomWJoh62JNMSRYqWZCvOy3XhZGvixM2jdYpmSRMnRewMbpN1XX+kLwxLUAzNkjaPLkMbzGgxYMMwbEg7YMWaotiA/smPBlgHbPuxpsXQZY9sQGd63yVlO0ELGNcUKd3vfOc75/BSiEpS11CN+jfloqi8bMioZt1CwrUWRVGImoX1BqwMRTXidLagN7Qb6Uo6XZkkSxqeYqq5/Cn6HL9KRagB+EmcoZVssWDoZgfVtYSQYPSi6lKyNEPzcaEP7nWw2UCfl5tPLjQHK9JMQ5+R1CmOzRT6uPxk0B/k7isEpVKWDaCxV6ZmD26/fH6X3tD1B186b8hDcVbf0Pzu+dGxBpMwB9oE4zFY3oP6PRQlFzKMARWQEaEVQzO1BB+J96E2Qu/lrP/mlKESM7zt22MRmikNKS5XOhCOY0ZKj7HRpQ/j4QBl9zyx/Cn+AP+GqgIfcWgGemnUNcFsaIkUIjdUVFSRkuVcfLzPVdcaZkMnveIPLpz4wUcfnT02rbNhlzvA0BhFTu1Itrd3BgdGv76+b89pGmGPO3jrkddunD93Y/fWgDf0tzDrotlj3wmUNj2z44Gnxge5bz3mcXsw4DCB3NP4x9QggFJUVxll6RSUaRj1iKIXyoi3O+MLSpb03DAi5KYh49MiEytPtJ7LhmbG+0Wxf3yGKaly7tkFpachio0e3ELvNzfU41xyqbrZ+s/m6h0+7E8DG9EUDqSiacKBBst+/CaVIpzeWyBR10we5gnMJoDY/coTC0pyOAl/a1fOZiHYzL5aup2KOtzCwFxXYN/WPfsWEZ0tIgZGhet8kTFAIt1iREES6pA+V0u6ruRnj+ShF2QtsQl2mULuiJpbWMipETe0txgJeD75hPZFF512HSzr0NKz0SheQEt/CUUljuDipGgI/QsweoJL13GT86wiRZQO3H+M36BUh3tAyuGulFYIJyLTQQrwkXMziinjj0U6VF7fqfr8Xsyq9f6Bsy8P9NdVFnv9vmpJrwhR1i3G8Cn0202b1ABG/gC3dBtkl+4qMcQF/CCQiFAdHvyTw5cJWrwDfBEcWRuCLcgvTcLWIcGDFUMw8R3CxalDRy5A/8r8HBm8VKj3x7adJFQ9+QT+HtcbC1vnd7zy/cPoxMqYrOeM7YMp9uQBtLfLke3vLCwbcYzKUUV7ajAfQx9CCk0EKPBFYKPjMmPEAkIMDD6EGLxxQpw1+MSHWXciNtUvJ2TeS19xMz6OfcuXLP3u4RmXS+xl9eHdPjYcRyJ8QpwUCaFLfjZhbUpyi7dv2/3Xl/+Be3GY9O94sWvFugZW5MCEX+3E3oWHjl+9enznSNHn8SGa9rqDj41GB0bVrKyOlGMbD3tsI/70vhOX/3x5XT3Qs+hnPcHde9g+bd+6zj4tze7ZYruQ9A/+w6MYU2FKdlDIhmMGxZA1Em8FYk1Hm5rZwKNnDlt/rQlCDYmzp6cq9Ye2SsGgtHW/nls6dFYMp9HxdFi8MPvN4fVcyno+xU2YzqzLUCeClsn/PHNXDUFR0V3m57vmJ9UgSnEkZZl2tXdiore986AUHG9kRDHTGA9KR6sj+Qjz7ruk6jGourhjhEu9oejv68qvUlxksKl1OZ4CjkehLqkSB5qLd+feV5MN+T6KVnWIpwpRL5tly4cXXr86v6u5RvzB0VhpRJUzgyNqop6VgslGXJnRar8I9c0LcmDktbn5eyaQ1vZ1Rh/WMr54KCP0ZWKgDcAIygNVYYoHBZKA6HIjmLzDfB0xc3OGIBjOCnoKyWhODon2lfWSHFrlGN2EfXrv5Xh1H8Kpy0Q3Y9YBwumxp0b6gtK6/lY6TrscGsnwYFMuZ51OcQnJUDJk3yGY3duwb3XFISTVXJBqLki1Ou+Yxi51V6J1oeO393sO1QT0awiza2giX5ueEGonIcXeehNS7CTBAQWh9EVkDUaj6PfIenELwbAF7QQwnqC1F73OeeAb1pl0eE1LLcCTJ7nhpEYRFe+CYiMB+6KIrsAATdyacPu8rHXdZwOI6yf8LO1B/EShOo1ubbGeDvv86OcB69Vu5acZEXkY6xk0QG7YPiE6uh905CXsInJaAAERg0AokeyCdAfB4vsv/eHSxT9enM61m6neViufa7Zb7WaOWp6/eHF+7sqVAxse1aDl/RvGD5miaB5a8SD6AvoRqIK9t20A512xZkUaKq0YpYPQF49PPi/Ujh61zRGaOjrt4Ycrm6Xg45VhHi00t//ImWR3pju/VuktC1zqHaFM6kEv26CeTm0mnu+K37Dz/su1YaZ8nGb6sADnHTCDXtdcuv3WcLBgvM1fTI3LCR/2+jLaHqF2ZJag+vvuk1uGlZKPjnqDiTITCP4y3ltVegeZwC61LTCbuGxWTuRVqafXn/nJPWi3NcobueBQKrk30tMJov50ORHAoLefJfpT3dxE52AWk93cLNIM6QEMa8e0DbNhwMmMHGWKXac37CPbitcLhuomL5c4fBnObUICnds9vtfkPH7atrYfudTqZK2dCUuVSZWv7Nk4qa0+9GGE6XhqOFdtZ7Ku9uZysnimM1PjPWGm5wVQlncyV1w3UEuGfP5IhK80R6adZy9CCsBvQ1JVTrbyyRqHuHBUGrA1nQMhlNH/qLT9Tkar5wG+sHY+IedM8ioui4y2vRxOmnzxepE3k+HyjhojcugzNDWj+TPWy3awiLEMOprxazOLtmdg5sQzJGuyTIRDEIMFEnFr+WC/ZOCW4mReaxyjb/xwnsEJjcgske6XAq1HJkpltYBudaw7nflHx4Kdm3J3ctY/S2OZuPvBBz5zPPN/ZRL6inicrVJNT9tAEH1rkkiVWm69VBymN0CyaztwIFIvpIAaEUAOQVw3sEmsJN7IThTlH/WA+EH9NX1Zryq1anuqLc+8efO1M2sA+3iFQv08/MQK79RHjwO01GeP95Cobx438D5oedzEftDxuEV+zUjVeEPrxWXtsMIH1fQ4wFv1yeM9jNQXjxs4Vt89buIgOPC4hePgK7qwWGKLEjkmmGIFQYqYbxsh3xqfkR0xSnCOiLIHjSfMmLtBRZ2T0yjw7HwR+i7qxvnryF3EIe3CVTLspDHHmJZ18p7cI/UQA1wgoxRcUd+SuaN1xIro2uW2zCfTlaRx3A5DyjMZbeU8kp5+mtlNNctFF8/Si/qR3NgNyVwObSEjM9Xzsdix3JtHGQ4usoFcZbfDu8ER617zwBkPsnBDdCmXHCvh4LjuZ3ahi65eVgnN3Uili5vTsOVCU1+6uVZOl9yicTuMmC7o8Pt7+ZC8Ycaa5TRz6/i28yR++ylO2cIWq0tbToykUSwd+eVYYWYm67kuybfjMOFa0tN/DfV7V/yx2u7fNfRWvLv63uqZYpwQ48GUVc7N8jzxifyHdj8A48WNPgAAeJxtwzsOQwAAANBHL0B07dqQGGwcoEGkiV+o87i4itlLntDl2KXuvM6B0EMklnh6y+QKpcpHrdHqfPUGo8lssfrZ/gmUB88AAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhkgZgHzGAAE0gBLeJxjYGBgZACC2wqnqkH044PLY2E0AE5EB5IAAA==')format("woff");}.ff2{font-family:ff2;line-height:0.727000;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:0.915000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff7;src:url('data:application/font-woff;base64,d09GRgABAAAAAATkAA0AAAAABuQAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEyAAAABoAAAAcoqQZOkdERUYAAASsAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlXIgqpjbWFwAAAB/AAAAEYAAAFKRYDkOWdhc3AAAASkAAAACAAAAAj//wADZ2x5ZgAAAlAAAAB0AAAAdF5LOhRoZWFkAAABMAAAADMAAAA2KnqSbGhoZWEAAAFkAAAAHgAAACQGSgNsaG10eAAAAegAAAAUAAAAFAcYAERsb2NhAAACRAAAAAwAAAAMAAAAOm1heHAAAAGEAAAAHQAAACAASAAnbmFtZQAAAsQAAAG+AAAC3BPNfFNwb3N0AAAEhAAAAB4AAAA0ObKyo3icY2BkYGBgZmjOWZSXEc9v85WBm/kFUITh8cHl8XDa5f8E5klM24BcDgYmkCgAgJsNfwB4nGNgZGBg2vZ/AgMD8zUGIGCexMDIgApYAWUfA70AAHicY2BkYGBgZVBhANEMDExAzAhmO4D5DAAGWwBwAAAAeJxjYGR8zfiFgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBjZoABRiB2gHEC0lxTgJSC0jGmbf8nAFVuYyiAqmEAACwtDEAB9AAAAAAAAAFNAAAAAQAAA9YARHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlI79/w/kg+n/j+/aQdUDASMbA5zDyAQkmBhQASPEiuEMAMdbCdwAAAAAAAAAAAAAAAAAOgABAET/kAOSArYAIwAAAQcXHgIVFCMnBwYjIjU0NxMnJjU0PgEzIRM2MhcTITIeARQDg+sIAywmDf3sBwoNA1rsDgkLCwEdWgYWBloBHQsLCQFtrBcLhnYED7SrCQ8FCQEVqwkJBwYBARQVFf7sAQYOAAAAeJxtUcFq20AQfavYhqal9AN6mN5ssGVZJhiZEHBCfCgohxhy6kXIi6ViSa60jvBP9dZvKYTeeupf9Gm9hRyqAc2bnZk3b3cAvMd3KJy/Ar8cVuirJ4c9DNRXhy/wSf1wuMea3w738cF76/AAfW/IStV7w+jFdnVY4VJ9dtjDO/XF4Qvcqm8O91jz0+E+RP1xeIBL7yPuUOGAE2rk2CGDgWCIFCP6GSLaAmPiEAEtIlrxTtrWp0hQ8iSmN+zVzHTonNkzsyF7yljz9GSZr+0Mw5lLTGmtNZ/1BRr6isw73HB+N7Vlb8cseCRHY+c+87/lyZq1pdX7YLu1VbKhvpiafeCuOpzqfJcZGaYjmUXRYixhEESyKnSdp0kpcWIyXSSGwV42VZprc5LhdWbMYTmdtm3rJ0XjV/XuZjSWNjeZPOpG1896K+uqNPKQFFrizSpecNw9jrxzpxD3x72mi63SnOcFA73Nj/T/ZK/dVbV9XJ+PK3yS11c4x3NmJlzFxK4gxBUpOHtNVVpCP5DlWQH9PJjMJmEQXuEVC2wWeLLSGsqp7NK6dc7t3I5VWKDrJq9KCYK5HwSh/IfkL3CceU0AAHicY2BiwA9YgZiRgYmBmZGJvTQv08jI2QwAC4UCQQAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH044PL42E0AE5YB5YAAA==')format("woff");}.ff7{font-family:ff7;line-height:0.806000;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.999000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff9;src:url('data:application/font-woff;base64,d09GRgABAAAAAA00AA0AAAAAEWwAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAANGAAAABoAAAAcoqQZPEdERUYAAAz8AAAAHAAAAB4AJwAnT1MvMgAAAagAAABDAAAAVlWOXtRjbWFwAAACZAAAAMoAAAHCjK2Anmdhc3AAAAz0AAAACAAAAAj//wADZ2x5ZgAAA3QAAAd/AAAJlLc16TpoZWFkAAABMAAAADMAAAA2KlOSnmhoZWEAAAFkAAAAIgAAACQGiAKzaG10eAAAAewAAAB4AAAAgjv5CLVsb2NhAAADMAAAAEQAAABEIqYlOm1heHAAAAGIAAAAHgAAACAAZgBLbmFtZQAACvQAAAGqAAAC8Y2jyQxwb3N0AAAMoAAAAFIAAABkAwcDs3icY2BkYGBgYmT7LuX+Mp7f5isDN/MLoAjD44PLE+A0438j5vVMB4FcDgYmkCgAcdsM6AB4nGNgZGBgOvjfiIGBuYmB4X8183qGFAZRBmSgAAB9qwVAAAB4nGNgZGBgUGTwYGBmAAEmIGZkAIk5gPkMAA0BALIAAHicY2Bk/M04gYGVgYGpi2kPgyxDD4j+P5fxAYMhIxNQlIGVmQEGGBmQQECaawqQUmCoZDr43wio8iDDOZgaAG1UDQsAeJxjlGAAA0ZfEMHAwCzPkMMox+AOxMlMTAxeQGzMNJEhl+k5QyLTWoZcxmcM+sxNDGlM1xmSmNYzLGJ8x+DGeJLBnkmYwR5I2wHVMzF8ZQgCYWYDhkCgeCBQzAJIazHGMwQzdjGoMBYzpAD50Yy3GHIYGAEZIxXeeJzNj8tKAnEUh78Zx0teyrK8ZTkLd4pEr1AgBLV0LyIRtBAXgW/TTpTUteAiRHqEtLUP8us/41Awm7b94Nw/DucAEfZWwcLT0lSWXzu8mljDNZljfIMmV1xzS4s7HmjToccjT/R5YSgZ2qUeUDc+de9TXZ96ZuBR2ulLW230qQ+ttdK7FpprpqneNNFYo+CSP2XF+EEt2zg7DOxfC+REiREnEV5zkIQUpCFzGLSOfqdZjk9ynHIG+UKxVOa8cnFZ9T79F/oGCEQwNAAAAAAAAAAAAAAAAAAwAEAATACUAMIA+gEcAVQBcgGgAcIB4AIcAkICcgKgAwwDHgMqA2QDiAOyA94D9gQ6BFwEfgScBMp4nH1VW2zb1hk+59AiJVHWjbo4utkSJcqWZdkSFdK2LMmOLTt27FiWbMmpL5ETx3FzaYMsa9KiaBo4ztZ0KbI2bot0yJqk60u3BdsAAwOMLckwFEO3DAM2rLsgBbKn7aEdtuVlg+X9pJws2YA9kCB5eL7/+/7LdxBGx7Y+oDxkArkRCtG8n6L5gMz5AzEsS6Kfk8QEQ/kTPky56vjqn9KMw6lLVx+wLEs0PPalGbuDSWMvy+r/aa8+4OETZvV27OP56gPMIoTR0NY59AkqIRohmeFlXhZ/ONQquawl/OrZEqwfREhdpxASlcWStVRCiKCRrb+QBPkAWVEMYGgGeIUFWQJWCYfTBx8ydbE6PsDQjJGy+YiYkCXiDfSMf/lE0BsM9Y89Fx+1GDX6mbo6Ha7T0CZbE1fe6XZqaD022IINe0Ue564Vji4Vb3y7sNDREpodjzisHTti7qDdoTsmnXB5e5olPmCeTQNB4CkCqX7gA3lqwVmcIbIkQPiwwocxYhMWE1IK43vVQ8bPOrt7dMZM39E+/+TbB+c4Y+X5nzxHN9AbA7ci8YnWbPnt7vdfeWbX/NgarmEf33pI7pM7KKDUQFEqPJLqdDgZeFF10k6HolImh3Lhtt5dJ/iRxqbTpy/KLZGOgCCEpIXpksslJhf6Wpt724I6Vk4cfXNt+VktY5tuNBimii+dLk0ZDALkdgEhykbWkRZZILwR837ODyokoRVTIIM89D1YqX5xBVtWXn/Ze+zI1Zfee/a7eOqNj8n6vbdWr2/evrrN+c+POP8/xlkMZSXPf+nEY8bd7dEOvxBpTj1iPJALrBp/J8S3GbOse1owm2qMbdf61By1Qz/wwNkE8YBxICwDNlSBE/Et6wsTM6ONkdGWHg9LTs2tTZYj+S531GUgPnXvEui9BXt3IOTnOZ5mKD5MCWGe4jnRyTmcogQwlLuwgvkjvx41iY0YrxSunNH2+DC2nPvlGbI89FH1/Uns+o68+S5Zb6t+9E1R+BSXFOwDgK0FbIuCHRbCVA3V4eRETiSnzpuw8aqCdt5I696DhyQVJRoFJakPbf6LLCsYNwAjCRgGhHSYp0TOyogZLHNUslqsrB7qjAONFe9tsr45Qtar96pbsnA/hjuRMieDWw/x3/EvkAOFFAayUgs5Ax2qtqc6LiYsB4yEoZX2yRD8YV47upxq0dV/uKpjgy1TeV1pcmTMfJI1Jfb1aehYcyzEOTRCvBjt6aci8XRyKHpgZC1ZZwg0eHlO7zKrOc1C3C01bq3+GawMJhOD0tC1UPgHM+XKgeZvLImpZo+/MzYyZzJ1Z8tToY6LP7psdQ26bIf7d8+LoAGwSBH0G5HnSQ3QTFAWWXiMmMH4x0V2Ymp42Ga7sKckZfM/i3i6u45brb1yt6jXJLNfXai8JmNh87c/TRbKxcmkXq/kKANcvwCuVtXl/CoW858g0PkxogTBv6/ere/LFEu6cnl+0W57pzzHu3KYCzSaY8WGP+QqO3Pxiwcrr+/p6QgmnLqBBLgW2UqQ3fhjFEWdaAgSo2Td5lQsAXoUeKdwwkfBW0CZj9qlBpVERnqsTOKAQSsO0CZMO2AAc562DKbMOuMLA4lwPcV2z9qDu1oatIa12ycNxt1WnT7UwMKiJEyUPmEjQrDPoN5dGs9On3k+ENPQTPHlRXy+TkM00bb+itdiSRKzuyvcNZ6Xe5ubWmOhdqm/0tR0MynGZbiqP3f69JTfbA5EWtW+KoAWmbwFChnFmTlRse4b+fk8X7FV8MbpCvSA8o8EdaNqf9zIX8nDG0YT0M9ZyElQnbcMVrNrwk89gnw1CwmG3C9mKEKZQ55kzpB86rkyZhqeW9YWZi4FcKDe6reZp7v/8cTT3aHRQuGa2o8QkwQgpu2/Y6qBGHznf4GfAgWoa4ruTujFMPQKi5zbTlMrmOPJchGr/fr87BG7/ebc/qUlS3+qa9liyaZTh/+4cGH1wOKlN/ZNTE0WJmZnkJrLyFaGxIGbUXGgmnsx28S2YU1YKbvX/rWxfLtY/Epev2//YM9hU7pLyFpizjPHP1u80PVX8kpH6uL+wf1B7tPMgqK5CLfvAa5edfFtsTK+PvSipS1fGbGVTuKzeG70N/juzDyB/4MwBxugLaqwoLY9VIbWC8cw+HdGAxVhVOv2YThjnQ58SdeWlj3PDHt7pueNdQav3SJHHU0s09gabrexe3s96T2leo3LvUOMcc3nIikPGx1O9FldJppiLc5wojHuttCkaTCccni0Gr3F1qrwXgQeN0kK5lH1DpmD1pJFRmR4hgbfmC3sLfukqfpp94j7cv3lhHWpwxV6DaPM2bOZz8tNtTNzBurUiDcUjEeOAWahVkc5E+7k9eOnpHD9UHFQ60yIRUO62JHqyuLx6nrQl5SxX8E4BsVpAYz6bd+FsYWjAJyXtFT/NlcohBoIMZZ9WS/eqA7gjV99nW9+M7EcV+PjLVHd61L2Pk6mYryU6AAgOJoA5fvumGAzdTTo+Ii+3mftPDIZ0roZXa53D97Y/Dyyk9Noc5Y6l2sf3vhW5NWE/9zSi/8GyinwqgB4nJVSzUrjUBT+bmwrgtSFzG6Us1QkISa60KWiQrGtNLa4TTRtQ2uuJpXSV/BZxKWP4iPMc8yXm4sw3U0uOec7537nNwHQxicU6mf0gxU21S+LHbTUkcUbOFLvFjewo74tbqLtNCxuYccJyVSNLVofJqrCCm3VtNjBttqzeAMjFVjcwL76sriJ3+qPxS3sO7u4hMYLViiQYYIpFhAE8HlCuDw1PqM3IUtwAY+ygxiPmDF2iZI6oy9Gjidz56FrWD1zXzMrxgHt3GRKWSnGHGNa2sh7+h6oh4hwhQGl4Ia6T88drUNmxKV+WRXZZLqQwPdD16U8k2QlF5504seZXpazTOL8STpe15OeXtKZyYHOJUmn8Xwseiz36YMMo6tBJDeD/vAuOmTeWzYcmQFKjorbbhTnJUE1QIFn0yp6uniOqa/NFAujC+4sNRvzuCXBOd9/k7mcIGF4hle8GW7FCcl2cWz3G+CUaXW+uNbFJJXA8+VcbBNuP5lnr28pPaHvHnPk4HS94fUaWIut/sKUvZZk1F+g7tfHCTFGaVFm3BHr+ify38n/AhJafJ4AAHicbcoxCoJgAIDRl+6JhAdoMRCCHNtFJQSt0BI8VId1z/8AfvC2T8R/DX5ye52Dg0jsKJE6ycJ5Ubi6Kd1Vao3WQ6c3eHp5G00+vmbLBvtbCrkAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIFIGYB8xgABP4AT3icY2BgYGQAgtsKp6pB9OODyxNgNABOYgeYAAA=')format("woff");}.ff9{font-family:ff9;line-height:0.911000;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,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')format("woff");}.ffb{font-family:ffb;line-height:1.000000;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.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffd;src:url('data:application/font-woff;base64,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')format("woff");}.ffd{font-family:ffd;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ffe;src:url('data:application/font-woff;base64,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')format("woff");}.ffe{font-family:ffe;line-height:0.914000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:fff;src:url('data:application/font-woff;base64,d09GRgABAAAAAATYAA0AAAAAB0QAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEvAAAABoAAAAcoqQZREdERUYAAASgAAAAGwAAAB4AJwALT1MvMgAAAaQAAABFAAAAVlQpf9pjbWFwAAACAAAAAEYAAAFKQxjlbWdhc3AAAASYAAAACAAAAAj//wADZ2x5ZgAAAlQAAABYAAAAWNTgfARoZWFkAAABMAAAADMAAAA2KomSZWhoZWEAAAFkAAAAIAAAACQFyQRGaG10eAAAAewAAAAUAAAAFAZOADdsb2NhAAACSAAAAAwAAAAMAAAALG1heHAAAAGEAAAAHQAAACAASAAfbmFtZQAAAqwAAAG9AAADUdeLrL9wb3N0AAAEbAAAACwAAAA34MBQwnicY2BkYGBgYjiyJc23Kp7f5isDN/MLoAjD44PLU+C0+f+vzOsZ/wO5HEC1QAAAlpsOgwB4nGNgZGBg/P//KwMD8wsGIGBez5DCIMmADFgBhToFFXicY2BkYGBgZZBhANEMDExAzAhmO4D5DAAFkwBoAAAAeJxjYGT8wjiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQKwA4wSkuaaA+IqTGP///wqU/M/ADVXDAAB8Rw3LAAAAARgAAAAAAAABTQAAAAEAAAPoADd4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYFBQn/f8P5IPp/4/vFUHVAwEjGwOcw8gEJJgYUAEjxIrhDACLGwmnAAAAAAAAAAAAAAAAACwAAQA3//UDrwH/ABsAAAAUBw4BBwYrASI1NjchIjQzISYnNDsBMhceARcDrwhRbg4CCRILGXb9CxUVAvV2GQsSCQIOblEBAhACHYFUCQ2PVShVjw0JVIEdeJytUstq20AUPaPYhkJJd+2mlLsJJAsNsoQXyTImCRjLCVZcAl2NE9kWtjVBUjD+hvxK6SIf1e/okTTtwot2Uw2ae+a+z50BcIwfUGi/r3+wwgd14rCHnho6fIRIvTncwSfvo8NdHHtjh3vUv9JTdd7x9L2JqrHCF9V12MN7NXD4CAs1crgDrX463MVnTzvcg/a+YQiLZ+xRIMMSK1QQhAi4IvhcLT6ndk4vwSU09xEMHrFm7A4lZUadQY6nxqYRN16Txt561h6nPOdNppSVDDZY8GSb/Z66B8oZElxhyl1wQ3lLzR1PZ8yIoX3eF9lyVUkYBJHvcz+X+V4utYzM49ruynUmJn+SkY61TOyOykxObS7zdGU2C7ELuU8fZJZcTRO5md7O7pIz5h2z4ZgNVWwrIc0tW7Rsr0Sf5DGOY1Otkv12bjdln4qaWEGvmgImttgayuuGXdXIgrNMm0lqJhBc8P97EZ9cU0a9UGMY38ZEjaXv7iHEgGVsXl3bYplKqAO5kIPm/Gm6fNmYgpYo8PscUTj4F8HD2oeEf+esX3NKe8nbbG+y5Ve/FaExLcqMs2ZfQST/regv5lmVVAAAAHicY2BiYPj/8dvu/00MGgzYACsQMzIwMTAzMnElFhXllxdlpmeUAAAapwmuAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH044PLU2A0AE6KB6AAAA==')format("woff");}.fff{font-family:fff;line-height:0.522000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff10;src:url('data:application/font-woff;base64,d09GRgABAAAAAATMAA0AAAAABzgAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEsAAAABoAAAAcoqQZSkdERUYAAASUAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlQrf+hjbWFwAAAB/AAAAEYAAAFKQxjlbWdhc3AAAASMAAAACAAAAAj//wADZ2x5ZgAAAlAAAABYAAAAWN7igD9oZWFkAAABMAAAADEAAAA2KqWSa2hoZWEAAAFkAAAAIAAAACQF5ARhaG10eAAAAegAAAAUAAAAFAZqADlsb2NhAAACRAAAAAwAAAAMAAAALG1heHAAAAGEAAAAHQAAACAASAAfbmFtZQAAAqgAAAG3AAADRawH+Yxwb3N0AAAEYAAAACwAAAA34M5QwHicY2BkYGBgYjjybfFqm3h+m68M3MwvgCIMjw8uT4fTlv+/MJ9kAnE5GMAUAKn0DkUAAAB4nGNgZGBgYvj/hYGBhYUBCJhPMqQwSDIgA1YAUiADTXicY2BkYGBgZZBhANEMDExAzAhmO4D5DAAFkwBoAAAAeJxjYGRiYpzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIFaAcQLSXFNAfMVJTAz/v4BUMvBA1TAAABJZCt4BGAAAAAAAAAFNAAAAAQAABAQAOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUFCf9/w/kg+n/j+8VQdUDASMbA5zDyAQkmBhQASPEiuEMAIsbCacAAAAAAAAAAAAAAAAALAABADn/9APJAgAAGwAAABQHDgEHBisBIjU2NyEiNDMhJic0OwEyFx4BFwPJCVJxEAIKEgwadvz7FRUDBXYaDBIKAhBxUgECEAQagVUKDo5VKlWODgpVgRp4nK1Sy2rbQBQ9o9iGQvGyqywulEICkVAkskhWJSYxmMgJUlyyHcdjW9jWBEnBeNcPavtN/ZQeSUOhpWRVDbr33PdjBsAQP6DQfV9+Y4Wh+uiwh4H67PARIvXd4R4+eEOH+xh6I4cH1H+lp+q9o/StjWqwwrHqO+zhvYocPsJCjR3u4Uz9dLiPY++TwwOceSlGsHjBASVyrLBGDUGEkCeGz9PhS2rn9BJcIyCdQOMZG8buUZHn1GkUWLS2AEnrNW3tnWfjcUK5aDMZVtLYYknJtvSRuifyGTLcICUVjMnvqXmgdMqMGNmXQ5mv1rVEYRj7PumlzA9yHchEP2/svtrkoouFTIIkkKndU5nLiS1kbtZ6uxS7lEfzJLPsJs1knN7PHrJT5r1jwwkbqtlWxjF3bNGyvYqD4y5JdL3ODru53VaUm6lKujT9Y2rLnSa/bUerW15ykaZdY8DVCa74v1XB55iGMa+UNaO7iJixPs7dFUS4YBFb1Le2XBmJglCu5M/O/NSsXre6pCEO/XMuJ7p4e7S/C+PfCZtHbGiueIndBXaTNU9EaDRllXPF7CmM5f9U/AUwQ5PEAHicY2BiYPj/8dvu/xMY1BiwAVYgZmRgYmBmZOJKLCrKLy/KTM8oAQAc0wm6AAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH044PL02E0AE6oB6YAAA==')format("woff");}.ff10{font-family:ff10;line-height:0.524000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff11;src:url('data:application/font-woff;base64,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')format("woff");}.ff11{font-family:ff11;line-height:0.923000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff12;src:url('data:application/font-woff;base64,d09GRgABAAAAAAokAA0AAAAADjgAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAKCAAAABoAAAAcoqQZWEdERUYAAAnsAAAAHAAAAB4AJwAYT1MvMgAAAaQAAABCAAAAVlauYX9jbWFwAAACKAAAAIcAAAGCJhM/YGdhc3AAAAnkAAAACAAAAAj//wADZ2x5ZgAAAtgAAAUiAAAG8GRmC1poZWFkAAABMAAAADMAAAA2KSiSsGhoZWEAAAFkAAAAIAAAACQFUAGIaG10eAAAAegAAAA/AAAARBfoAsdsb2NhAAACsAAAACYAAAAmDdYL/m1heHAAAAGEAAAAHQAAACAAVgBHbmFtZQAAB/wAAAGtAAADG83YXUZwb3N0AAAJrAAAADgAAABGAecCiXicY2BkYGBgYmRL0F2/PJ7f5isDN/MLoAjD44PL8+A0839jpiambUAuBwMTSBQAYL8McAB4nGNgZGBg2vbfGEgaMjD838DUxJDCIMqADAQAdU4E23icY2BkYGAQYnBhYGIAARDJyAAScwDzGQAK8QCeAAAAeJxjYGTcwLSHgZWBgakLSMsy9IDo/3MZHzAYMjIBRRk4mBlggJEBCQSkuaYAKQWGSqZt/42BKrcxnIWpAQBirwzaAAB4nGOUYAADRl8QwcDAxMtgyWTIoMb4n8EcyHUCYSDfkUmNQQZISzCWAMWWMWgwTmEIY/zCUMogzcAMAMPTB8MAeJytjksKwmAMhL+//dX6rtBlFx5NQReCiIgUBQ/ioxTEo3mQMW3FhS7rQBJmJkwChNSV4ihxMuYq7pnZTIhN8UyZs2TFmi17Mo6SuaW6qNQNO1MPkp566K5CuW666qLzO/kHrs3HcoG14Huhfq0RPLTsDh2I6Pb6DIYjxsSTpsH/wQv/mBvEAAAAAAAAAAAAAAAAWACeAN4BEgEwAW4BngHiAhgCeAK2AuYDLAN4AAB4nG1VW4gbVRie/8zMOTOZWzaXmSQzmVx3kt1kN9nMJtPubrPWdVu3ZXth29qC6FMr1kIvaLEIVvRFUGkFH3zU+tYHxQtV8UGwVVF8EvRFRETBl6ItWkWhu/4n2e3iZcjLGZj/u/4nAhG2rt0iY/CN0BTmBGHUhAaUg3mglXIQ9aUw6gWVMsNTNB31IeqFHV+2IDIlRu2w0xfhRznrjeYtKu04Nj+vqzv2HGvbTLNr9y8rsk4UoiVWDsftVm5ci+uXE5a3tVmjNO/LZjXvtd20nUvtPbxlbJs3QirN9gLVRrYoCisC1e3KVPnSfUCM9JjnNyGWCAR8iBAg36fJFcERJu7wjThB5OYgx1no2EyMkLYpMpP4JOxEfQK3kWc9l6ALS1dbvc+WxtuU8zbp76E7Uex4jsJkSWZWOVMoxeMyMku5M7/c7PzAKd7+42bB8XqlgpttZ/NGImbFhlwi5NJE70pCXRDAJJWSCQNA5GIzykxgQyOBn3vT3EtiS+mEtXpDIjTVLK7sMygjIAPo6QMHHz+ey7x09sTyM3Q0eKgKUtoWM+VJLz0TU50xUVHV4Ilzjz555oH6XPVZjn83oh4grwqWUBCEaN2L5LoH0UaW6+cveFJuXF6mWZcnNkWdfOgbKDvrhXhGzWkXjnspO3ct6zjZJJfOdcIAZz96bv0XZWPqeZpzuZ+DKeTQ5rfbkegSfCXUNtNK8lJRC/45yoKwT7hPsMqzQkazaqLc2G+0+BEh9iBEGSFiYI0ebC/34oP+QDKoLmz7dkD+FH/RSQfNheVBPh7m8wjmQ4U8otMiz4X1YXoSNsvRJ6TXWc2E3d9+/YDReNBvuVgGKkvKSDUXdAvG99ev//VzoTztpW23Wyy6XjvnGd7MBM7PrPXJLtRWxO1BdVKlXGP/8odvDMEe9CplC6jt4NaQORqrTz84t1ipcWVenJ7lkWA5dx9qzLmmLD9fOhY2Qkm2kv7Jn9xgf7fReX/ga9NLYS/dqfZ8MX2pdMOw9JGNfD4Z8MAWAlL4P2/FgbfvSYq55ahZW4+Ne1pETw3I9tpFU5ckeC7JQFrcfmXT0e1BaDPdGuZZX7sFX6OnC9xRFDxJ+2Swezbv/SSp4S8YvMCrgqWGK1Ab3CI+OD5xbLhcfHNmGmTLsDRGDIsoKqWNI3s1MeYmrUqxbtQN/+2oDlrMiKkS6AYwlSoTu+7VJKdQcnNBPHjh5REAShV8yoFsKYs9y9FlkSkpqzl7QZdEKlMmEr8KRqw1lcioVGbpkSbyP4T8r5FlYYzz59zmoVKexKttFqI7ZnUYbcDgihtKg/PSvqj7sN9LaVZCYm0ngYkVsKKJI22mtI90VC0ZTClyDKCVsuMXb5NEvLrCV2mlWr3eKfks5yP2Y1jKCD4XXDQyxUTEKNfEoIvQHfTGHW6qD2Ra/diZWpqSx4DWM3ZWhspret5Pa4YBr4vx1Qvj43Ca6Z5pmatfwqSTIsYwG5xLajift5EPn4QWDAvJBc4DD4YrLEAvGoIyXEOU951caRq6Ie88bSczjZiuETA+PaUQqdJMJtX54/KI39A0jRDj3XOKbYMau/hUVsOAVO3qO5piM+vEScniZ/2tj8wBF3EtHGht44EyMEXegt5GU/h/SSSu03FsFvIScUaEdEFd/VPJd/c27lFAIaIhyW4lO54yWPwo3pS1XDWtNykou++SUoHNYiaFN6i5Glijvaop7mSWlPZcx/TgFU3OueGHLf/FM5IDEvfob0x9/20AAHicpVJLTuNAEH1tEjRsEItIbJCoZUCycRxYwDIIkCJCophEWeKAk1ix3GAHRTkG9xhxCM4zh5jndk8W81mNW656VV2/VzaAfXxCoXrGW6zwTR1a7KCmTi3ega8+LK6hoX5YXMe+c2zxLhrOhJGqtkfru8kqscKBqlvssL5YvIMndWZxDU31ZXEdR46yeBdNx8M1NF6xQY4EcyywgiCAz9OGy1PhS3qnjBJ04FF2EeEZS+auUVAn9EXI8GLuPPRM1IO5ryLLiCbtzFSK2SlCihktbeQjfRPqEULcYEgpuKPu0zOgdcKKuNavmzyZL1YS+H7bdSkvZbqRjifd6Hmp18UykSh7ka7X8+RBr+lMpKkzmcaLKJ2JnsljPJFReDMM5W7YHw3CE9a958ChIVCgRbq474VRVrSIOpwvJS90dEp5ayisjM65sNisy2OO4Irv75XcbYE+aadcwxveTVYZ3TYRLbvmABdsoLPVrc7nsQSeL1fyaxK37N+fpsnbe0x323dbpB9c/Dn8v1rib6XKHzQmk4Jh1cep2Pg4J8Y4zouE6+Ms/rn8b6+fjG+E3wAAAHicY2BiYPj/BYhnMgQzYANCQMzIwMTAzODC4M7gweDD4M8QyBAEVB3KEMYQzhDJEM0QAwA0gwhvAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQkEgZgHzGAAEWQBAeJxjYGBgZACC2wqnqkH044PL82A0AE7uB7QAAA==')format("woff");}.ff12{font-family:ff12;line-height:0.899000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff13;src:url('data:application/font-woff;base64,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')format("woff");}.ff13{font-family:ff13;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff14;src:url('data:application/font-woff;base64,d09GRgABAAAAAATkAA0AAAAABvAAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEyAAAABoAAAAcoqQZaEdERUYAAASsAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlXGgpdjbWFwAAAB/AAAAEYAAAFKRYDkOWdhc3AAAASkAAAACAAAAAj//wADZ2x5ZgAAAlAAAAB0AAAAdPLyoUVoZWFkAAABMAAAADMAAAA2KlSSmmhoZWEAAAFkAAAAHgAAACQGNQNHaG10eAAAAegAAAAUAAAAFAbyADJsb2NhAAACRAAAAAwAAAAMAAAAOm1heHAAAAGEAAAAHQAAACAASAAobmFtZQAAAsQAAAG+AAAC6APphOhwb3N0AAAEhAAAAB4AAAA0ObKyo3icY2BkYGBgZmhOfthXFc9v85WBm/kFUITh8cHlZXDa6P9E5jqmrUAuBwMTSBQAlIYN7wB4nGNgZGBg2vp/IgMD8wYGIGCuY2BkQAWsAF/rA4MAAHicY2BkYGBgZVBlANEMDExAzAhmO4D5DAAGdABxAAAAeJxjYGS8wfiFgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBjZoABRiB2gHEC0lxTgJSC0jGmrf8nAlVuZciHqmEAACXuDCsB9AAAAAAAAAFNAAAAAQAAA7AAMnicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlI79/w/kg+n/j+/aQdUDASMbA5zDyAQkmBhQASPEiuEMAMdbCdwAAAAAAAAAAAAAAAAAOgABADL/kQN+ArUAJAAAAQcTFhUUIyIvAQcGIyI1PwETJyY1NDYzIRM2MzIWFxMhMhYVFANx71wDCwgH7+8LBAsCAlvwDAwQASFaBgkGBARbASERCwFxrv7nCQULCa2tCQsHBwEZrgkGCAMBFhQGDP7oAwgEeJxtkcFq20AQhv9VbENLKD30AYZCwQZbXkuEYBMCJo1vyiGGQk9FyIslsCwjrSP8UnmAPkubF8itT9Bf6+0hUC94vpmd/edfLYAPeIbC+bfHi2eFvvruOcBAlZ4v8Fn99Nxj/dVzHx+DT54HGAQxO1XvHbNf7lTHCu9V4jnApfrh+QJflfXcY/235z5E/fE8wGXwBXeocMAJNQpskcNCMESGEeMMc65rjMkRNNectEQJ4/ozpLyfIGG0PGu409F5Z8edNdUz5obVk1O+cTMsZy4w5WrdCtlfomGsqLzFLed3U1ue7ZQFj9Ro3Nwn/m9YWbF37/w+uNPGOVnTX0Lnmlq4qw6nutjmVobZSGbz+fVYIq3nsixNXWTpXpLU5qZMLZOdrKusMPYkw5vc2sNiOm3bNkzLJqzq7e1oLG1hc3k0jamfzEZW1d7KQ1oaSdbLZKY57x5HXrszifvjzjAkzmzBesnEbIoj4z/nK39b475vSM/Cr/L2FudKTJown7h3iHBFEY5f0ZiRKNSy8CYIsZ7MJpGOrvBGCOcG4Jsz2NBU5V6ve9fYTe+UhQ2mbopqL1rHodaR/F/nL3OdevMAAHicY2BiwA9YgZiRgYmBmZGJvTQv08jI2QwAC4UCQQAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH044PLy2A0AE8+B8QAAA==')format("woff");}.ff14{font-family:ff14;line-height:0.804000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff15;src:url('data:application/font-woff;base64,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')format("woff");}.ff15{font-family:ff15;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff16;src:url('data:application/font-woff;base64,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')format("woff");}.ff16{font-family:ff16;line-height:0.922000;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;}
._2f{margin-left:-9.892834px;}
._e{margin-left:-8.251323px;}
._3{margin-left:-5.537550px;}
._7{margin-left:-3.844782px;}
._5{margin-left:-1.818300px;}
._d{width:1.115811px;}
._0{width:3.073600px;}
._31{width:6.240614px;}
._32{width:11.344038px;}
._c{width:12.359513px;}
._b{width:13.807382px;}
._f{width:14.963951px;}
._8{width:16.116719px;}
._1d{width:17.282426px;}
._9{width:18.429016px;}
._11{width:19.749034px;}
._6{width:21.691454px;}
._15{width:22.829639px;}
._2a{width:25.241451px;}
._18{width:26.580371px;}
._1a{width:27.956670px;}
._25{width:29.722055px;}
._4{width:31.241700px;}
._a{width:32.418280px;}
._24{width:33.771608px;}
._1{width:36.288314px;}
._1f{width:38.058824px;}
._2{width:40.911750px;}
._12{width:56.490240px;}
._21{width:75.316800px;}
._13{width:94.023974px;}
._20{width:112.976160px;}
._28{width:119.367582px;}
._14{width:131.685094px;}
._1c{width:150.634560px;}
._17{width:169.459840px;}
._2d{width:188.294720px;}
._36{width:207.521864px;}
._27{width:226.353704px;}
._26{width:245.183144px;}
._1b{width:320.098560px;}
._16{width:338.924800px;}
._34{width:340.474564px;}
._33{width:342.628575px;}
._22{width:395.418560px;}
._38{width:708.403618px;}
._35{width:710.803134px;}
._2e{width:729.975394px;}
._37{width:752.521989px;}
._1e{width:808.802776px;}
._2c{width:1055.129241px;}
._23{width:1109.973528px;}
._10{width:1221.507954px;}
._2b{width:1224.655086px;}
._29{width:1300.018427px;}
._30{width:1381.706602px;}
._19{width:1427.594342px;}
.fcb{color:transparent;}
.fca{color:rgb(57,75,79);}
.fc8{color:rgb(61,122,122);}
.fcc{color:rgb(156,102,0);}
.fc6{color:rgb(0,128,0);}
.fc5{color:rgb(0,0,255);}
.fc4{color:rgb(176,0,64);}
.fc9{color:rgb(186,33,33);}
.fc3{color:rgb(16,136,110);}
.fc7{color:rgb(102,102,102);}
.fc2{color:rgb(255,255,255);}
.fc1{color:rgb(250,250,250);}
.fc0{color:rgb(35,55,59);}
.fs6{font-size:27.895200px;}
.fs5{font-size:31.880400px;}
.fs7{font-size:35.865600px;}
.fs4{font-size:39.850400px;}
.fs8{font-size:43.636400px;}
.fs3{font-size:47.820800px;}
.fs2{font-size:57.384800px;}
.fs1{font-size:82.650000px;}
.fs0{font-size:99.148400px;}
.y165{bottom:-7.396000px;}
.y0{bottom:-0.500000px;}
.y13d{bottom:6.618000px;}
.y188{bottom:7.768000px;}
.y6e{bottom:7.955000px;}
.y164{bottom:8.783000px;}
.yfc{bottom:9.426000px;}
.yb4{bottom:10.436000px;}
.y17a{bottom:10.651000px;}
.y179{bottom:10.652000px;}
.y93{bottom:11.757000px;}
.y56{bottom:12.703000px;}
.y10{bottom:13.018000px;}
.y87{bottom:13.545000px;}
.y106{bottom:14.541000px;}
.y1b9{bottom:14.571000px;}
.y130{bottom:17.212000px;}
.y157{bottom:19.736000px;}
.y170{bottom:20.146000px;}
.yfb{bottom:20.310000px;}
.y36{bottom:21.113000px;}
.y163{bottom:21.386000px;}
.yde{bottom:22.901000px;}
.yb3{bottom:23.039000px;}
.ye2{bottom:23.513000px;}
.y6d{bottom:23.537000px;}
.y110{bottom:23.611000px;}
.yec{bottom:24.021000px;}
.y4b{bottom:24.176000px;}
.y13c{bottom:24.326000px;}
.y92{bottom:24.360000px;}
.y55{bottom:25.305000px;}
.y11b{bottom:25.446000px;}
.yd0{bottom:25.555000px;}
.y86{bottom:26.148000px;}
.y148{bottom:27.047000px;}
.y194{bottom:27.173000px;}
.y105{bottom:29.386000px;}
.y12f{bottom:29.814000px;}
.y22{bottom:29.907000px;}
.y1a1{bottom:30.196000px;}
.yfa{bottom:31.194000px;}
.y178{bottom:33.207000px;}
.ya7{bottom:33.984000px;}
.y162{bottom:33.988000px;}
.y7{bottom:34.633000px;}
.yb2{bottom:35.641000px;}
.y41{bottom:36.451000px;}
.yeb{bottom:36.624000px;}
.y35{bottom:36.694000px;}
.y13b{bottom:36.928000px;}
.y91{bottom:36.963000px;}
.y16f{bottom:36.983000px;}
.y1af{bottom:37.791000px;}
.y54{bottom:37.908000px;}
.y11a{bottom:38.048000px;}
.ycf{bottom:38.158000px;}
.ydd{bottom:38.482000px;}
.y181{bottom:38.990000px;}
.ybe{bottom:39.385000px;}
.y147{bottom:39.650000px;}
.y4a{bottom:39.757000px;}
.y193{bottom:39.776000px;}
.yf9{bottom:42.078000px;}
.y21{bottom:42.509000px;}
.y1a0{bottom:42.798000px;}
.y79{bottom:44.026000px;}
.y9c{bottom:44.376000px;}
.y6c{bottom:44.573000px;}
.y156{bottom:45.868000px;}
.ya6{bottom:46.586000px;}
.y161{bottom:46.591000px;}
.y1a8{bottom:46.993000px;}
.yb1{bottom:48.244000px;}
.y1b6{bottom:48.411000px;}
.y85{bottom:48.688000px;}
.ye1{bottom:48.719000px;}
.y10f{bottom:48.816000px;}
.y40{bottom:49.054000px;}
.yea{bottom:49.226000px;}
.y90{bottom:49.565000px;}
.y53{bottom:50.511000px;}
.y119{bottom:50.651000px;}
.yce{bottom:50.760000px;}
.y6{bottom:51.308000px;}
.y1e{bottom:51.776000px;}
.y146{bottom:52.253000px;}
.y34{bottom:52.276000px;}
.y122{bottom:53.272000px;}
.ydc{bottom:54.064000px;}
.y104{bottom:54.282000px;}
.ybd{bottom:54.967000px;}
.y12e{bottom:55.020000px;}
.y20{bottom:55.112000px;}
.y177{bottom:55.762000px;}
.y78{bottom:56.629000px;}
.yf{bottom:57.914000px;}
.y1cc{bottom:57.991000px;}
.y155{bottom:58.471000px;}
.y5e{bottom:59.137000px;}
.y160{bottom:59.194000px;}
.y9b{bottom:59.958000px;}
.y6b{bottom:60.154000px;}
.y49{bottom:60.320000px;}
.y1ae{bottom:60.346000px;}
.y14f{bottom:60.595000px;}
.y187{bottom:60.599000px;}
.y84{bottom:61.291000px;}
.ye0{bottom:61.321000px;}
.y180{bottom:61.545000px;}
.y13a{bottom:62.134000px;}
.y2a{bottom:62.449000px;}
.y52{bottom:63.113000px;}
.y118{bottom:63.254000px;}
.yf8{bottom:63.846000px;}
.y1c2{bottom:63.968000px;}
.yb0{bottom:64.235000px;}
.y145{bottom:64.855000px;}
.y192{bottom:64.981000px;}
.y1a7{bottom:65.453000px;}
.y103{bottom:66.885000px;}
.y12d{bottom:67.622000px;}
.y1f{bottom:67.715000px;}
.y19f{bottom:68.004000px;}
.y121{bottom:68.853000px;}
.y1d{bottom:69.186000px;}
.y77{bottom:69.231000px;}
.yc5{bottom:69.505000px;}
.ydb{bottom:69.645000px;}
.y1cb{bottom:70.593000px;}
.y1b5{bottom:70.967000px;}
.y154{bottom:71.073000px;}
.ya5{bottom:71.792000px;}
.y15f{bottom:71.796000px;}
.y15{bottom:72.415000px;}
.y16e{bottom:72.890000px;}
.y83{bottom:73.893000px;}
.y33{bottom:73.924000px;}
.y3f{bottom:74.259000px;}
.ye9{bottom:74.432000px;}
.y5d{bottom:74.719000px;}
.yf7{bottom:74.731000px;}
.y139{bottom:74.736000px;}
.y8f{bottom:74.771000px;}
.y10e{bottom:75.689000px;}
.y51{bottom:75.716000px;}
.y48{bottom:75.902000px;}
.ycd{bottom:75.966000px;}
.y16{bottom:76.031000px;}
.y14e{bottom:76.177000px;}
.y1c1{bottom:76.571000px;}
.ybc{bottom:76.875000px;}
.y65{bottom:76.893000px;}
.ye{bottom:77.117000px;}
.y191{bottom:77.584000px;}
.y176{bottom:78.318000px;}
.y12c{bottom:80.225000px;}
.y19e{bottom:80.606000px;}
.y29{bottom:81.020000px;}
.y76{bottom:81.834000px;}
.y1ad{bottom:82.902000px;}
.y117{bottom:83.079000px;}
.y186{bottom:83.154000px;}
.y1ca{bottom:83.196000px;}
.y144{bottom:83.830000px;}
.y17f{bottom:84.101000px;}
.y6a{bottom:84.179000px;}
.ya4{bottom:84.394000px;}
.y15e{bottom:84.399000px;}
.y120{bottom:84.435000px;}
.yc4{bottom:85.086000px;}
.yf6{bottom:85.615000px;}
.y82{bottom:86.496000px;}
.y32{bottom:86.527000px;}
.y1c{bottom:86.596000px;}
.y9a{bottom:86.837000px;}
.y3e{bottom:86.862000px;}
.ye8{bottom:87.034000px;}
.yda{bottom:87.194000px;}
.y8e{bottom:87.373000px;}
.y50{bottom:88.319000px;}
.ycc{bottom:88.568000px;}
.y1c0{bottom:89.174000px;}
.ybb{bottom:89.477000px;}
.y14{bottom:89.825000px;}
.y1b8{bottom:90.187000px;}
.y5c{bottom:90.300000px;}
.yaf{bottom:90.367000px;}
.y47{bottom:91.483000px;}
.y102{bottom:92.090000px;}
.y12b{bottom:92.828000px;}
.y19d{bottom:93.209000px;}
.y16d{bottom:93.501000px;}
.y1b4{bottom:93.522000px;}
.y153{bottom:96.279000px;}
.yd{bottom:96.320000px;}
.yf5{bottom:96.499000px;}
.ya3{bottom:96.997000px;}
.y15d{bottom:97.002000px;}
.y81{bottom:99.099000px;}
.y99{bottom:99.439000px;}
.y3d{bottom:99.464000px;}
.y28{bottom:99.590000px;}
.y138{bottom:99.942000px;}
.y8d{bottom:99.976000px;}
.y175{bottom:100.873000px;}
.y10d{bottom:100.895000px;}
.y4f{bottom:100.921000px;}
.ycb{bottom:101.171000px;}
.y14d{bottom:101.819000px;}
.yba{bottom:102.080000px;}
.y64{bottom:102.098000px;}
.y1a6{bottom:102.532000px;}
.y190{bottom:102.789000px;}
.yae{bottom:102.969000px;}
.y11f{bottom:103.401000px;}
.y1b{bottom:104.005000px;}
.y101{bottom:104.693000px;}
.y69{bottom:105.215000px;}
.y12a{bottom:105.430000px;}
.y1ac{bottom:105.457000px;}
.y185{bottom:105.710000px;}
.y5b{bottom:106.664000px;}
.y75{bottom:107.039000px;}
.y13{bottom:107.235000px;}
.y17e{bottom:107.764000px;}
.y1c9{bottom:108.401000px;}
.y5{bottom:108.707000px;}
.y152{bottom:108.881000px;}
.ya2{bottom:109.600000px;}
.y15c{bottom:109.604000px;}
.y31{bottom:111.732000px;}
.yc3{bottom:111.965000px;}
.y98{bottom:112.042000px;}
.y3c{bottom:112.067000px;}
.ye7{bottom:112.240000px;}
.y137{bottom:112.544000px;}
.y8c{bottom:112.579000px;}
.yd9{bottom:112.714000px;}
.y46{bottom:113.017000px;}
.y4e{bottom:113.524000px;}
.yca{bottom:113.774000px;}
.y1bf{bottom:114.379000px;}
.yb9{bottom:114.683000px;}
.y63{bottom:114.701000px;}
.y16c{bottom:114.721000px;}
.y80{bottom:115.089000px;}
.y1a5{bottom:115.135000px;}
.y18f{bottom:115.392000px;}
.yc{bottom:115.523000px;}
.y116{bottom:115.557000px;}
.y143{bottom:115.562000px;}
.yad{bottom:115.572000px;}
.y14c{bottom:117.400000px;}
.y1b3{bottom:117.547000px;}
.y129{bottom:118.033000px;}
.yf4{bottom:118.267000px;}
.y100{bottom:118.686000px;}
.y1c8{bottom:121.004000px;}
.y19c{bottom:121.021000px;}
.yd2{bottom:121.063000px;}
.y151{bottom:121.484000px;}
.y15b{bottom:122.207000px;}
.y174{bottom:123.428000px;}
.y27{bottom:123.615000px;}
.y74{bottom:123.876000px;}
.y30{bottom:124.335000px;}
.yc2{bottom:124.568000px;}
.y12{bottom:124.644000px;}
.ye6{bottom:124.842000px;}
.y10c{bottom:126.200000px;}
.y1be{bottom:126.982000px;}
.y184{bottom:127.244000px;}
.y62{bottom:127.303000px;}
.y16b{bottom:127.324000px;}
.y68{bottom:127.612000px;}
.y1a4{bottom:127.737000px;}
.y18e{bottom:127.995000px;}
.y142{bottom:128.165000px;}
.yac{bottom:128.175000px;}
.yd8{bottom:128.295000px;}
.y1ab{bottom:128.523000px;}
.y128{bottom:130.636000px;}
.y4{bottom:131.541000px;}
.y3b{bottom:131.893000px;}
.y1a{bottom:132.021000px;}
.y4d{bottom:132.499000px;}
.y1c7{bottom:133.607000px;}
.y19b{bottom:133.624000px;}
.y14b{bottom:133.764000px;}
.y150{bottom:134.087000px;}
.yb{bottom:134.725000px;}
.ya1{bottom:134.805000px;}
.y15a{bottom:134.810000px;}
.yb8{bottom:135.650000px;}
.y11e{bottom:136.315000px;}
.y2f{bottom:136.938000px;}
.yc1{bottom:137.171000px;}
.y97{bottom:137.247000px;}
.y136{bottom:137.750000px;}
.y8b{bottom:137.784000px;}
.y23{bottom:138.248000px;}
.y17d{bottom:138.400000px;}
.yc9{bottom:138.979000px;}
.y1bd{bottom:139.584000px;}
.y61{bottom:139.906000px;}
.y16a{bottom:139.926000px;}
.yf3{bottom:140.035000px;}
.y7f{bottom:140.275000px;}
.y115{bottom:140.763000px;}
.y10b{bottom:141.356000px;}
.y5a{bottom:141.791000px;}
.yff{bottom:143.583000px;}
.yd7{bottom:143.877000px;}
.y45{bottom:144.514000px;}
.y173{bottom:145.984000px;}
.y1c6{bottom:146.209000px;}
.y19a{bottom:146.226000px;}
.ya0{bottom:147.408000px;}
.y3a{bottom:147.474000px;}
.y3{bottom:147.581000px;}
.y4c{bottom:148.080000px;}
.y19{bottom:149.431000px;}
.ydf{bottom:149.540000px;}
.yc0{bottom:149.773000px;}
.y96{bottom:149.850000px;}
.ye5{bottom:150.048000px;}
.y135{bottom:150.352000px;}
.y8a{bottom:150.387000px;}
.y1b2{bottom:151.534000px;}
.yc8{bottom:151.582000px;}
.y26{bottom:151.984000px;}
.y1bc{bottom:152.187000px;}
.y169{bottom:152.529000px;}
.y67{bottom:152.817000px;}
.y7e{bottom:152.877000px;}
.y1a3{bottom:152.943000px;}
.y18d{bottom:153.200000px;}
.y114{bottom:153.365000px;}
.y141{bottom:153.370000px;}
.yab{bottom:153.380000px;}
.ya{bottom:153.928000px;}
.yd1{bottom:155.434000px;}
.y183{bottom:155.752000px;}
.y127{bottom:155.841000px;}
.yfe{bottom:156.185000px;}
.y73{bottom:156.354000px;}
.y10a{bottom:156.511000px;}
.y59{bottom:157.372000px;}
.y1c5{bottom:158.812000px;}
.y199{bottom:158.829000px;}
.yd6{bottom:159.458000px;}
.y9f{bottom:160.010000px;}
.y159{bottom:160.015000px;}
.y17c{bottom:160.956000px;}
.y1aa{bottom:161.552000px;}
.yf2{bottom:161.804000px;}
.y2e{bottom:162.143000px;}
.ye4{bottom:162.650000px;}
.y134{bottom:162.955000px;}
.y11{bottom:163.611000px;}
.y1bb{bottom:164.790000px;}
.y44{bottom:165.077000px;}
.y60{bottom:165.111000px;}
.y168{bottom:165.132000px;}
.y66{bottom:165.420000px;}
.y7d{bottom:165.480000px;}
.y18c{bottom:165.803000px;}
.y113{bottom:165.968000px;}
.y140{bottom:165.973000px;}
.yaa{bottom:165.983000px;}
.y18{bottom:166.840000px;}
.y25{bottom:167.566000px;}
.y14a{bottom:167.895000px;}
.y126{bottom:168.444000px;}
.y172{bottom:168.539000px;}
.y72{bottom:168.957000px;}
.y11d{bottom:169.229000px;}
.yb7{bottom:170.397000px;}
.yc7{bottom:170.556000px;}
.ybf{bottom:170.741000px;}
.y1c4{bottom:171.415000px;}
.y198{bottom:171.432000px;}
.y109{bottom:171.667000px;}
.y9e{bottom:172.613000px;}
.y158{bottom:172.618000px;}
.yf1{bottom:172.688000px;}
.y58{bottom:172.954000px;}
.y9{bottom:173.131000px;}
.y1a2{bottom:173.535000px;}
.y1b1{bottom:174.090000px;}
.y2d{bottom:174.746000px;}
.yd5{bottom:175.039000px;}
.yd4{bottom:175.040000px;}
.y95{bottom:175.055000px;}
.y133{bottom:175.558000px;}
.y89{bottom:175.592000px;}
.y39{bottom:175.843000px;}
.yfd{bottom:176.011000px;}
.y182{bottom:177.286000px;}
.y5f{bottom:177.714000px;}
.y167{bottom:177.734000px;}
.y7c{bottom:178.083000px;}
.y1b7{bottom:178.405000px;}
.y112{bottom:178.571000px;}
.y13f{bottom:178.575000px;}
.ya9{bottom:178.585000px;}
.y43{bottom:180.658000px;}
.y125{bottom:181.046000px;}
.y71{bottom:181.560000px;}
.y17b{bottom:183.511000px;}
.yf0{bottom:183.572000px;}
.y197{bottom:184.034000px;}
.y1a9{bottom:184.108000px;}
.y17{bottom:184.250000px;}
.y149{bottom:184.258000px;}
.y24{bottom:184.388000px;}
.y2{bottom:185.484000px;}
.yb6{bottom:185.978000px;}
.yc6{bottom:186.138000px;}
.ye3{bottom:186.611000px;}
.y2c{bottom:187.348000px;}
.y132{bottom:188.160000px;}
.y88{bottom:188.195000px;}
.y57{bottom:189.318000px;}
.y1ba{bottom:189.995000px;}
.y166{bottom:190.337000px;}
.yd3{bottom:190.621000px;}
.y7b{bottom:190.685000px;}
.y18b{bottom:191.008000px;}
.y171{bottom:191.094000px;}
.y111{bottom:191.173000px;}
.y13e{bottom:191.178000px;}
.ya8{bottom:191.188000px;}
.y38{bottom:191.425000px;}
.y9d{bottom:191.592000px;}
.y11c{bottom:193.254000px;}
.y124{bottom:193.649000px;}
.y70{bottom:194.162000px;}
.yef{bottom:194.456000px;}
.y108{bottom:196.406000px;}
.y1c3{bottom:196.620000px;}
.y196{bottom:196.637000px;}
.y94{bottom:196.874000px;}
.y1b0{bottom:198.115000px;}
.y42{bottom:202.193000px;}
.yb5{bottom:202.342000px;}
.y18a{bottom:203.611000px;}
.y1{bottom:206.107000px;}
.y123{bottom:206.252000px;}
.y7a{bottom:206.676000px;}
.y2b{bottom:207.174000px;}
.y37{bottom:207.788000px;}
.y195{bottom:209.240000px;}
.y6f{bottom:210.153000px;}
.yee{bottom:211.871000px;}
.y107{bottom:212.770000px;}
.y131{bottom:213.366000px;}
.y189{bottom:216.214000px;}
.y8{bottom:236.149000px;}
.yed{bottom:240.488000px;}
.ha{height:19.359269px;}
.h10{height:22.093117px;}
.h11{height:22.124998px;}
.h9{height:23.910300px;}
.hf{height:24.890726px;}
.hd{height:25.285248px;}
.hc{height:26.899200px;}
.hb{height:27.576477px;}
.h6{height:29.887800px;}
.he{height:32.727300px;}
.h12{height:33.091994px;}
.h5{height:33.187635px;}
.h7{height:35.865600px;}
.h4{height:40.456284px;}
.h8{height:43.038600px;}
.h3{height:58.268250px;}
.h2{height:74.361300px;}
.h0{height:255.118000px;}
.h1{height:255.500000px;}
.w0{width:453.543000px;}
.w1{width:454.000000px;}
.x0{left:0.000000px;}
.x5{left:10.667000px;}
.x1{left:28.346000px;}
.xd{left:31.983000px;}
.x6{left:34.488000px;}
.xe{left:36.225000px;}
.x14{left:48.272000px;}
.x3{left:49.946000px;}
.x10{left:53.153000px;}
.x2{left:57.697000px;}
.x11{left:71.983000px;}
.xc{left:106.772000px;}
.x8{left:113.749000px;}
.x16{left:116.067000px;}
.xa{left:164.083000px;}
.x9{left:181.587000px;}
.x15{left:192.638000px;}
.xb{left:195.846000px;}
.x12{left:218.835000px;}
.x17{left:266.702000px;}
.x4{left:378.705000px;}
.x13{left:418.767000px;}
.xf{left:424.403000px;}
.x7{left:428.637000px;}
@media print{
.v0{vertical-align:0.000000pt;}
.ls0{letter-spacing:0.000000pt;}
.ws0{word-spacing:0.000000pt;}
._2f{margin-left:-13.190445pt;}
._e{margin-left:-11.001764pt;}
._3{margin-left:-7.383400pt;}
._7{margin-left:-5.126375pt;}
._5{margin-left:-2.424400pt;}
._d{width:1.487748pt;}
._0{width:4.098134pt;}
._31{width:8.320819pt;}
._32{width:15.125384pt;}
._c{width:16.479350pt;}
._b{width:18.409842pt;}
._f{width:19.951935pt;}
._8{width:21.488959pt;}
._1d{width:23.043235pt;}
._9{width:24.572021pt;}
._11{width:26.332045pt;}
._6{width:28.921939pt;}
._15{width:30.439519pt;}
._2a{width:33.655268pt;}
._18{width:35.440494pt;}
._1a{width:37.275560pt;}
._25{width:39.629407pt;}
._4{width:41.655600pt;}
._a{width:43.224373pt;}
._24{width:45.028811pt;}
._1{width:48.384419pt;}
._1f{width:50.745099pt;}
._2{width:54.549000pt;}
._12{width:75.320320pt;}
._21{width:100.422400pt;}
._13{width:125.365299pt;}
._20{width:150.634880pt;}
._28{width:159.156776pt;}
._14{width:175.580125pt;}
._1c{width:200.846080pt;}
._17{width:225.946453pt;}
._2d{width:251.059627pt;}
._36{width:276.695819pt;}
._27{width:301.804939pt;}
._26{width:326.910859pt;}
._1b{width:426.798080pt;}
._16{width:451.899733pt;}
._34{width:453.966085pt;}
._33{width:456.838100pt;}
._22{width:527.224747pt;}
._38{width:944.538157pt;}
._35{width:947.737511pt;}
._2e{width:973.300526pt;}
._37{width:1003.362652pt;}
._1e{width:1078.403701pt;}
._2c{width:1406.838988pt;}
._23{width:1479.964703pt;}
._10{width:1628.677272pt;}
._2b{width:1632.873449pt;}
._29{width:1733.357903pt;}
._30{width:1842.275469pt;}
._19{width:1903.459123pt;}
.fs6{font-size:37.193600pt;}
.fs5{font-size:42.507200pt;}
.fs7{font-size:47.820800pt;}
.fs4{font-size:53.133867pt;}
.fs8{font-size:58.181867pt;}
.fs3{font-size:63.761067pt;}
.fs2{font-size:76.513067pt;}
.fs1{font-size:110.200000pt;}
.fs0{font-size:132.197867pt;}
.y165{bottom:-9.861333pt;}
.y0{bottom:-0.666667pt;}
.y13d{bottom:8.824000pt;}
.y188{bottom:10.357333pt;}
.y6e{bottom:10.606667pt;}
.y164{bottom:11.710667pt;}
.yfc{bottom:12.568000pt;}
.yb4{bottom:13.914667pt;}
.y17a{bottom:14.201333pt;}
.y179{bottom:14.202667pt;}
.y93{bottom:15.676000pt;}
.y56{bottom:16.937333pt;}
.y10{bottom:17.357333pt;}
.y87{bottom:18.060000pt;}
.y106{bottom:19.388000pt;}
.y1b9{bottom:19.428000pt;}
.y130{bottom:22.949333pt;}
.y157{bottom:26.314667pt;}
.y170{bottom:26.861333pt;}
.yfb{bottom:27.080000pt;}
.y36{bottom:28.150667pt;}
.y163{bottom:28.514667pt;}
.yde{bottom:30.534667pt;}
.yb3{bottom:30.718667pt;}
.ye2{bottom:31.350667pt;}
.y6d{bottom:31.382667pt;}
.y110{bottom:31.481333pt;}
.yec{bottom:32.028000pt;}
.y4b{bottom:32.234667pt;}
.y13c{bottom:32.434667pt;}
.y92{bottom:32.480000pt;}
.y55{bottom:33.740000pt;}
.y11b{bottom:33.928000pt;}
.yd0{bottom:34.073333pt;}
.y86{bottom:34.864000pt;}
.y148{bottom:36.062667pt;}
.y194{bottom:36.230667pt;}
.y105{bottom:39.181333pt;}
.y12f{bottom:39.752000pt;}
.y22{bottom:39.876000pt;}
.y1a1{bottom:40.261333pt;}
.yfa{bottom:41.592000pt;}
.y178{bottom:44.276000pt;}
.ya7{bottom:45.312000pt;}
.y162{bottom:45.317333pt;}
.y7{bottom:46.177333pt;}
.yb2{bottom:47.521333pt;}
.y41{bottom:48.601333pt;}
.yeb{bottom:48.832000pt;}
.y35{bottom:48.925333pt;}
.y13b{bottom:49.237333pt;}
.y91{bottom:49.284000pt;}
.y16f{bottom:49.310667pt;}
.y1af{bottom:50.388000pt;}
.y54{bottom:50.544000pt;}
.y11a{bottom:50.730667pt;}
.ycf{bottom:50.877333pt;}
.ydd{bottom:51.309333pt;}
.y181{bottom:51.986667pt;}
.ybe{bottom:52.513333pt;}
.y147{bottom:52.866667pt;}
.y4a{bottom:53.009333pt;}
.y193{bottom:53.034667pt;}
.yf9{bottom:56.104000pt;}
.y21{bottom:56.678667pt;}
.y1a0{bottom:57.064000pt;}
.y79{bottom:58.701333pt;}
.y9c{bottom:59.168000pt;}
.y6c{bottom:59.430667pt;}
.y156{bottom:61.157333pt;}
.ya6{bottom:62.114667pt;}
.y161{bottom:62.121333pt;}
.y1a8{bottom:62.657333pt;}
.yb1{bottom:64.325333pt;}
.y1b6{bottom:64.548000pt;}
.y85{bottom:64.917333pt;}
.ye1{bottom:64.958667pt;}
.y10f{bottom:65.088000pt;}
.y40{bottom:65.405333pt;}
.yea{bottom:65.634667pt;}
.y90{bottom:66.086667pt;}
.y53{bottom:67.348000pt;}
.y119{bottom:67.534667pt;}
.yce{bottom:67.680000pt;}
.y6{bottom:68.410667pt;}
.y1e{bottom:69.034667pt;}
.y146{bottom:69.670667pt;}
.y34{bottom:69.701333pt;}
.y122{bottom:71.029333pt;}
.ydc{bottom:72.085333pt;}
.y104{bottom:72.376000pt;}
.ybd{bottom:73.289333pt;}
.y12e{bottom:73.360000pt;}
.y20{bottom:73.482667pt;}
.y177{bottom:74.349333pt;}
.y78{bottom:75.505333pt;}
.yf{bottom:77.218667pt;}
.y1cc{bottom:77.321333pt;}
.y155{bottom:77.961333pt;}
.y5e{bottom:78.849333pt;}
.y160{bottom:78.925333pt;}
.y9b{bottom:79.944000pt;}
.y6b{bottom:80.205333pt;}
.y49{bottom:80.426667pt;}
.y1ae{bottom:80.461333pt;}
.y14f{bottom:80.793333pt;}
.y187{bottom:80.798667pt;}
.y84{bottom:81.721333pt;}
.ye0{bottom:81.761333pt;}
.y180{bottom:82.060000pt;}
.y13a{bottom:82.845333pt;}
.y2a{bottom:83.265333pt;}
.y52{bottom:84.150667pt;}
.y118{bottom:84.338667pt;}
.yf8{bottom:85.128000pt;}
.y1c2{bottom:85.290667pt;}
.yb0{bottom:85.646667pt;}
.y145{bottom:86.473333pt;}
.y192{bottom:86.641333pt;}
.y1a7{bottom:87.270667pt;}
.y103{bottom:89.180000pt;}
.y12d{bottom:90.162667pt;}
.y1f{bottom:90.286667pt;}
.y19f{bottom:90.672000pt;}
.y121{bottom:91.804000pt;}
.y1d{bottom:92.248000pt;}
.y77{bottom:92.308000pt;}
.yc5{bottom:92.673333pt;}
.ydb{bottom:92.860000pt;}
.y1cb{bottom:94.124000pt;}
.y1b5{bottom:94.622667pt;}
.y154{bottom:94.764000pt;}
.ya5{bottom:95.722667pt;}
.y15f{bottom:95.728000pt;}
.y15{bottom:96.553333pt;}
.y16e{bottom:97.186667pt;}
.y83{bottom:98.524000pt;}
.y33{bottom:98.565333pt;}
.y3f{bottom:99.012000pt;}
.ye9{bottom:99.242667pt;}
.y5d{bottom:99.625333pt;}
.yf7{bottom:99.641333pt;}
.y139{bottom:99.648000pt;}
.y8f{bottom:99.694667pt;}
.y10e{bottom:100.918667pt;}
.y51{bottom:100.954667pt;}
.y48{bottom:101.202667pt;}
.ycd{bottom:101.288000pt;}
.y16{bottom:101.374667pt;}
.y14e{bottom:101.569333pt;}
.y1c1{bottom:102.094667pt;}
.ybc{bottom:102.500000pt;}
.y65{bottom:102.524000pt;}
.ye{bottom:102.822667pt;}
.y191{bottom:103.445333pt;}
.y176{bottom:104.424000pt;}
.y12c{bottom:106.966667pt;}
.y19e{bottom:107.474667pt;}
.y29{bottom:108.026667pt;}
.y76{bottom:109.112000pt;}
.y1ad{bottom:110.536000pt;}
.y117{bottom:110.772000pt;}
.y186{bottom:110.872000pt;}
.y1ca{bottom:110.928000pt;}
.y144{bottom:111.773333pt;}
.y17f{bottom:112.134667pt;}
.y6a{bottom:112.238667pt;}
.ya4{bottom:112.525333pt;}
.y15e{bottom:112.532000pt;}
.y120{bottom:112.580000pt;}
.yc4{bottom:113.448000pt;}
.yf6{bottom:114.153333pt;}
.y82{bottom:115.328000pt;}
.y32{bottom:115.369333pt;}
.y1c{bottom:115.461333pt;}
.y9a{bottom:115.782667pt;}
.y3e{bottom:115.816000pt;}
.ye8{bottom:116.045333pt;}
.yda{bottom:116.258667pt;}
.y8e{bottom:116.497333pt;}
.y50{bottom:117.758667pt;}
.ycc{bottom:118.090667pt;}
.y1c0{bottom:118.898667pt;}
.ybb{bottom:119.302667pt;}
.y14{bottom:119.766667pt;}
.y1b8{bottom:120.249333pt;}
.y5c{bottom:120.400000pt;}
.yaf{bottom:120.489333pt;}
.y47{bottom:121.977333pt;}
.y102{bottom:122.786667pt;}
.y12b{bottom:123.770667pt;}
.y19d{bottom:124.278667pt;}
.y16d{bottom:124.668000pt;}
.y1b4{bottom:124.696000pt;}
.y153{bottom:128.372000pt;}
.yd{bottom:128.426667pt;}
.yf5{bottom:128.665333pt;}
.ya3{bottom:129.329333pt;}
.y15d{bottom:129.336000pt;}
.y81{bottom:132.132000pt;}
.y99{bottom:132.585333pt;}
.y3d{bottom:132.618667pt;}
.y28{bottom:132.786667pt;}
.y138{bottom:133.256000pt;}
.y8d{bottom:133.301333pt;}
.y175{bottom:134.497333pt;}
.y10d{bottom:134.526667pt;}
.y4f{bottom:134.561333pt;}
.ycb{bottom:134.894667pt;}
.y14d{bottom:135.758667pt;}
.yba{bottom:136.106667pt;}
.y64{bottom:136.130667pt;}
.y1a6{bottom:136.709333pt;}
.y190{bottom:137.052000pt;}
.yae{bottom:137.292000pt;}
.y11f{bottom:137.868000pt;}
.y1b{bottom:138.673333pt;}
.y101{bottom:139.590667pt;}
.y69{bottom:140.286667pt;}
.y12a{bottom:140.573333pt;}
.y1ac{bottom:140.609333pt;}
.y185{bottom:140.946667pt;}
.y5b{bottom:142.218667pt;}
.y75{bottom:142.718667pt;}
.y13{bottom:142.980000pt;}
.y17e{bottom:143.685333pt;}
.y1c9{bottom:144.534667pt;}
.y5{bottom:144.942667pt;}
.y152{bottom:145.174667pt;}
.ya2{bottom:146.133333pt;}
.y15c{bottom:146.138667pt;}
.y31{bottom:148.976000pt;}
.yc3{bottom:149.286667pt;}
.y98{bottom:149.389333pt;}
.y3c{bottom:149.422667pt;}
.ye7{bottom:149.653333pt;}
.y137{bottom:150.058667pt;}
.y8c{bottom:150.105333pt;}
.yd9{bottom:150.285333pt;}
.y46{bottom:150.689333pt;}
.y4e{bottom:151.365333pt;}
.yca{bottom:151.698667pt;}
.y1bf{bottom:152.505333pt;}
.yb9{bottom:152.910667pt;}
.y63{bottom:152.934667pt;}
.y16c{bottom:152.961333pt;}
.y80{bottom:153.452000pt;}
.y1a5{bottom:153.513333pt;}
.y18f{bottom:153.856000pt;}
.yc{bottom:154.030667pt;}
.y116{bottom:154.076000pt;}
.y143{bottom:154.082667pt;}
.yad{bottom:154.096000pt;}
.y14c{bottom:156.533333pt;}
.y1b3{bottom:156.729333pt;}
.y129{bottom:157.377333pt;}
.yf4{bottom:157.689333pt;}
.y100{bottom:158.248000pt;}
.y1c8{bottom:161.338667pt;}
.y19c{bottom:161.361333pt;}
.yd2{bottom:161.417333pt;}
.y151{bottom:161.978667pt;}
.y15b{bottom:162.942667pt;}
.y174{bottom:164.570667pt;}
.y27{bottom:164.820000pt;}
.y74{bottom:165.168000pt;}
.y30{bottom:165.780000pt;}
.yc2{bottom:166.090667pt;}
.y12{bottom:166.192000pt;}
.ye6{bottom:166.456000pt;}
.y10c{bottom:168.266667pt;}
.y1be{bottom:169.309333pt;}
.y184{bottom:169.658667pt;}
.y62{bottom:169.737333pt;}
.y16b{bottom:169.765333pt;}
.y68{bottom:170.149333pt;}
.y1a4{bottom:170.316000pt;}
.y18e{bottom:170.660000pt;}
.y142{bottom:170.886667pt;}
.yac{bottom:170.900000pt;}
.yd8{bottom:171.060000pt;}
.y1ab{bottom:171.364000pt;}
.y128{bottom:174.181333pt;}
.y4{bottom:175.388000pt;}
.y3b{bottom:175.857333pt;}
.y1a{bottom:176.028000pt;}
.y4d{bottom:176.665333pt;}
.y1c7{bottom:178.142667pt;}
.y19b{bottom:178.165333pt;}
.y14b{bottom:178.352000pt;}
.y150{bottom:178.782667pt;}
.yb{bottom:179.633333pt;}
.ya1{bottom:179.740000pt;}
.y15a{bottom:179.746667pt;}
.yb8{bottom:180.866667pt;}
.y11e{bottom:181.753333pt;}
.y2f{bottom:182.584000pt;}
.yc1{bottom:182.894667pt;}
.y97{bottom:182.996000pt;}
.y136{bottom:183.666667pt;}
.y8b{bottom:183.712000pt;}
.y23{bottom:184.330667pt;}
.y17d{bottom:184.533333pt;}
.yc9{bottom:185.305333pt;}
.y1bd{bottom:186.112000pt;}
.y61{bottom:186.541333pt;}
.y16a{bottom:186.568000pt;}
.yf3{bottom:186.713333pt;}
.y7f{bottom:187.033333pt;}
.y115{bottom:187.684000pt;}
.y10b{bottom:188.474667pt;}
.y5a{bottom:189.054667pt;}
.yff{bottom:191.444000pt;}
.yd7{bottom:191.836000pt;}
.y45{bottom:192.685333pt;}
.y173{bottom:194.645333pt;}
.y1c6{bottom:194.945333pt;}
.y19a{bottom:194.968000pt;}
.ya0{bottom:196.544000pt;}
.y3a{bottom:196.632000pt;}
.y3{bottom:196.774667pt;}
.y4c{bottom:197.440000pt;}
.y19{bottom:199.241333pt;}
.ydf{bottom:199.386667pt;}
.yc0{bottom:199.697333pt;}
.y96{bottom:199.800000pt;}
.ye5{bottom:200.064000pt;}
.y135{bottom:200.469333pt;}
.y8a{bottom:200.516000pt;}
.y1b2{bottom:202.045333pt;}
.yc8{bottom:202.109333pt;}
.y26{bottom:202.645333pt;}
.y1bc{bottom:202.916000pt;}
.y169{bottom:203.372000pt;}
.y67{bottom:203.756000pt;}
.y7e{bottom:203.836000pt;}
.y1a3{bottom:203.924000pt;}
.y18d{bottom:204.266667pt;}
.y114{bottom:204.486667pt;}
.y141{bottom:204.493333pt;}
.yab{bottom:204.506667pt;}
.ya{bottom:205.237333pt;}
.yd1{bottom:207.245333pt;}
.y183{bottom:207.669333pt;}
.y127{bottom:207.788000pt;}
.yfe{bottom:208.246667pt;}
.y73{bottom:208.472000pt;}
.y10a{bottom:208.681333pt;}
.y59{bottom:209.829333pt;}
.y1c5{bottom:211.749333pt;}
.y199{bottom:211.772000pt;}
.yd6{bottom:212.610667pt;}
.y9f{bottom:213.346667pt;}
.y159{bottom:213.353333pt;}
.y17c{bottom:214.608000pt;}
.y1aa{bottom:215.402667pt;}
.yf2{bottom:215.738667pt;}
.y2e{bottom:216.190667pt;}
.ye4{bottom:216.866667pt;}
.y134{bottom:217.273333pt;}
.y11{bottom:218.148000pt;}
.y1bb{bottom:219.720000pt;}
.y44{bottom:220.102667pt;}
.y60{bottom:220.148000pt;}
.y168{bottom:220.176000pt;}
.y66{bottom:220.560000pt;}
.y7d{bottom:220.640000pt;}
.y18c{bottom:221.070667pt;}
.y113{bottom:221.290667pt;}
.y140{bottom:221.297333pt;}
.yaa{bottom:221.310667pt;}
.y18{bottom:222.453333pt;}
.y25{bottom:223.421333pt;}
.y14a{bottom:223.860000pt;}
.y126{bottom:224.592000pt;}
.y172{bottom:224.718667pt;}
.y72{bottom:225.276000pt;}
.y11d{bottom:225.638667pt;}
.yb7{bottom:227.196000pt;}
.yc7{bottom:227.408000pt;}
.ybf{bottom:227.654667pt;}
.y1c4{bottom:228.553333pt;}
.y198{bottom:228.576000pt;}
.y109{bottom:228.889333pt;}
.y9e{bottom:230.150667pt;}
.y158{bottom:230.157333pt;}
.yf1{bottom:230.250667pt;}
.y58{bottom:230.605333pt;}
.y9{bottom:230.841333pt;}
.y1a2{bottom:231.380000pt;}
.y1b1{bottom:232.120000pt;}
.y2d{bottom:232.994667pt;}
.yd5{bottom:233.385333pt;}
.yd4{bottom:233.386667pt;}
.y95{bottom:233.406667pt;}
.y133{bottom:234.077333pt;}
.y89{bottom:234.122667pt;}
.y39{bottom:234.457333pt;}
.yfd{bottom:234.681333pt;}
.y182{bottom:236.381333pt;}
.y5f{bottom:236.952000pt;}
.y167{bottom:236.978667pt;}
.y7c{bottom:237.444000pt;}
.y1b7{bottom:237.873333pt;}
.y112{bottom:238.094667pt;}
.y13f{bottom:238.100000pt;}
.ya9{bottom:238.113333pt;}
.y43{bottom:240.877333pt;}
.y125{bottom:241.394667pt;}
.y71{bottom:242.080000pt;}
.y17b{bottom:244.681333pt;}
.yf0{bottom:244.762667pt;}
.y197{bottom:245.378667pt;}
.y1a9{bottom:245.477333pt;}
.y17{bottom:245.666667pt;}
.y149{bottom:245.677333pt;}
.y24{bottom:245.850667pt;}
.y2{bottom:247.312000pt;}
.yb6{bottom:247.970667pt;}
.yc6{bottom:248.184000pt;}
.ye3{bottom:248.814667pt;}
.y2c{bottom:249.797333pt;}
.y132{bottom:250.880000pt;}
.y88{bottom:250.926667pt;}
.y57{bottom:252.424000pt;}
.y1ba{bottom:253.326667pt;}
.y166{bottom:253.782667pt;}
.yd3{bottom:254.161333pt;}
.y7b{bottom:254.246667pt;}
.y18b{bottom:254.677333pt;}
.y171{bottom:254.792000pt;}
.y111{bottom:254.897333pt;}
.y13e{bottom:254.904000pt;}
.ya8{bottom:254.917333pt;}
.y38{bottom:255.233333pt;}
.y9d{bottom:255.456000pt;}
.y11c{bottom:257.672000pt;}
.y124{bottom:258.198667pt;}
.y70{bottom:258.882667pt;}
.yef{bottom:259.274667pt;}
.y108{bottom:261.874667pt;}
.y1c3{bottom:262.160000pt;}
.y196{bottom:262.182667pt;}
.y94{bottom:262.498667pt;}
.y1b0{bottom:264.153333pt;}
.y42{bottom:269.590667pt;}
.yb5{bottom:269.789333pt;}
.y18a{bottom:271.481333pt;}
.y1{bottom:274.809333pt;}
.y123{bottom:275.002667pt;}
.y7a{bottom:275.568000pt;}
.y2b{bottom:276.232000pt;}
.y37{bottom:277.050667pt;}
.y195{bottom:278.986667pt;}
.y6f{bottom:280.204000pt;}
.yee{bottom:282.494667pt;}
.y107{bottom:283.693333pt;}
.y131{bottom:284.488000pt;}
.y189{bottom:288.285333pt;}
.y8{bottom:314.865333pt;}
.yed{bottom:320.650667pt;}
.ha{height:25.812358pt;}
.h10{height:29.457490pt;}
.h11{height:29.499997pt;}
.h9{height:31.880400pt;}
.hf{height:33.187635pt;}
.hd{height:33.713664pt;}
.hc{height:35.865600pt;}
.hb{height:36.768636pt;}
.h6{height:39.850400pt;}
.he{height:43.636400pt;}
.h12{height:44.122658pt;}
.h5{height:44.250180pt;}
.h7{height:47.820800pt;}
.h4{height:53.941712pt;}
.h8{height:57.384800pt;}
.h3{height:77.691000pt;}
.h2{height:99.148400pt;}
.h0{height:340.157333pt;}
.h1{height:340.666667pt;}
.w0{width:604.724000pt;}
.w1{width:605.333333pt;}
.x0{left:0.000000pt;}
.x5{left:14.222667pt;}
.x1{left:37.794667pt;}
.xd{left:42.644000pt;}
.x6{left:45.984000pt;}
.xe{left:48.300000pt;}
.x14{left:64.362667pt;}
.x3{left:66.594667pt;}
.x10{left:70.870667pt;}
.x2{left:76.929333pt;}
.x11{left:95.977333pt;}
.xc{left:142.362667pt;}
.x8{left:151.665333pt;}
.x16{left:154.756000pt;}
.xa{left:218.777333pt;}
.x9{left:242.116000pt;}
.x15{left:256.850667pt;}
.xb{left:261.128000pt;}
.x12{left:291.780000pt;}
.x17{left:355.602667pt;}
.x4{left:504.940000pt;}
.x13{left:558.356000pt;}
.xf{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="#pf6" data-dest-detail='[6,"XYZ",28.346,255.118,null]'>Function Template</a><ul><li><a class="l" href="#pf7" data-dest-detail='[7,"XYZ",28.346,201.821,null]'>Overview</a></li><li><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",28.346,228.21,null]'>Template Instantiation</a></li><li><a class="l" href="#pfe" data-dest-detail='[14,"XYZ",28.346,228.21,null]'>Template Parameters</a></li><li><a class="l" href="#pf11" data-dest-detail='[17,"XYZ",28.346,228.21,null]'>Template Parameters - Default Value</a></li><li><a class="l" href="#pf14" data-dest-detail='[20,"XYZ",28.346,228.21,null]'>Overloading</a></li><li><a class="l" href="#pf15" data-dest-detail='[21,"XYZ",28.346,219.775,null]'>Specialization</a></li></ul></li><li><a class="l" href="#pf17" data-dest-detail='[23,"XYZ",28.346,255.118,null]'>Template Variable</a></li><li><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",28.346,255.118,null]'>Template Parameter Types</a><ul><li><a class="l" href="#pf1b" data-dest-detail='[27,"XYZ",28.346,228.21,null]'>Generic Type Notes</a></li><li><a class="l" href="#pf1c" data-dest-detail='[28,"XYZ",28.346,228.21,null]'>auto Placeholder</a></li><li><a class="l" href="#pf1d" data-dest-detail='[29,"XYZ",28.346,228.21,null]'>Function Type </a></li></ul></li><li><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",28.346,255.118,null]'>Compile-Time Utilities</a><ul><li><a class="l" href="#pf1f" data-dest-detail='[31,"XYZ",28.346,228.21,null]'>static_assert</a></li><li><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",28.346,228.21,null]'>using Keyword</a></li><li><a class="l" href="#pf22" data-dest-detail='[34,"XYZ",28.346,214.29,null]'>decltype Keyword</a></li></ul></li><li><a class="l" href="#pf26" data-dest-detail='[38,"XYZ",28.346,255.118,null]'>Type Traits</a><ul><li><a class="l" href="#pf27" data-dest-detail='[39,"XYZ",28.346,201.691,null]'>Overview</a></li><li><a class="l" href="#pf2b" data-dest-detail='[43,"XYZ",28.346,228.21,null]'>Type Traits Library</a></li><li><a class="l" href="#pf30" data-dest-detail='[48,"XYZ",28.346,228.21,null]'>Type Manipulation</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">10.<span class="_ _2"> </span>Templa<span class="_ _3"></span>tes<span class="_ _4"> </span>and</div><div class="t m0 x2 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0">Met<span class="_ _3"></span>a-pr<span class="_ _5"></span>ogramming<span class="_ _4"> </span>I</div><div class="t m0 x3 h4 y5 ff2 fs2 fc0 sc0 ls0 ws0">Function<span class="_ _6"> </span>Templa<span class="_ _7"></span>tes<span class="_ _6"> </span>and<span class="_ _6"> </span>Compile-Time<span class="_ _6"> </span>Utilities</div><div class="t m0 x1 h5 y6 ff3 fs3 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>ederico<span class="_ _8"> </span>Busato</div><div class="t m0 x4 h6 y7 ff4 fs4 fc0 sc0 ls0 ws0">2025-01-30</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x6 h8 y9 ff1 fs4 fc2 sc0 ls0 ws0">1<span class="_ _a"> </span><span class="fs2 fc0">F<span class="_ _5"></span>unction<span class="_ _6"> </span>T<span class="_ _3"></span>emplate</span></div><div class="t m0 x3 h6 ya ff4 fs4 fc0 sc0 ls0 ws0">Overview</div><div class="t m0 x3 h6 yb ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _b"> </span>Instantiation</div><div class="t m0 x3 h6 yc ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _b"> </span>P<span class="_ _5"></span>arameters</div><div class="t m0 x3 h6 yd ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _b"> </span>P<span class="_ _5"></span>arameters<span class="_ _b"> </span>-<span class="_ _c"> </span>Default<span class="_ _c"> </span>Value</div><div class="t m0 x3 h6 ye ff4 fs4 fc0 sc0 ls0 ws0">Overloading</div><div class="t m0 x3 h6 yf ff4 fs4 fc0 sc0 ls0 ws0">Sp<span class="_ _d"></span>ecialization</div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">1/47</div><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:47.076000px;bottom:169.346000px;width:125.448000px;height:14.744000px;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:49.490000px;bottom:152.932000px;width:39.960000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:131.792000px;width:96.084000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfe" data-dest-detail='[14,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:112.589000px;width:90.328000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf11" data-dest-detail='[17,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:93.386000px;width:157.299000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf14" data-dest-detail='[20,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:74.183000px;width:51.556000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf15" data-dest-detail='[21,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:54.980000px;width:58.959000px;height:10.849000px;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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI0klEQVR42u3YMUrGQBCA0axksPQMYpUTiEiKFII38xLeJUUsvEEab2Bl6TS/nZV/FTCjea9dQthhi49pN7f3HQAAlPH2+nJhCgAAVCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAD41jLTFAAAqCMibFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAHRd1//1CwzjtOXzdZk9AgCAamxSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAwDYtM00BAIA6IsImFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDAgfR//QLDOG35fF1mjwAAoBqbVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAALBNy0xTAACgjoiwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAALbpD3vzYZzOHa3L7GUAAOzIJhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAB7a5lpCgAA1BERNqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAvvrD3nwYp3NH6zJ7GQAAO7JJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwN5aZpoCAAB1RIRNKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAALCv/rA3H8bp3NG6zF4GAMCObFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBADiclpmmAABAHRFhkwoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoEAACIVAAAEKkAAIhUAAAQqQAA/Df9x9P17//1/eHZ6AEA+NFw99ja1eXp47PrTqeTgQAAUMIXuOcx+omysIcAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x6 h8 y11 ff1 fs4 fc2 sc0 ls0 ws0">2<span class="_ _a"> </span><span class="fs2 fc0">T<span class="_ _3"></span>emplate<span class="_ _6"> </span>V<span class="_ _5"></span>a<span class="_ _5"></span>riable</span></div><div class="t m0 x6 h8 y12 ff1 fs4 fc2 sc0 ls0 ws0">3<span class="_ _a"> </span><span class="fs2 fc0">T<span class="_ _3"></span>emplate<span class="_ _6"> </span>P<span class="_ _5"></span>a<span class="_ _5"></span>rameter<span class="_ _6"> </span>T<span class="_ _3"></span>yp<span class="_ _d"></span>es</span></div><div class="t m0 x3 h6 y13 ff4 fs4 fc0 sc0 ls0 ws0">Generic<span class="_ _c"> </span>T<span class="_ _5"></span>ype<span class="_ _b"> </span>Notes</div><div class="t m0 x3 h6 y14 ff6 fs4 fc0 sc0 ls0 ws0">auto<span class="_ _c"> </span><span class="ff4">Placeholder</span></div><div class="t m0 x3 h6 y15 ff4 fs4 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>unction<span class="_ _b"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e</div><div class="t m0 x8 ha y16 ff7 fs6 fc0 sc0 ls0 ws0"></div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">2/47</div><a class="l" href="#pf17" data-dest-detail='[23,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:159.825000px;width:121.363000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:120.859000px;width:179.956000px;height:14.744000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1b" data-dest-detail='[27,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:104.301000px;width:83.769000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1c" data-dest-detail='[28,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:88.829000px;width:74.111000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1d" data-dest-detail='[29,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:69.482000px;width:72.602000px;height:12.349000px;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 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x6 h8 y17 ff1 fs4 fc2 sc0 ls0 ws0">4<span class="_ _a"> </span><span class="fs2 fc0">Compile-Time<span class="_ _6"> </span>Utilities</span></div><div class="t m0 x3 hb y18 ff6 fs4 fc0 sc0 ls0 ws0">static_assert</div><div class="t m0 x3 h6 y19 ff6 fs4 fc0 sc0 ls0 ws0">using<span class="_ _c"> </span><span class="ff4">Keywo<span class="_ _5"></span>rd</span></div><div class="t m0 x3 h6 y1a ff6 fs4 fc0 sc0 ls0 ws0">decltype<span class="_ _c"> </span><span class="ff4">Keywo<span class="_ _5"></span>rd</span></div><div class="t m0 x6 h8 y1b ff1 fs4 fc2 sc0 ls0 ws0">5<span class="_ _a"> </span><span class="fs2 fc0">T<span class="_ _3"></span>yp<span class="_ _d"></span>e<span class="_ _6"> </span>T<span class="_ _3"></span>raits</span></div><div class="t m0 x3 h6 y1c ff4 fs4 fc0 sc0 ls0 ws0">Overview</div><div class="t m0 x3 h6 y1d ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _b"> </span>T<span class="_ _7"></span>raits<span class="_ _b"> </span>Lib<span class="_ _5"></span>rary</div><div class="t m0 x3 h6 y1e ff4 fs4 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _b"> </span>Manipulation</div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">3/47</div><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:180.464000px;width:150.188000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1f" data-dest-detail='[31,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:164.260000px;width:69.987000px;height:9.550000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:146.277000px;width:67.192000px;height:11.068000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf22" data-dest-detail='[34,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:128.867000px;width:82.883000px;height:11.069000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf26" data-dest-detail='[38,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:100.220000px;width:77.042000px;height:14.744000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf27" data-dest-detail='[39,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:85.600000px;width:39.960000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf2b" data-dest-detail='[43,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:66.253000px;width:81.527000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf30" data-dest-detail='[48,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:48.843000px;width:80.310000px;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="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAgAElEQVR42uzde7BkWXUe+PWttc85mXkf9eiubuimG7ppCbpBQkI0DwtQIyw0I0AWGpCwFANCQsgQjB0jM7Y0kizHWCg8ozFYj7AtT4RDGs849BpLHqORCIENGs2ABvF+WAQPdQMN/arXvTcf55y915o/TmZW1q1qqIbqpsDfLzpuZebNx8mTt7q+u/bea+Pxz/h2ISIiIiK6Ynzy3X+mPAtEREREdKVhSCUiIiIihlQiIiIiIoZUIiIiImJIJSIiIiJiSCUiIiIihlQiIiIiIoZUIiIiImJIJSIiIiJiSCUiIiIiYkglIiIiIoZUIiIiIiKGVCIiIiJiSCUiIiIiYkglIiIiIoZUIiIiIiKGVCIiIiJiSCUiIiIiYkglIiIiImJIJSIiIiKGVCIiIiIihlQiIiIiYkglIiIiImJIJSIiIiKGVCIiIiIihlQiIiIiIoZUIiIiImJIJSIiIiJiSCUiIiIihlQiIiIiIoZUIiIiImJIJSIiIiJiSCUiIiIihlQiIiIiIoZUIiIiIiKGVCIiIiJiSCUiIiIiYkglIiIiIoZUIiIiIiKGVCIiIiJiSCUiIiIiYkglIiIiImJIJSIiIiKGVCIiIiIihlQiIiIiYkglIiIiImJIJSIiIiKGVCIiIiIihlQiIiIiYkglIiIiImJIJSIiIiJiSCUiIiIihlQiIiIiIoZUIiIiImJIJSIiIiJiSCUiIiIihlQiIiIiIoZUIiIiIqI1dF3Hs0BEREREV46qqlhJJSIiIqIrDkMqERERETGkEhERERExpBIRERERQyoREREREUMqERERETGkEhERERExpBIRERERQyoREREREUMqERERERFDKhERERExpBIRERERMaQSEREREUMqERERERFDKhERERExpBIRERERMaQSEREREUMqERERERFDKhERERERQyoRERERMaQSERERETGkEhERERFDKhERERERQyoRERERMaQSERERETGkEhERERExpBIRERERQyoREREREUMqERERETGkEhERERExpBIRERERQyoREREREUMqERERETGkEhERERExpBIRERERMaQSEREREUMqERERERFDKhERERExpBIRERERMaQSEREREUMqERERERFDKhERERERQyoRERERMaQSERERETGkEhERERFDKhERERERQyoRERERMaQSERERETGkEhERERFDKhERERERQyoREREREUMqERERETGkEhERERExpBIRERERQyoREREREUMqERERETGkEhERERExpBIRERERMaQSEREREUMqERERERFDKhERERExpBIRERERMaQSEREREUMqERERERFDKhERERExpBIRERERMaQSERERETGkEhERERFDKhERERERQyoRERERMaQSERERETGkEhERERFDKhERERERQyoRERER0VLiKSCiy+V3f/e3P/CBD7h7BDZ+E/bL+yqIw7cE5NwLPsTHDg8/fDcRict5zJd4eA92hI+Aix7hxQ4mVl+x+ioSBpWbbrrxNa/5W/xbQEQMqUR0xXn/+9//pje9WQQRETEkGFz2kPog4e5wcHrQqxd97KH7x8NzhA92VPJwvu5DPYGHjupSHgoD5MXf+0KGVCJiSCWiK1FEAFA1dwc0QgBEFADr764vHLr6YLdfeDeXL//hiAtul5AL7x8iD/GovsTtF32VC+4mEZDLea4u/XbRi9xN/KIPRyzfzbL6apa6bhEe/CtARAypRHRFhlTRUlzV1BKWZdR1Ue7yvQpENp4Uq/8uxSUO90tc5oO+2Essg96lHOEj8dlh48B0eeWiByih5539EC9hZqVk/hUgIoZUIroiQUQRAggEGOqql72SCgkIQlZFRwkI8OAPF5Fzt+Nid5MLXg6XuWYpFzkqQC52tPgqVVJDlidqWVzGcsbG4YerrG45VyQOKaVc9t9GiIghlYjoMlmuYHpIxc2HTEMEglWJFsF09Ih+xptfh98BiIgYUonoys4vcW6pzZBeIkJEV0kG51/Apd1+3lVIaAxD4hruQxqOIbQCISLQWKYorJsMrG8fEm2IQDRkNaw/vAog7oHhmLF8fIgOk2uXh7H8lixvvPDdPcibgriIxlCkFRFxcWzcHxsHv3o/w/Hpl32uHtLtMlSml9XT1ZsabhYMJ1oAF4cUABIAxMMFQ72caZWILndJgqeAiC7b/1AQQEAcCCBEfP31/Asx5Fd3l9WA8npcfvi6vnDoqoqMfN4l6VRDIyfpdSRRi0Sf+j6VEAlBbxEoEACikl28h7iG5egtFyySlxAEpI7chMOrrI0Bor2bhKIkL6lP8Emn466x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3zSndLz7TMyRuV8PdcfUKYGZcMJ5HkXuuFYfj0pkJylU5kBEhD4ZNYCMnHgnVuDE/fJJj8e4l+MMdyMCg4hgZjFGouNZBEy5y313XNVEOEgwM8BjjCLijq7rqipVKcE9q46XJu6O4hbC1CwVVKm23BATyFhDdHOb18JskpizNuzMy9yWJpgbnAKDKLctKTvQOAnChJOF2g3mFjkKoStdLJk9kpELmSERMyT02QTfrssHBgYG/kMYROrAwMCdSh9lyidZa/pEUZD3A6bwrUM37590bF0Rv5Em777mhj9/98e/Md7ra+tnT286du0nmKWTkUjLSkLfGrN6kjDtDU18R3AnOHAghwMM68diT3wdEfi4wOU+KotAIMGOMCVmIQao17YEdzMJAU79bEC/oWrntnoflxD6PzuPrZ9McGY2tV7e5ZL37F6/5JJntm37lre8teS5O4sgxphz5w4zm4zHj3zkIz/z6U/DQd6paqySM+857awfvuzSRdG/f8t7Slcu+tnnBkDm3Yff+/6H/KfH7j3r9BDluk997sAt33jWpc8+ujn9h3e+dfu22x7x9B8769GPyAcOfeSNb7rnefd/wHd/LwLfcvvX//V9Hy4lkwQDYohePAoTORmEoeouJBLgRATu9fa/8wrjWz7SkD41MDAwiNSBgYG7MgzaiUilE03hfn5RITBEAgWCfeO6U26+bn7qPbcno1u3tq88snbDZFfZf9o5dT705+8qRw7FEAKEjelEKinRNxl3+k498bco116nErGIOIx2pkjvEFuA79zmTp+ecXzXKfWRrg4iYkGvfIVZdvYF7JRPiQjudFwim6H/B5vtSFK49+J3Z7bV3Io97nGP/9d//UzTND/2Y08zsy9/+cvT6fSmm24666y7792799GPfvQVV1xxn/vcR4jWd+/+h4/+02WXPudDf/vh244e+9nf/t0//t3XzprZE576Yzd845b5ZPUjf/qX51/4/U/76Ref9eCHvP4Vr9s49rXRYvNXf//Vr3r576ysrD30iT/UzWffdd793/Bbv/PAhz380v/6q2nf3ne9/W23XXXNK9/xptmBrav+6R8pFKdARkyU2dzBITkzkUTq4w6UmUFC3zp7+k0HJz4O7/yBgYHvBIO7f2Bg4D/wO06f+r6Y3fD2N5+ZRjQ6ZbvafVuqcNqu3avqV3zy2Cc/VcfkMUWK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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Bo<span class="_ _0"></span>oks</div><div class="t m0 x9 hc y1f ff1 fs7 fc0 sc0 ls0 ws0">C++<span class="_ _c"> </span>T<span class="_ _5"></span>emplates:<span class="_ _8"> </span>The</div><div class="t m0 x9 hc y20 ff1 fs7 fc0 sc0 ls0 ws0">Complete<span class="_ _c"> </span>Guide<span class="_ _c"> </span><span class="ff8">(2nd)</span></div><div class="t m0 xa hd y21 ff9 fs7 fc0 sc0 ls0 ws0">D.<span class="_ _c"> </span>V<span class="_ _5"></span>andevo<span class="_ _d"></span>orde,<span class="_ _c"> </span>N.<span class="_ _c"> </span>M.<span class="_ _c"> </span>Josuttis,</div><div class="t m0 xb hc y22 ff9 fs7 fc0 sc0 ls0 ws0">D.<span class="_ _c"> </span>Grego<span class="_ _5"></span>r<span class="ff8">,<span class="_ _c"> </span>2017</span></div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">4/47</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 xc h2 y23 ff1 fs0 fc0 sc0 ls0 ws0">F<span class="_ _7"></span>unction<span class="_ _1"> </span>T<span class="_ _e"></span>emplate</div><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:105.775000px;bottom:132.432000px;width:215.297000px;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="pf7" class="pf w0 h0" data-page-no="7"><div class="pc pc7 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIkUlEQVR42u3YsU0DQRCG0VvrRo5O1IAcuQJkIQcOLNEZTdALAQR0QOIOHFkXMck5IyRwgGat9yoY/Zt82rZ5eh4AAKCM09fnygoAAFQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAA+NUy0woAANQREX5SAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBAOjX2NGt2/3BgwEA3Ob7472ja/2kAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAID71jKzl1vnefZgAAC3maapl1Mjwk8qAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAymiZaQUAAOqICD+pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCA+zZeXh+t8Lfz8c0IAAD/Zrt7ae1hvVx+hmFZFoMAAFDCFekbH/4WUGtwAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Overview</div><div class="t m0 xd he y24 ff1 fs8 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate</div><div class="t m0 xd he y25 ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _b"> </span><span class="ff1">template<span class="_ _8"> </span></span>is<span class="_ _b"> </span>a<span class="_ _b"> </span>mechanism<span class="_ _8"> </span>fo<span class="_ _5"></span>r<span class="_ _b"> </span>generic<span class="_ _f"> </span>p<span class="_ _5"></span>rogramming<span class="_ _f"> </span>to<span class="_ _b"> </span>provide<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ffa">“schema”<span class="_ _9"> </span></span>(o<span class="_ _5"></span>r</div><div class="t m0 xd he y26 ffa fs8 fc0 sc0 ls0 ws0">placeholders<span class="_ _0"></span><span class="ff4">)<span class="_ _f"> </span>to<span class="_ _b"> </span>represent<span class="_ _b"> </span>the<span class="_ _b"> </span>structure<span class="_ _f"> </span>of<span class="_ _f"> </span>an<span class="_ _b"> </span>entity</span></div><div class="t m0 x1 he y27 ff4 fs8 fc0 sc0 ls0 ws0">In<span class="_ _b"> </span>C++,<span class="_ _f"> </span><span class="ffa">templates<span class="_ _9"> </span></span>a<span class="_ _5"></span>re<span class="_ _f"> </span>a<span class="_ _b"> </span>compile-time<span class="_ _f"> </span>functionality<span class="_ _b"> </span>to<span class="_ _b"> </span>represent:</div><div class="t m0 xe he y28 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">A<span class="_ _b"> </span>family<span class="_ _f"> </span>of<span class="_ _9"> </span><span class="ff1">functions</span></span></div><div class="t m0 xe he y29 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">A<span class="_ _b"> </span>family<span class="_ _f"> </span>of<span class="_ _9"> </span><span class="ff1">classes</span></span></div><div class="t m0 xe he y2a ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">A<span class="_ _b"> </span>family<span class="_ _f"> </span>of<span class="_ _9"> </span><span class="ff1">va<span class="_ _5"></span>riables<span class="_ _b"> </span><span class="ff4 fc3">C++14</span></span></span></div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">5/47</div></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,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _5"></span>unction<span class="_ _9"> </span>T<span class="_ _3"></span>emplate<span class="_ _10"> </span>1/2</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">The<span class="_ _8"> </span>p<span class="_ _5"></span>roblem<span class="ff4">:<span class="_ _11"> </span>W<span class="_ _5"></span>e<span class="_ _f"> </span>w<span class="_ _5"></span>ant<span class="_ _f"> </span>to<span class="_ _f"> </span>define<span class="_ _b"> </span>a<span class="_ _f"> </span>function<span class="_ _f"> </span>to<span class="_ _b"> </span>handle<span class="_ _f"> </span>different<span class="_ _b"> </span>types</span></div><div class="t m0 xd hf y2c ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc5">add<span class="fc0">(</span></span>int<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _11"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y2d ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y2e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y2f ff6 fs7 fc4 sc0 ls0 ws0">float<span class="_ _9"> </span><span class="ffc fc5">add<span class="fc0">(</span></span>float<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _11"> </span></span>float<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _9"> </span>{<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>overloading</span></span></div><div class="t m0 x3 hf y30 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y31 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y32 ff6 fs7 fc4 sc0 ls0 ws0">char<span class="_ _12"> </span><span class="ffc fc5">add<span class="fc0">(</span></span>char<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _9"> </span></span>char<span class="_ _11"> </span><span class="ffc fc0">b)<span class="_ _13"> </span>{<span class="_ _9"> </span>...<span class="_ _9"> </span>}<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>overloading</span></span></div><div class="t m0 xd hf y33 ffc fs7 fc0 sc0 ls0 ws0">ClassX<span class="_ _9"> </span><span class="fc5">add</span>(ClassX<span class="_ _9"> </span>a,<span class="_ _11"> </span>ClassX<span class="_ _9"> </span>b)<span class="_ _9"> </span>{<span class="_ _11"> </span>...<span class="_ _9"> </span>}<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>overloading</span></div><div class="t m0 xe he y34 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">Redundant<span class="_ _b"> </span>co<span class="_ _d"></span>de!!</span></div><div class="t m0 xe he y35 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">Ho<span class="_ _5"></span>w<span class="_ _f"> </span>many<span class="_ _f"> </span>functions<span class="_ _b"> </span>we<span class="_ _b"> </span>have<span class="_ _b"> </span>to<span class="_ _f"> </span>write!?</span></div><div class="t m0 xe he y36 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">If<span class="_ _b"> </span>the<span class="_ _f"> </span>user<span class="_ _f"> </span>intro<span class="_ _d"></span>duces<span class="_ _b"> </span>a<span class="_ _f"> </span>new<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>we<span class="_ _b"> </span>have<span class="_ _b"> </span>to<span class="_ _f"> </span>write<span class="_ _b"> </span>another<span class="_ _f"> </span>function!!</span></div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">6/47</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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoklEQVR42u3YsUlEQRCA4Vt5g9FiDWJ0FYiIgYFgZzZhLwYa2IGJHRgdGznJM9P8ITLrfV8Fw0zyM+3i8noHAABlvL++nNgCAADViFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAL61zLQFAADqiAifVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAADwy5aJZt3f3DoYAMA2b89PE03rkwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAA/reWmbPMOsZwMACAbXrvs4waET6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAcr5aZtgAAQB0R4ZMKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAA+BPLRLOOMRwMAGCb3vtE0/qkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUq0AAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4EfLTFsAAKCOiPBJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAGBey+Hh3Baq+bh7tAQA4Gjtr+5bOztdD5+73bquFgIAQAlfYTkl/MIkUqMAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _5"></span>unction<span class="_ _9"> </span>T<span class="_ _3"></span>emplate<span class="_ _10"> </span>2/2</div><div class="t m0 xd he y37 ff1 fs8 fc1 sc0 ls0 ws0">F<span class="_ _5"></span>unction<span class="_ _8"> </span>T<span class="_ _7"></span>emplate</div><div class="t m0 xd he y38 ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _b"> </span><span class="ff1">function<span class="_ _8"> </span>template<span class="_ _f"> </span></span>is<span class="_ _b"> </span>a<span class="_ _f"> </span>function<span class="_ _f"> </span>schema<span class="_ _b"> </span>that<span class="_ _f"> </span>op<span class="_ _d"></span>erates<span class="_ _f"> </span>with<span class="_ _b"> </span><span class="ffa">generic<span class="_ _9"> </span></span>types</div><div class="t m0 xd he y39 ff4 fs8 fc0 sc0 ls0 ws0">(indep<span class="_ _d"></span>endent<span class="_ _b"> </span>of<span class="_ _f"> </span>any<span class="_ _f"> </span>pa<span class="_ _5"></span>rticular<span class="_ _b"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e)<span class="_ _f"> </span>or<span class="_ _b"> </span>concrete<span class="_ _b"> </span>values</div><div class="t m0 x1 he y3a ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _b"> </span>function<span class="_ _f"> </span>template<span class="_ _f"> </span>w<span class="_ _5"></span>orks<span class="_ _b"> </span>with<span class="_ _b"> </span>multiple<span class="_ _f"> </span>types<span class="_ _f"> </span>without<span class="_ _b"> </span>rep<span class="_ _d"></span>eating<span class="_ _f"> </span>the<span class="_ _f"> </span>entire<span class="_ _b"> </span>co<span class="_ _d"></span>de<span class="_ _f"> </span>for</div><div class="t m0 x1 he y3b ff4 fs8 fc0 sc0 ls0 ws0">each<span class="_ _b"> </span>of<span class="_ _f"> </span>them</div><div class="t m0 xd hf y3c ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>or<span class="_ _9"> </span><span class="ffe">template&lt;class<span class="_ _9"> </span>T&gt;</span></span></span></span></div><div class="t m0 xd hf y3d ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y3e ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y3f ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y40 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _12"> </span><span class="ffc fc0">c1<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span>add(<span class="fc7">3</span>,<span class="_ _11"> </span><span class="fc7">4</span>);<span class="_ _14"> </span><span class="ffd fc8">//<span class="_ _9"> </span>c1<span class="_ _9"> </span>=<span class="_ _11"> </span>7</span></span></div><div class="t m0 xd hf y41 ff6 fs7 fc4 sc0 ls0 ws0">float<span class="_ _9"> </span><span class="ffc fc0">c2<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>add(<span class="fc7">3.0f</span>,<span class="_ _9"> </span><span class="fc7">4.0f</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>c2<span class="_ _9"> </span>=<span class="_ _9"> </span>7.0f</span></span></div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">7/47</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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3ZsW0CQRCG0VvrRg5dAyK6CixkERBYcmc0QS8EENABiTsgImSSIyMjBM3BexWs/k0+7bb5908HAABl/B/2H1YAAKAakQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwE3LTCsAAFBHRHhJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4L5+Kgcdliu3dXPcbY0AALywlplWAACgjojw3Q8AQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAOCd9FM56LBcua1HO+62RgAAKmiZaQUAAOqICN/9AACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAIDn6M/rmRVexul3YwQAYOqGxV9rX5/j+dJ14zgaBACAEq5CnyAA9IpcugAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplates:<span class="_ _15"> </span>Benefits<span class="_ _9"> </span>and<span class="_ _8"> </span>Drawbacks</div><div class="t m0 x1 h7 y42 ff1 fs3 fc0 sc0 ls0 ws0">Benefits</div><div class="t m0 xe he y43 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">Generic<span class="_ _8"> </span>Programming<span class="ff4">:<span class="_ _11"> </span>Less<span class="_ _b"> </span>co<span class="_ _d"></span>de<span class="_ _f"> </span>and<span class="_ _f"> </span>reusable.<span class="_ _11"> </span>Reduce<span class="_ _b"> </span><span class="ffa">redundancy</span>,<span class="_ _f"> </span>b<span class="_ _d"></span>etter</span></span></div><div class="t m0 x3 he y44 ffa fs8 fc0 sc0 ls0 ws0">maintainabilit<span class="_ _5"></span>y<span class="_ _11"> </span><span class="ff4">and<span class="_ _b"> </span></span>flexibility</div><div class="t m0 xe he y45 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">P<span class="_ _5"></span>erformance<span class="ff4">.<span class="_ _9"> </span>Computation<span class="_ _b"> </span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _f"> </span>done/optimized<span class="_ _b"> </span>at<span class="_ _f"> </span>compile-time<span class="_ _f"> </span><span class="fff"><span class="_ _b"> </span><span class="ffa">faster</span></span></span></span></div><div class="t m0 x1 h7 y46 ff1 fs3 fc0 sc0 ls0 ws0">Dra<span class="_ _5"></span>wbacks</div><div class="t m0 xe he y47 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">Readabilit<span class="_ _5"></span>y<span class="ff4">.<span class="_ _11"> </span>“With<span class="_ _f"> </span>resp<span class="_ _d"></span>ect<span class="_ _b"> </span>to<span class="_ _f"> </span>C++,<span class="_ _b"> </span>the<span class="_ _f"> </span>syntax<span class="_ _f"> </span>and<span class="_ _b"> </span>idioms<span class="_ _f"> </span>of<span class="_ _f"> </span>templates<span class="_ _b"> </span>are</span></span></div><div class="t m0 x3 he y48 ffa fs8 fc0 sc0 ls0 ws0">esoteric<span class="_ _9"> </span><span class="ff4">compa<span class="_ _5"></span>red<span class="_ _f"> </span>to<span class="_ _b"> </span>conventional<span class="_ _f"> </span>C++<span class="_ _b"> </span>programming,<span class="_ _b"> </span>and<span class="_ _f"> </span>templates<span class="_ _b"> </span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _f"> </span>very</span></div><div class="t m0 x3 he y49 ff4 fs8 fc0 sc0 ls0 ws0">difficult<span class="_ _b"> </span>to<span class="_ _f"> </span>understand”<span class="_ _f"> </span>[wikip<span class="_ _d"></span>edia]<span class="_ _b"> </span><span class="fff"><span class="_ _f"> </span></span>hard<span class="_ _b"> </span>to<span class="_ _b"> </span>read,<span class="_ _f"> </span>cryptic<span class="_ _b"> </span>error<span class="_ _b"> </span>messages</div><div class="t m0 xe he y4a ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">Compile<span class="_ _8"> </span>Time/Bina<span class="_ _5"></span>ry<span class="_ _8"> </span>Size<span class="ff4">.<span class="_ _11"> </span>T<span class="_ _7"></span>emplates<span class="_ _f"> </span>a<span class="_ _5"></span>re<span class="_ _f"> </span>implicitly<span class="_ _b"> </span>instantiated<span class="_ _f"> </span>for<span class="_ _b"> </span>every</span></span></div><div class="t m0 x3 he y4b ff4 fs8 fc0 sc0 ls0 ws0">distinct<span class="_ _b"> </span>parameters</div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">8/47</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 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Instantiation</div><div class="t m0 xd he y37 ff1 fs8 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Instantiation</div><div class="t m0 xd he y38 ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span><span class="ff1">template<span class="_ _f"> </span>instantiation<span class="_ _b"> </span></span>is<span class="_ _b"> </span>the<span class="_ _b"> </span>substitution<span class="_ _b"> </span>of<span class="_ _b"> </span>template<span class="_ _b"> </span>parameters<span class="_ _c"> </span>with<span class="_ _b"> </span>concrete</div><div class="t m0 xd he y39 ff4 fs8 fc0 sc0 ls0 ws0">values<span class="_ _b"> </span>or<span class="_ _b"> </span>types</div><div class="t m0 x1 he y4c ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span>compiler<span class="_ _f"> </span><span class="ffa">automatically<span class="_ _11"> </span></span>generates<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ff1">function<span class="_ _8"> </span>implementation<span class="_ _b"> </span></span>for<span class="_ _b"> </span>each<span class="_ _b"> </span>template</div><div class="t m0 x1 he y4d ff4 fs8 fc0 sc0 ls0 ws0">instantiation</div><div class="t m0 xd hf y4e ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y4f ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y50 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y51 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y52 ffc fs7 fc0 sc0 ls0 ws0">add(<span class="fc7">3</span>,<span class="_ _9"> </span><span class="fc7">4</span>);<span class="_ _14"> </span><span class="ffd fc8">//<span class="_ _9"> </span>generates:<span class="_ _11"> </span><span class="ffe">int<span class="_ _12"> </span>add(int,<span class="_ _9"> </span>int)</span></span></div><div class="t m0 xd hf y53 ffc fs7 fc0 sc0 ls0 ws0">add(<span class="fc7">3.0f</span>,<span class="_ _9"> </span><span class="fc7">4.0f</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>generates:<span class="_ _9"> </span><span class="ffe">float<span class="_ _9"> </span>add(float,<span class="_ _11"> </span>float)</span></span></div><div class="t m0 xd hf y54 ffc fs7 fc0 sc0 ls0 ws0">add(<span class="fc7">2</span>,<span class="_ _9"> </span><span class="fc7">6</span>);<span class="_ _14"> </span><span class="ffd fc8">//<span class="_ _9"> </span>already<span class="_ _11"> </span>generated</span></div><div class="t m0 xd hf y55 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>other<span class="_ _9"> </span>instances<span class="_ _11"> </span>are<span class="_ _9"> </span>not<span class="_ _9"> </span>generated</div><div class="t m0 xd hf y56 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>e.g.<span class="_ _9"> </span>char<span class="_ _11"> </span>add(char,char)</div><div class="t m0 x7 h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">9/47</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 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Implicit<span class="_ _9"> </span>and<span class="_ _8"> </span>Explicit<span class="_ _9"> </span>T<span class="_ _3"></span>emplate<span class="_ _9"> </span>Instantiation</div><div class="t m0 xd he y57 ff1 fs8 fc1 sc0 ls0 ws0">Implicit<span class="_ _8"> </span>T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Instantiation</div><div class="t m0 xd he y58 ff1 fs8 fc0 sc0 ls0 ws0">Implicit<span class="_ _8"> </span>template<span class="_ _f"> </span>instantiation<span class="_ _f"> </span><span class="ff4">o<span class="_ _d"></span>ccurs<span class="_ _f"> </span>when<span class="_ _b"> </span>the<span class="_ _f"> </span>compiler<span class="_ _f"> </span>generates<span class="_ _b"> </span>co<span class="_ _d"></span>de</span></div><div class="t m0 xd he y59 ff4 fs8 fc0 sc0 ls0 ws0">dep<span class="_ _d"></span>ending<span class="_ _b"> </span>on<span class="_ _f"> </span>the<span class="_ _f"> </span><span class="ffa">deduced<span class="_ _b"> </span>argument<span class="_ _b"> </span>types<span class="_ _9"> </span></span>o<span class="_ _5"></span>r<span class="_ _f"> </span>the<span class="_ _b"> </span><span class="ffa">explicit<span class="_ _f"> </span>template<span class="_ _f"> </span>a<span class="_ _5"></span>rguments<span class="_ _9"> </span><span class="ff4">and</span></span></div><div class="t m0 xd he y5a ff4 fs8 fc0 sc0 ls0 ws0">only<span class="_ _b"> </span>when<span class="_ _f"> </span>the<span class="_ _f"> </span>definition<span class="_ _b"> </span>is<span class="_ _f"> </span>needed</div><div class="t m0 xd he y5b ff1 fs8 fc1 sc0 ls0 ws0">Explicit<span class="_ _8"> </span>T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Instantiation</div><div class="t m0 xd he y5c ff1 fs8 fc0 sc0 ls0 ws0">Explicit<span class="_ _8"> </span>template<span class="_ _f"> </span>instantiation<span class="_ _f"> </span><span class="ff4">o<span class="_ _d"></span>ccurs<span class="_ _f"> </span>when<span class="_ _b"> </span>the<span class="_ _f"> </span>compiler<span class="_ _f"> </span>generates<span class="_ _b"> </span>co<span class="_ _d"></span>de</span></div><div class="t m0 xd he y5d ff4 fs8 fc0 sc0 ls0 ws0">dep<span class="_ _d"></span>ending<span class="_ _b"> </span>only<span class="_ _f"> </span>on<span class="_ _f"> </span>the<span class="_ _b"> </span><span class="ffa">explicit<span class="_ _f"> </span>template<span class="_ _f"> </span>a<span class="_ _5"></span>rguments<span class="_ _9"> </span><span class="ff4">sp<span class="_ _d"></span>ecified<span class="_ _b"> </span>in<span class="_ _f"> </span>the<span class="_ _f"> </span>decla<span class="_ _5"></span>ration.</span></span></div><div class="t m0 xd he y5e ff4 fs8 fc0 sc0 ls0 ws0">Useful<span class="_ _b"> </span>when<span class="_ _f"> </span>dealing<span class="_ _f"> </span>with<span class="_ _b"> </span>multiple<span class="_ _f"> </span>translation<span class="_ _b"> </span>units<span class="_ _f"> </span>to<span class="_ _f"> </span>reduce<span class="_ _b"> </span>the<span class="_ _f"> </span>binary<span class="_ _b"> </span>size</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">10/47</div></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,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Implicit<span class="_ _9"> </span>and<span class="_ _8"> </span>Explicit<span class="_ _9"> </span>T<span class="_ _3"></span>emplate<span class="_ _9"> </span>Instantiation</div><div class="t m0 xd hf y5f ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y60 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f(T<span class="_ _9"> </span>a)<span class="_ _11"> </span>{}</span></div><div class="t m0 xd hf y61 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g()<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y62 ffc fs7 fc0 sc0 ls0 ws0">f(<span class="fc7">3</span>);<span class="_ _16"> </span><span class="ffd fc8">//<span class="_ _9"> </span>generates:<span class="_ _9"> </span><span class="ffe">void<span class="_ _11"> </span>f(int)<span class="_ _9"> </span><span class="ff10"><span class="_ _9"> </span></span>implicit</span></span></div><div class="t m0 x3 hf y63 ffc fs7 fc0 sc0 ls0 ws0">f<span class="fc7">&lt;<span class="ff6 fc4">short</span>&gt;</span>(<span class="fc7">3.0</span>);<span class="_ _17"> </span><span class="ffd fc8">//<span class="_ _9"> </span>generates:<span class="_ _9"> </span><span class="ffe">void<span class="_ _11"> </span>f(short)<span class="_ _9"> </span><span class="ff10"><span class="_ _9"> </span></span>implicit</span></span></div><div class="t m0 xd hf y64 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y65 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="_ _9"> </span><span class="fc4">void<span class="_ _9"> </span><span class="ffc fc0">f<span class="fc7">&lt;</span></span>int<span class="ffc fc7">&gt;<span class="fc0">(</span></span>int<span class="ffc fc0">);<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>generates:<span class="_ _9"> </span><span class="ffe">void<span class="_ _11"> </span>f(int)<span class="_ _9"> </span><span class="ff10"><span class="_ _9"> </span></span>explicit</span></span></span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">11/47</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,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameters</div><div class="t m0 xd he y37 ff1 fs8 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Pa<span class="_ _5"></span>rameters</div><div class="t m0 xd he y38 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Pa<span class="_ _5"></span>rameters<span class="_ _b"> </span><span class="ff4">are<span class="_ _b"> </span>the<span class="_ _f"> </span>names<span class="_ _b"> </span>following<span class="_ _b"> </span>the<span class="_ _b"> </span><span class="ff11">template<span class="_ _f"> </span></span>keyw<span class="_ _5"></span>o<span class="_ _5"></span>rd</span></div><div class="t m0 xd hf y66 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y67 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f()<span class="_ _9"> </span>{}</span></div><div class="t m0 xd hf y68 ffc fs7 fc0 sc0 ls0 ws0">f<span class="fc7">&lt;<span class="ff6 fc4">int</span>&gt;</span>();</div><div class="t m0 xd he y69 ff11 fs8 fc5 sc0 ls0 ws0">typename<span class="_ _15"> </span>T<span class="_ _18"> </span><span class="ff4 fc0">is<span class="_ _b"> </span>the<span class="_ _f"> </span><span class="ff1">template<span class="_ _8"> </span>pa<span class="_ _5"></span>rameter</span></span></div><div class="t m0 xd he y6a ff11 fs8 fc5 sc0 ls0 ws0">int<span class="_ _18"> </span><span class="ff4 fc0">is<span class="_ _b"> </span>the<span class="_ _f"> </span><span class="ff1">template<span class="_ _8"> </span>a<span class="_ _5"></span>rgument</span></span></div><div class="t m0 x1 he y6b ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _b"> </span><span class="ff1">template<span class="_ _8"> </span>parameter<span class="_ _b"> </span></span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ffa">generic<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _0"></span><span class="ff4">,<span class="_ _b"> </span>i.e.<span class="_ _4"> </span><span class="ff11">typename<span class="_ _c"> </span></span>,<span class="_ _f"> </span>as<span class="_ _b"> </span>well<span class="_ _b"> </span>as<span class="_ _f"> </span>a</span></span></div><div class="t m0 x1 he y6c ffa fs8 fc0 sc0 ls0 ws0">non-t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>template<span class="_ _f"> </span>pa<span class="_ _5"></span>rameters<span class="_ _9"> </span><span class="ff4">(<span class="ff11">NTTP</span>),<span class="_ _b"> </span>e.g.<span class="_ _4"> </span><span class="ff11">int<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">enum<span class="_ _c"> </span></span>,<span class="_ _b"> </span>etc.</span></div><div class="t m0 x1 he y6d ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span><span class="ff1">template<span class="_ _8"> </span>argument<span class="_ _b"> </span></span>of<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ffa">generic<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _9"> </span><span class="ff4">is<span class="_ _b"> </span>a<span class="_ _b"> </span>built-in<span class="_ _f"> </span>o<span class="_ _5"></span>r<span class="_ _f"> </span>user-declared<span class="_ _b"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e,<span class="_ _f"> </span>while<span class="_ _b"> </span>a</span></span></div><div class="t m0 x1 he y6e ffa fs8 fc0 sc0 ls0 ws0">concrete<span class="_ _b"> </span>value<span class="_ _9"> </span><span class="ff4">fo<span class="_ _5"></span>r<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ffa">non-t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>template<span class="_ _f"> </span>pa<span class="_ _5"></span>rameter</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">12/47</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,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Examples<span class="_ _19"> </span>1/2</div><div class="t m0 xd he y6f ff6 fs8 fc0 sc0 ls0 ws0">int<span class="_ _1a"> </span><span class="ff1">pa<span class="_ _5"></span>rameter</span></div><div class="t m0 xd hf y70 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">A,<span class="_ _9"> </span></span>int<span class="_ _11"> </span><span class="ffc fc0">B<span class="fc7">&gt;</span></span></span></div><div class="t m0 xd hf y71 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">add_int()<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y72 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">A<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>B;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>sum<span class="_ _11"> </span>is<span class="_ _9"> </span>computed<span class="_ _9"> </span>at<span class="_ _9"> </span>compile-time</span></span></div><div class="t m0 xd hf y73 ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _1b"> </span><span class="ffd fc8">//<span class="_ _9"> </span>e.g.<span class="_ _9"> </span>add_int&lt;3,<span class="_ _11"> </span>4&gt;();</span></div><div class="t m0 xd he y74 ff6 fs8 fc0 sc0 ls0 ws0">enum<span class="_ _1a"> </span><span class="ff1">pa<span class="_ _5"></span>rameter</span></div><div class="t m0 xd hf y75 ff6 fs7 fc6 sc0 ls0 ws0">enum<span class="_ _9"> </span>class<span class="_ _9"> </span><span class="fc5">Enum<span class="_ _11"> </span><span class="ffc fc0">{<span class="_ _9"> </span>Left,<span class="_ _9"> </span>Right<span class="_ _11"> </span>};</span></span></div><div class="t m0 xd hf y76 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;<span class="fc0">Enum<span class="_ _9"> </span>Z</span>&gt;</span></div><div class="t m0 xd hf y77 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">add_enum(</span>int<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _11"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y78 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">(Z<span class="_ _9"> </span><span class="fc7">==<span class="_ _11"> </span></span>Enum<span class="fc7">::</span>Left)<span class="_ _9"> </span><span class="fc7">?<span class="_ _9"> </span></span>a<span class="_ _11"> </span><span class="fc7">+<span class="_ _9"> </span></span>b<span class="_ _9"> </span><span class="fc7">:<span class="_ _9"> </span></span>a;</span></div><div class="t m0 xd hf y79 ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _1c"> </span><span class="ffd fc8">//<span class="_ _9"> </span>e.g.<span class="_ _9"> </span>add_enum&lt;Enum::Left&gt;(3,<span class="_ _11"> </span>4);</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">13/47</div></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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIqklEQVR42u3ZMUrFQBSG0YzkYjW4BrGythCxVsSNuQn3YqGFO7BxB1aPAR/eJna2PpE8ZvScFSR/mo+bcnJ+OQEAQDden58OrAAAQG9EKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAX0pmWgEAgH5EhEsqAADdEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAAAOZTbC71poRAIBB1VoHelqXVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABWVzLTCgAA9CMiXFIBAOiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQD4Q2YT7K61ZgQAYFC11oGe1iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgNWVzLQCAAD9iAiXVAAAuiNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAAGuaTQAAv/S+3Z5d3/6Tl315fPDF2YOSmVYAAKAfEeF3PwAA3RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAPzBv7o6tAN96u7o3AgDsx+nFTSlHh8vmY5qWZTEIAABd+ARNIij+z5swbwAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Examples<span class="_ _19"> </span>2/2</div><div class="t m0 xe he y7a ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">Ceiling<span class="_ _8"> </span>division</span></div><div class="t m0 x10 hf y7b ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">DIV,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 x10 hf y7c ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>ceil_div(T<span class="_ _9"> </span>value)<span class="_ _11"> </span>{</div><div class="t m0 x11 hf y7d ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">(value<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>DIV<span class="_ _9"> </span><span class="fc7">-<span class="_ _9"> </span>1</span>)<span class="_ _11"> </span><span class="fc7">/<span class="_ _9"> </span></span>DIV;</span></div><div class="t m0 x10 hf y7e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 hf y7f ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>e.g.<span class="_ _9"> </span>ceil_div&lt;5&gt;(11);<span class="_ _11"> </span>//<span class="_ _9"> </span>returns<span class="_ _9"> </span>3</div><div class="t m0 xe he y80 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff1">Rounded<span class="_ _8"> </span>division</span></div><div class="t m0 x10 hf y81 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">DIV,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 x10 hf y82 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>round_div(T<span class="_ _9"> </span>value)<span class="_ _11"> </span>{</div><div class="t m0 x11 hf y83 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">(value<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>DIV<span class="_ _9"> </span><span class="fc7">/<span class="_ _9"> </span>2</span>)<span class="_ _11"> </span><span class="fc7">/<span class="_ _9"> </span></span>DIV;</span></div><div class="t m0 x10 hf y84 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 hf y85 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>e.g.<span class="_ _9"> </span>round_div&lt;5&gt;(11);<span class="_ _11"> </span>//<span class="_ _9"> </span>returns<span class="_ _9"> </span>2<span class="_ _11"> </span>(2.2)</div><div class="t m0 x1 he y86 ff4 fs8 fc0 sc0 ls0 ws0">Since<span class="_ _b"> </span><span class="ff11">DIV<span class="_ _f"> </span></span>is<span class="_ _f"> </span>kno<span class="_ _5"></span>wn<span class="_ _f"> </span>at<span class="_ _b"> </span>compile-time,<span class="_ _f"> </span>the<span class="_ _f"> </span>compiler<span class="_ _b"> </span>can<span class="_ _f"> </span>heavily<span class="_ _b"> </span>optimize<span class="_ _f"> </span>the<span class="_ _f"> </span>division</div><div class="t m0 x1 hc y87 ff8 fs7 fc0 sc0 ls0 ws0">(almost<span class="_ _c"> </span>fo<span class="_ _5"></span>r<span class="_ _c"> </span>every<span class="_ _c"> </span>numb<span class="_ _d"></span>er,<span class="_ _c"> </span>not<span class="_ _c"> </span>just<span class="_ _c"> </span>for<span class="_ _c"> </span>pow<span class="_ _5"></span>er<span class="_ _c"> </span>of<span class="_ _c"> </span>t<span class="_ _5"></span>wo)</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">14/47</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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI1ElEQVR42u3bsUnGQBjH4e8kh9XhDGLlBCLWgmV2yRBW2cAhMoSFQ7iB1cdVXhM7awl88T3yPBO8/NP8SEi6e3g6AQBAGJ8f71dWAAAgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMCv1FqzAgAAceScvUkFACAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQDg/wwd3Vpr9cAAALYppXR0rTepAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVBMAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAc12ACYhrn2Qg7W6bJCAAEkVprvdxaa/XAAAC2KaX0cmrO2ed+AADCEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgBwMIMJiGmcZyPsbJkmIwAQRGqt9XJrrdUDAwDYppTSy6k5Z5/7AQAIR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIDLGkxATOM8G2FnyzQZAYAgUmutl1trrR4YAMA2pZReTs05+9wPAEA4IhUAAJEKAAAiFQCA7vT04xQAAEfgxykAACISqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAiG44v95aAS7q6/nNCADwd/ePLyndXK/n79NpXVeDAAAQwg8FxDT8Sm4t1gAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameters<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Default<span class="_ _1d"> </span>Value<span class="_ _1e"> </span>1/3</div><div class="t m0 x1 he y2b ff4 fs8 fc3 sc0 ls0 ws0">C++11<span class="_ _b"> </span><span class="ff1 fc0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>parameters<span class="_ _f"> </span>can<span class="_ _8"> </span>have<span class="_ _8"> </span>default<span class="_ _f"> </span>values</span></div><div class="t m0 xd hf y88 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">A<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>3</span>,<span class="_ _9"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">B<span class="_ _11"> </span><span class="fc7">=<span class="_ _9"> </span>4&gt;</span></span></span></div><div class="t m0 xd hf y89 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">print1()<span class="_ _9"> </span>{<span class="_ _11"> </span>cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>A<span class="_ _11"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span><span class="fc9">&quot;,<span class="_ _9"> </span>&quot;<span class="_ _9"> </span></span>&lt;&lt;<span class="_ _11"> </span></span>B;<span class="_ _9"> </span>}</span></div><div class="t m0 xd hf y8a ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">A<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>3</span>,<span class="_ _9"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">B<span class="fc7">&gt;<span class="_ _1b"> </span><span class="ffd fc8">//<span class="_ _11"> </span>still<span class="_ _9"> </span>possible,<span class="_ _9"> </span>but<span class="_ _9"> </span>little<span class="_ _11"> </span>sense</span></span></span></span></div><div class="t m0 xd hf y8b ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">print2()<span class="_ _9"> </span>{<span class="_ _11"> </span>cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>A<span class="_ _11"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span><span class="fc9">&quot;,<span class="_ _9"> </span>&quot;<span class="_ _9"> </span></span>&lt;&lt;<span class="_ _11"> </span></span>B;<span class="_ _9"> </span>}</span></div><div class="t m0 xd hf y8c ffc fs7 fc0 sc0 ls0 ws0">print1<span class="fc7">&lt;2</span>,<span class="_ _9"> </span><span class="fc7">5&gt;</span>();<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span>2,<span class="_ _11"> </span>5</span></div><div class="t m0 xd hf y8d ffc fs7 fc0 sc0 ls0 ws0">print1<span class="fc7">&lt;2&gt;</span>();<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span>2,<span class="_ _11"> </span>4<span class="_ _9"> </span>(B:<span class="_ _12"> </span>default)</span></div><div class="t m0 xd hf y8e ffc fs7 fc0 sc0 ls0 ws0">print1<span class="fc7">&lt;&gt;</span>();<span class="_ _20"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span>3,<span class="_ _11"> </span>4<span class="_ _9"> </span>(A,B:<span class="_ _9"> </span>default)</span></div><div class="t m0 xd hf y8f ffc fs7 fc0 sc0 ls0 ws0">print1();<span class="_ _1c"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span>3,<span class="_ _11"> </span>4<span class="_ _9"> </span>(A,B:<span class="_ _9"> </span>default)</span></div><div class="t m0 xd hf y90 ffc fs7 fc0 sc0 ls0 ws0">print2<span class="fc7">&lt;2</span>,<span class="_ _9"> </span><span class="fc7">5&gt;</span>();<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span>2,<span class="_ _11"> </span>5</span></div><div class="t m0 xd hf y91 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>print2&lt;2&gt;();<span class="_ _1f"> </span>compile<span class="_ _9"> </span>error</div><div class="t m0 xd hf y92 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>print2&lt;&gt;();<span class="_ _12"> </span>compile<span class="_ _9"> </span>error</div><div class="t m0 xd hf y93 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>print2();<span class="_ _13"> </span>compile<span class="_ _9"> </span>error</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">15/47</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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIr0lEQVR42u3ZMU7DQBCGUS/yiMriDIiKOgVC1EQoF+MS3CVFKLhBGm5AFUWKxTSmo6NBEMbkvQt49bv5tNuubu46AAAo4/Xl+cwKAABUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPjUMtMKAADUERFuUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgBAEf2Mzrrf7/0wAIDvGYZhRqd1kwoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgJPVMtMKAADUERFuUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPhab4LfdhjHxXI1rzNvN2s/DgD4Qy0zrQAAQB0R4bkfAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBAJi33gTADzqM42K5OvJHt5u15QH+mZaZVgAAoI6I8NwPAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAACOpN89XloBanq7fzICACfo+vahtYvzaffeddM0GQQAgBI+AAK1K/6wPP1OAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameters<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Default<span class="_ _1d"> </span>Value<span class="_ _1e"> </span>2/3</div><div class="t m0 x1 he y94 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>parameters<span class="_ _f"> </span>may<span class="_ _f"> </span>have<span class="_ _8"> </span>no<span class="_ _8"> </span>name</div><div class="t m0 xd hf y95 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc5">f<span class="fc0">()<span class="_ _9"> </span>{}</span></span></div><div class="t m0 xd hf y96 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="ffc fc7">=<span class="_ _9"> </span></span><span class="fc4">void<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y97 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g()<span class="_ _9"> </span>{}</span></div><div class="t m0 xd hf y98 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">main()<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y99 ffc fs7 fc0 sc0 ls0 ws0">g();<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>generated</span></div><div class="t m0 xd hf y9a ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he y9b ff6 fs8 fc0 sc0 ls0 ws0">f()<span class="_ _b"> </span><span class="ff4">is<span class="_ _f"> </span>alwa<span class="_ _5"></span>ys<span class="_ _b"> </span>generated<span class="_ _f"> </span>in<span class="_ _b"> </span>the<span class="_ _f"> </span>final<span class="_ _f"> </span>co<span class="_ _d"></span>de</span></div><div class="t m0 x1 he y9c ff6 fs8 fc0 sc0 ls0 ws0">g()<span class="_ _b"> </span><span class="ff4">is<span class="_ _f"> </span>generated<span class="_ _f"> </span>in<span class="_ _b"> </span>the<span class="_ _f"> </span>final<span class="_ _b"> </span>co<span class="_ _0"></span>de<span class="_ _b"> </span>only<span class="_ _b"> </span>if<span class="_ _f"> </span>it<span class="_ _b"> </span>is<span class="_ _f"> </span>called</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">16/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf13" class="pf w0 h0" data-page-no="13"><div class="pc pc13 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSNmMJRiHgiHYgCpKhRvTMQCi+CHnTGA9N1c/7w6nBAAAYTzut5UVAACIRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPCRa61WAAAgjlKKSyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAWIhuRm+dpsmHAQB8p+/7Gb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgDAD+VaqxUAAIijlOKSCgBAOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBgQbrxsrUC/Jnn+WoEAOZrfxxy3qzb+EqptWYQAABCeAOTPxoCtYQoPAAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameters<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Default<span class="_ _1d"> </span>Value<span class="_ _1e"> </span>3/3</div><div class="t m0 x1 he y2b ff4 fs8 fc3 sc0 ls0 ws0">C++11<span class="_ _b"> </span><span class="ff1 fc0">Unlike<span class="_ _f"> </span>function<span class="_ _8"> </span>pa<span class="_ _5"></span>rameters,<span class="_ _8"> </span>template<span class="_ _8"> </span>parameters<span class="_ _f"> </span>can<span class="_ _8"> </span>b<span class="_ _d"></span>e<span class="_ _8"> </span>initialized<span class="_ _8"> </span>b<span class="_ _5"></span>y</span></div><div class="t m0 x1 he y9d ff1 fs8 fc0 sc0 ls0 ws0">p<span class="_ _5"></span>revious<span class="_ _8"> </span>values</div><div class="t m0 xd hf y9e ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">A,<span class="_ _9"> </span></span>int<span class="_ _11"> </span><span class="ffc fc0">B<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span>A<span class="_ _11"> </span><span class="fc7">+<span class="_ _9"> </span>3&gt;</span></span></span></div><div class="t m0 xd hf y9f ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f()<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf ya0 ffc fs7 fc0 sc0 ls0 ws0">cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>B;</div><div class="t m0 xd hf ya1 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf ya2 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span><span class="fc4">int<span class="_ _11"> </span><span class="ffc fc0">S<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span></span></span></span>sizeof<span class="ffc fc0">(T)<span class="fc7">&gt;</span></span></div><div class="t m0 xd hf ya3 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g(T)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf ya4 ffc fs7 fc0 sc0 ls0 ws0">cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>S;</div><div class="t m0 xd hf ya5 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf ya6 ffc fs7 fc0 sc0 ls0 ws0">f<span class="fc7">&lt;3&gt;</span>();<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>B<span class="_ _9"> </span>is<span class="_ _9"> </span>6</span></div><div class="t m0 xd hf ya7 ffc fs7 fc0 sc0 ls0 ws0">g(<span class="fc7">3</span>);<span class="_ _21"> </span><span class="ffd fc8">//<span class="_ _9"> </span>S<span class="_ _9"> </span>is<span class="_ _11"> </span>4</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">17/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf14" class="pf w0 h0" data-page-no="14"><div class="pc pc14 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjklEQVR42u3YsU0DQRCG0Vt0I6KVa0BEVICQYyR35iYoh4Ai6IDotBGTnANLzkic3Bx6r4LVv8mnac+vxwkAAMr4/vp8sAIAANWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAblpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQCAv807eusYw4cBANyn976j17qkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABKaplpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAC2M+/orWMMHwYAcJ/e+45e65IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAPwLLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAFubl/OTFYCrn/cPIwCwuZe3U2uHx3X5naZ1XQ0CAEAJF4osIAAw9riHAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _5"></span>unction<span class="_ _1d"> </span>T<span class="_ _7"></span>emplate<span class="_ _1d"> </span>Overloading</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Functions<span class="_ _f"> </span>can<span class="_ _8"> </span>b<span class="_ _d"></span>e<span class="_ _8"> </span><span class="ff12">overloaded</span></div><div class="t m0 xd hf ya8 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf ya9 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf yaa ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf yab ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>e.g<span class="_ _9"> </span>add(3,<span class="_ _9"> </span>4);</span></div><div class="t m0 xd hf yac ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf yad ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b,<span class="_ _9"> </span>T<span class="_ _11"> </span>c)<span class="_ _9"> </span>{<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>different<span class="_ _11"> </span>number<span class="_ _9"> </span>of<span class="_ _9"> </span>parameters</span></div><div class="t m0 x3 hf yae ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>c;</span></div><div class="t m0 xd hf yaf ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>e.g<span class="_ _9"> </span>add(3,<span class="_ _9"> </span>4,<span class="_ _11"> </span>5);</span></div><div class="t m0 x1 he yb0 ff1 fs8 fc0 sc0 ls0 ws0">Also,<span class="_ _8"> </span>templates<span class="_ _f"> </span>themselves<span class="_ _8"> </span>can<span class="_ _8"> </span>b<span class="_ _d"></span>e<span class="_ _8"> </span><span class="ff12">overloaded</span></div><div class="t m0 xd hf yb1 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">C,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf yb2 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _11"> </span>it<span class="_ _9"> </span>is<span class="_ _9"> </span>not<span class="_ _11"> </span>in<span class="_ _9"> </span>conflict<span class="_ _9"> </span>with</span></div><div class="t m0 x3 hf yb3 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>C;<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)</span></span></div><div class="t m0 xd hf yb4 ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _22"> </span><span class="ffd fc8">//<span class="_ _9"> </span>&quot;C&quot;<span class="_ _9"> </span>is<span class="_ _11"> </span>part<span class="_ _9"> </span>of<span class="_ _9"> </span>the<span class="_ _11"> </span>signature</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">18/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf15" class="pf w0 h0" data-page-no="15"><div class="pc pc15 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Sp<span class="_ _0"></span>ecialization<span class="_ _23"> </span>1/2</div><div class="t m0 xd he yb5 ff1 fs8 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>Sp<span class="_ _0"></span>ecialization</div><div class="t m0 xd he yb6 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _f"> </span>sp<span class="_ _0"></span>ecialization<span class="_ _b"> </span><span class="ff4">refers<span class="_ _b"> </span>to<span class="_ _f"> </span>the<span class="_ _b"> </span>concrete<span class="_ _f"> </span>implementation<span class="_ _f"> </span>fo<span class="_ _5"></span>r<span class="_ _f"> </span>a<span class="_ _f"> </span>sp<span class="_ _d"></span>ecific</span></div><div class="t m0 xd he yb7 ff4 fs8 fc0 sc0 ls0 ws0">combination<span class="_ _b"> </span>of<span class="_ _f"> </span>template<span class="_ _f"> </span>pa<span class="_ _5"></span>rameters</div><div class="t m0 x1 he yb8 ff1 fs8 fc0 sc0 ls0 ws0">The<span class="_ _8"> </span>p<span class="_ _5"></span>roblem:</div><div class="t m0 xd hf yb9 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf yba ff6 fs7 fc4 sc0 ls0 ws0">bool<span class="_ _9"> </span><span class="ffc fc0">compare(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf ybb ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">&lt;<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf ybc ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he ybd ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span>direct<span class="_ _f"> </span>comparison<span class="_ _b"> </span>b<span class="_ _d"></span>et<span class="_ _5"></span>ween<span class="_ _b"> </span>t<span class="_ _5"></span>wo<span class="_ _b"> </span>floating-p<span class="_ _d"></span>oint<span class="_ _f"> </span>values<span class="_ _b"> </span>is<span class="_ _f"> </span>dangerous<span class="_ _b"> </span>due<span class="_ _f"> </span>to<span class="_ _f"> </span>rounding</div><div class="t m0 x1 he ybe ff4 fs8 fc0 sc0 ls0 ws0">erro<span class="_ _5"></span>rs</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">19/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf16" class="pf w0 h0" data-page-no="16"><div class="pc pc16 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Sp<span class="_ _0"></span>ecialization<span class="_ _23"> </span>2/2</div><div class="t m0 x1 he ybf ff1 fs8 fc0 sc0 ls0 ws0">Solution<span class="ff4">:<span class="_ _9"> </span>T<span class="_ _5"></span>emplate<span class="_ _b"> </span>sp<span class="_ _d"></span>ecialization</span></div><div class="t m0 xd hf yc0 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;&gt;</span></div><div class="t m0 xd hf yc1 ff6 fs7 fc4 sc0 ls0 ws0">bool<span class="_ _9"> </span><span class="ffc fc0">compare<span class="fc7">&lt;</span></span>float<span class="ffc fc7">&gt;<span class="fc0">(</span></span>float<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _11"> </span></span>float<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf yc2 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">...<span class="_ _12"> </span><span class="ffd fc8">//<span class="_ _9"> </span>a<span class="_ _11"> </span>better<span class="_ _9"> </span>floating<span class="_ _9"> </span>point<span class="_ _11"> </span>implementation</span></span></div><div class="t m0 xd hf yc3 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he yc4 ff4 fs8 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>ull<span class="_ _f"> </span>Sp<span class="_ _d"></span>ecialization:<span class="_ _11"> </span><span class="ffa">F<span class="_ _5"></span>unction<span class="_ _f"> </span><span class="ff4">templates<span class="_ _f"> </span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _b"> </span>sp<span class="_ _d"></span>ecialized<span class="_ _f"> </span>only<span class="_ _f"> </span>if<span class="_ _b"> </span><span class="ff1">ALL<span class="_ _f"> </span></span>template</span></span></div><div class="t m0 x1 he yc5 ff4 fs8 fc0 sc0 ls0 ws0">a<span class="_ _5"></span>rguments<span class="_ _f"> </span>a<span class="_ _5"></span>re<span class="_ _f"> </span>sp<span class="_ _d"></span>ecialized</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">20/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf17" class="pf w0 h0" data-page-no="17"><div class="pc pc17 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 xc h2 y23 ff1 fs0 fc0 sc0 ls0 ws0">T<span class="_ _e"></span>emplate<span class="_ _1"> </span>V<span class="_ _7"></span>a<span class="_ _7"></span>riable</div><a class="l" href="#pf17" data-dest-detail='[23,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:208.239000px;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="pf18" class="pf w0 h0" data-page-no="18"><div class="pc pc18 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3csW0CMQCG0TM6K5XFDChVJoii1EiMwB4MQU/NEBmCIkNkg1TITeIrjgKJEiEkhA3vTWD9bj7dSQ6v758dAABU4+d7N7ECAAC1EakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAJyEUooVAACoR4zRl1QAAKojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAALi7vqGz5pxdGADAdVJKDZ3Wl1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAeHa9CeB2/oZhudnY4UJfq5URADgKpZRWzppzdmEAANdJKbVy1Bij3/0AAFRHpAIAIFIBAECkAgAgUgEAQKQCAPBwWnqCCgCAZ+AJKgAAaiRSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAA5/T79cwKQIt+51sjADykt49FCNOXcf/fdeM4GgQAgCocAPl2JgABpfK2AAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Va<span class="_ _5"></span>riable</div><div class="t m0 x1 he y2b ff4 fs8 fc3 sc0 ls0 ws0">C++14<span class="_ _b"> </span><span class="fc0">allows<span class="_ _b"> </span>variables<span class="_ _b"> </span>with<span class="_ _b"> </span>templates</span></div><div class="t m0 x1 he yc6 ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _b"> </span>template<span class="_ _f"> </span>variable<span class="_ _b"> </span>can<span class="_ _b"> </span>b<span class="_ _d"></span>e<span class="_ _f"> </span>considered<span class="_ _b"> </span>a<span class="_ _f"> </span>sp<span class="_ _d"></span>ecial<span class="_ _f"> </span>case<span class="_ _b"> </span>of<span class="_ _f"> </span>a<span class="_ _f"> </span><span class="ffa">class<span class="_ _b"> </span>template<span class="_ _1d"> </span></span>(see<span class="_ _f"> </span>next</div><div class="t m0 x1 he yc7 ff4 fs8 fc0 sc0 ls0 ws0">lecture)</div><div class="t m0 xd hf yc8 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf yc9 ff6 fs7 fc6 sc0 ls0 ws0">constexpr<span class="_ _9"> </span><span class="ffc fc0">T<span class="_ _9"> </span>pi{<span class="_ _11"> </span><span class="fc7">3.1415926535897932385<span class="_ _9"> </span></span>};<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>variable<span class="_ _9"> </span>template</span></span></div><div class="t m0 xd hf yca ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf ycb ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>circular_area(T<span class="_ _9"> </span>r)<span class="_ _11"> </span>{</div><div class="t m0 x3 hf ycc ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">pi<span class="fc7">&lt;</span>T<span class="fc7">&gt;<span class="_ _9"> </span>*<span class="_ _11"> </span></span>r<span class="_ _9"> </span><span class="fc7">*<span class="_ _9"> </span></span>r;<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>pi&lt;T&gt;<span class="_ _9"> </span>is<span class="_ _9"> </span>a<span class="_ _11"> </span>variable<span class="_ _9"> </span>template<span class="_ _9"> </span>instantiation</span></span></div><div class="t m0 xd hf ycd ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf yce ffc fs7 fc0 sc0 ls0 ws0">circular_area(<span class="fc7">3.3f</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>float</span></div><div class="t m0 xd hf ycf ffc fs7 fc0 sc0 ls0 ws0">circular_area(<span class="fc7">3.3</span>);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>double</span></div><div class="t m0 xd hd yd0 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>circular_area(3);<span class="_ _9"> </span>//<span class="_ _11"> </span><span class="ff9">compile<span class="_ _c"> </span>erro<span class="_ _5"></span>r<span class="ffd">,<span class="_ _9"> </span>narrowing<span class="_ _11"> </span>conversion<span class="_ _9"> </span>with<span class="_ _9"> </span>&quot;pi&quot;</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">21/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf19" class="pf w0 h0" data-page-no="19"><div class="pc pc19 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 xc h2 yd1 ff1 fs0 fc0 sc0 ls0 ws0">T<span class="_ _e"></span>emplate<span class="_ _1"> </span>P<span class="_ _7"></span>a<span class="_ _7"></span>rameter</div><div class="t m0 xc h2 yd2 ff1 fs0 fc0 sc0 ls0 ws0">T<span class="_ _e"></span>yp<span class="_ _0"></span>es</div><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:149.618000px;width:241.993000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:115.247000px;width:68.076000px;height:24.025000px;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="pf1a" class="pf w0 h0" data-page-no="1a"><div class="pc pc1a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameter<span class="_ _1d"> </span>T<span class="_ _7"></span>ypes</div><div class="t m0 x1 he y2b ff4 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _b"> </span>parameters<span class="_ _b"> </span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e:</div><div class="t m0 xe he yd3 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">integral<span class="_ _b"> </span>type</span></div><div class="t m0 xe he yd4 ffb fs8 fc0 sc0 ls0 ws0"></div><div class="t m0 x10 he yd5 ff11 fs8 fc0 sc0 ls0 ws0">enum<span class="_ _c"> </span><span class="ff4">,<span class="_ _18"> </span></span>enum<span class="_ _6"> </span>class</div><div class="t m0 xe he yd6 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">floating-p<span class="_ _d"></span>oint<span class="_ _b"> </span>type<span class="_ _1d"> </span><span class="ff4 fc3">C++20</span></span></div><div class="t m0 xe he yd7 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">auto<span class="_ _18"> </span><span class="ff4">placeholder<span class="_ _b"> </span><span class="fc3">C++17</span></span></span></div><div class="t m0 xe he yd8 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">class<span class="_ _b"> </span>literals<span class="_ _9"> </span><span class="ff4">and<span class="_ _f"> </span></span>concepts<span class="_ _1d"> </span><span class="ff4 fc3">C++20</span></span></div><div class="t m0 xe he yd9 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">generic<span class="_ _b"> </span>type<span class="_ _25"> </span><span class="ff11">typename</span></span></div><div class="t m0 x1 he yda ff4 fs8 fc0 sc0 ls0 ws0">and<span class="_ _b"> </span>rarely:</div><div class="t m0 xe he ydb ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">function</span></div><div class="t m0 xe he ydc ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">reference/p<span class="_ _d"></span>ointer<span class="_ _11"> </span><span class="ff4">to<span class="_ _b"> </span>global<span class="_ _18"> </span><span class="ff11">static<span class="_ _18"> </span></span>function<span class="_ _f"> </span>o<span class="_ _5"></span>r<span class="_ _f"> </span>object</span></span></div><div class="t m0 xe he ydd ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">p<span class="_ _d"></span>ointer<span class="_ _b"> </span>to<span class="_ _f"> </span>memb<span class="_ _d"></span>er<span class="_ _f"> </span>type</span></div><div class="t m0 xe he yde ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">nullptr_t<span class="_ _18"> </span><span class="ff4 fc3">C++14</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">22/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1b" class="pf w0 h0" data-page-no="1b"><div class="pc pc1b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3ZMUoDQRTH4R3Zh9XgGSSVJxCxFuxzlBzCMhfwEDmEhYfwBlZhKh+YtQtWiQSCs+T7TvD4b/NjtizuHwcAAOjGx/vblRUAAOiNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAYK9kphUAAOhHRHhJBQCgOyIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwP8ZZ3Rra80HAwA4Ta11Rtd6SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAIALM5oAjvre7ZbrtR3OZ7NaGQGA30pmzuXW1poPBgBwmlrrXE6NCL/7AQDojkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDAxSiZaQUAAPoREV5SAQDojkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAcMm5fbq0A8EefT69GADi3u4fnUm6up+3XMEzTZBAAALrwA2TgJgCpE3BVAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Generic<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span>Notes</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">P<span class="_ _5"></span>ass<span class="_ _8"> </span>multiple<span class="_ _8"> </span>values<span class="_ _8"> </span>and<span class="_ _8"> </span>floating-p<span class="_ _d"></span>oint<span class="_ _8"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>es</div><div class="t m0 xd hd y2c ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">float<span class="_ _9"> </span><span class="ffc fc0">V<span class="fc7">&gt;<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span><span class="ff9">only<span class="_ _c"> </span>in<span class="_ _c"> </span>C++20</span></span></span></span></span></div><div class="t m0 xd hf y2d ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">print_float()<span class="_ _9"> </span>{}</span></div><div class="t m0 xd hf ydf ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y2f ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">print()<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y30 ffc fs7 fc0 sc0 ls0 ws0">cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>T<span class="fc7">::</span>x<span class="_ _11"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span><span class="fc9">&quot;,<span class="_ _9"> </span>&quot;<span class="_ _11"> </span></span>&lt;&lt;<span class="_ _9"> </span></span>T<span class="fc7">::</span>y;</div><div class="t m0 xd hf y31 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y32 ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">Multi<span class="_ _9"> </span><span class="ffc fc0">{</span></span></div><div class="t m0 x3 hf y33 ff6 fs7 fc6 sc0 ls0 ws0">static<span class="_ _9"> </span>const<span class="_ _13"> </span><span class="fc4">int<span class="_ _12"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>1</span>;</span></span></div><div class="t m0 x3 hf ye0 ff6 fs7 fc6 sc0 ls0 ws0">static<span class="_ _9"> </span>constexpr<span class="_ _9"> </span><span class="fc4">float<span class="_ _11"> </span><span class="ffc fc0">y<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span>2.0f</span>;</span></span></div><div class="t m0 xd hf ye1 ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf ye2 ffc fs7 fc0 sc0 ls0 ws0">print<span class="fc7">&lt;</span>Multi<span class="fc7">&gt;</span>();<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _11"> </span>&quot;1,<span class="_ _9"> </span>2&quot;</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">23/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1c" class="pf w0 h0" data-page-no="1c"><div class="pc pc1c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsU0DQRCG0VvrRkQr14CIXAFCxJbcmZugHAKKoANH1kZMcmTEyAJpVn6vgtV/F3ya9vT8ugAAQBmfH+87KwAAUI1IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgR8tMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCAFDXOtFbxxizPLX37t8CALiZSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADcmZaZVgAAoI6IcEkFAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAB3Zp3orWMMHwwA4Da994le65IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEA4A+1zLQCAAB1RIRLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAYCrr9fxoBYD/djm+GQHglw4vp9b2D9v1a1m2bTMIAAAlfAN1ACAAH1aHNQAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">auto<span class="_ _1d"> </span><span class="ff1">Placeholder</span></div><div class="t m0 x1 he y42 ff4 fs8 fc3 sc0 ls0 ws0">C++17<span class="_ _b"> </span><span class="fc0">intro<span class="_ _d"></span>duces<span class="_ _f"> </span>automatic<span class="_ _f"> </span>deduction<span class="_ _b"> </span>of<span class="_ _f"> </span><span class="ffa">non-type<span class="_ _1d"> </span></span>template<span class="_ _b"> </span>parameters<span class="_ _b"> </span>with<span class="_ _b"> </span>the</span></div><div class="t m0 xd he ye3 ff6 fs8 fc0 sc0 ls0 ws0">auto<span class="_ _18"> </span><span class="ff4">k<span class="_ _5"></span>eywo<span class="_ _5"></span>rd</span></div><div class="t m0 xd hf ye4 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">X,<span class="_ _9"> </span></span>int<span class="_ _11"> </span><span class="ffc fc0">Y<span class="fc7">&gt;</span></span></span></div><div class="t m0 xd hf ye5 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f()<span class="_ _9"> </span>{}</span></div><div class="t m0 xd hf ye6 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T1<span class="ffc fc0">,<span class="_ _9"> </span>T1<span class="_ _11"> </span>X,<span class="_ _9"> </span></span></span>typename<span class="_ _9"> </span><span class="fc5">T2<span class="ffc fc0">,<span class="_ _11"> </span>T2<span class="_ _9"> </span>Y<span class="fc7">&gt;</span></span></span></div><div class="t m0 xd hf ye7 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g1()<span class="_ _9"> </span>{}<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>before<span class="_ _9"> </span>C++17</span></span></div><div class="t m0 xd hf ye8 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>auto<span class="_ _9"> </span><span class="ffc fc0">X,<span class="_ _9"> </span></span>auto<span class="_ _11"> </span><span class="ffc fc0">Y<span class="fc7">&gt;</span></span></div><div class="t m0 xd hf ye9 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g2()<span class="_ _9"> </span>{}</span></div><div class="t m0 xd hf yea ffc fs7 fc0 sc0 ls0 ws0">f<span class="fc7">&lt;2u</span>,<span class="_ _9"> </span><span class="fc7">2u&gt;</span>();<span class="_ _26"> </span><span class="ffd fc8">//<span class="_ _9"> </span>X:<span class="_ _9"> </span>int,<span class="_ _11"> </span>Y:<span class="_ _9"> </span>int</span></div><div class="t m0 xd hf yeb ffc fs7 fc0 sc0 ls0 ws0">g1<span class="fc7">&lt;<span class="ff6 fc4">int</span></span>,<span class="_ _9"> </span><span class="fc7">2</span>,<span class="_ _9"> </span><span class="ff6 fc4">char</span>,<span class="_ _11"> </span><span class="ff13 fc9">&apos;<span class="ffc">a</span>&apos;</span><span class="fc7">&gt;</span>();<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>X:<span class="_ _11"> </span>int,<span class="_ _9"> </span>Y:<span class="_ _9"> </span>char</span></div><div class="t m0 xd hf yec ffc fs7 fc0 sc0 ls0 ws0">g2<span class="fc7">&lt;2</span>,<span class="_ _9"> </span><span class="ff13 fc9">&apos;<span class="ffc">a</span>&apos;</span><span class="fc7">&gt;</span>();<span class="_ _27"> </span><span class="ffd fc8">//<span class="_ _9"> </span>X:<span class="_ _9"> </span>int,<span class="_ _11"> </span>Y:<span class="_ _9"> </span>char</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">24/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1d" class="pf w0 h0" data-page-no="1d"><div class="pc pc1d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdklEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSNmMJRiHgiHYgCpKhRvT0UMBP+KcCazn5urnze6QAAAgjNv1srACAADRiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAF5yrdUKAADEUUpxSQUAIByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAA8IZuRm+dpsmHAQB8pu/7Gb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAC+LddarQAAQBylFJdUAADCEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAD4tW48ra0AENn9eDYC8Fe2+yHn1bKNj5RaawYBACCEJ/dvGgIyOFFkAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emplate<span class="_ _8"> </span>Pa<span class="_ _5"></span>rameter<span class="_ _1d"> </span>-<span class="_ _1d"> </span>F<span class="_ _5"></span>unction<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e</div><div class="t m0 x12 h10 yed ff14 fs5 fc1 sc0 ls0 ws0"></div><div class="t m0 x13 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">2/2</div><div class="t m0 x1 he yee ff1 fs8 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>unction</div><div class="t m0 xd h11 yef ff6 fs5 fc6 sc0 ls0 ws0">template<span class="ff15 fc7">&lt;</span><span class="fc4">int<span class="_ _8"> </span><span class="ff15 fc0">(<span class="fc7">*</span>F)(</span>int<span class="ff15 fc0">,<span class="_ _1d"> </span></span>int<span class="ff15 fc0">)<span class="fc7">&gt;<span class="_ _24"> </span><span class="ffd fc8">//<span class="_ _1d"> </span>&lt;--<span class="_ _8"> </span>signature<span class="_ _1d"> </span>of<span class="_ _8"> </span>&quot;f&quot;</span></span></span></span></div><div class="t m0 xd h11 yf0 ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ff15 fc0">apply1(</span>int<span class="_ _1d"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>int<span class="_ _8"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{</span></div><div class="t m0 x14 h11 yf1 ff6 fs5 fc6 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ff15 fc0">F(a,<span class="_ _1d"> </span>b);</span></div><div class="t m0 xd h11 yf2 ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h11 yf3 ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ff15 fc0">f(</span>int<span class="_ _1d"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>int<span class="_ _8"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{<span class="_ _1d"> </span></span><span class="fc6">return<span class="_ _1d"> </span><span class="ff15 fc0">a<span class="_ _8"> </span><span class="fc7">+<span class="_ _1d"> </span></span>b;<span class="_ _1d"> </span>}</span></span></div><div class="t m0 xd h11 yf4 ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ff15 fc0">g(</span>int<span class="_ _1d"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>int<span class="_ _8"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{<span class="_ _1d"> </span></span><span class="fc6">return<span class="_ _1d"> </span><span class="ff15 fc0">a<span class="_ _8"> </span><span class="fc7">*<span class="_ _1d"> </span></span>b;<span class="_ _1d"> </span>}</span></span></div><div class="t m0 xd h11 yf5 ff6 fs5 fc6 sc0 ls0 ws0">template<span class="ff15 fc7">&lt;</span>decltype<span class="ff15 fc0">(f)<span class="_ _8"> </span>F<span class="fc7">&gt;<span class="_ _28"> </span><span class="ffd fc8">//<span class="_ _8"> </span>alternative<span class="_ _1d"> </span>syntax</span></span></span></div><div class="t m0 xd h11 yf6 ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ff15 fc0">apply2(</span>int<span class="_ _1d"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>int<span class="_ _8"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{</span></div><div class="t m0 x14 h11 yf7 ff6 fs5 fc6 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ff15 fc0">F(a,<span class="_ _1d"> </span>b);</span></div><div class="t m0 xd h11 yf8 ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h11 yf9 ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ff15 fc0">main()<span class="_ _1d"> </span>{</span></div><div class="t m0 x14 h11 yfa ff15 fs5 fc0 sc0 ls0 ws0">apply1<span class="fc7">&lt;</span>f<span class="fc7">&gt;</span>(<span class="fc7">2</span>,<span class="_ _8"> </span><span class="fc7">3</span>);<span class="_ _1d"> </span><span class="ffd fc8">//<span class="_ _1d"> </span>return<span class="_ _8"> </span>5</span></div><div class="t m0 x14 h11 yfb ff15 fs5 fc0 sc0 ls0 ws0">apply2<span class="fc7">&lt;</span>g<span class="fc7">&gt;</span>(<span class="fc7">2</span>,<span class="_ _8"> </span><span class="fc7">3</span>);<span class="_ _1d"> </span><span class="ffd fc8">//<span class="_ _1d"> </span>return<span class="_ _8"> </span>6</span></div><div class="t m0 xd h11 yfc ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">25/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf1e" class="pf w0 h0" data-page-no="1e"><div class="pc pc1e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 xc h2 yd1 ff1 fs0 fc0 sc0 ls0 ws0">Compile-Time</div><div class="t m0 xc h2 yd2 ff1 fs0 fc0 sc0 ls0 ws0">Utilities</div><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:149.618000px;width:241.993000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:120.066000px;width:89.422000px;height:19.206000px;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="pf1f" class="pf w0 h0" data-page-no="1f"><div class="pc pc1f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h12 y8 ff6 fs3 fc1 sc0 ls0 ws0">static_assert</div><div class="t m0 x1 he y2b ff4 fs8 fc3 sc0 ls0 ws0">C++11<span class="_ _b"> </span><span class="ff11 fc5">static_assert<span class="_ _f"> </span><span class="ff1 fc0">is<span class="_ _8"> </span>used<span class="_ _8"> </span>to<span class="_ _8"> </span>test<span class="_ _f"> </span>an<span class="_ _8"> </span>assertion<span class="_ _8"> </span>at<span class="_ _8"> </span>compile-time<span class="ff4">,<span class="_ _f"> </span>e.g.</span></span></span></div><div class="t m0 xd he y9d ff11 fs8 fc0 sc0 ls0 ws0">sizeof<span class="_ _c"> </span><span class="ff4">,<span class="_ _b"> </span>literals,<span class="_ _f"> </span>templates,<span class="_ _18"> </span></span>constexpr</div><div class="t m0 x1 he yfd ff4 fs8 fc0 sc0 ls0 ws0">If<span class="_ _b"> </span>the<span class="_ _f"> </span><span class="ffa">static<span class="_ _f"> </span>assertion<span class="_ _f"> </span></span>fails,<span class="_ _b"> </span>the<span class="_ _f"> </span>program<span class="_ _b"> </span>do<span class="_ _d"></span>es<span class="_ _b"> </span>not<span class="_ _f"> </span>compile</div><div class="t m0 xd hf yfe ff6 fs7 fc6 sc0 ls0 ws0">static_assert<span class="ffc fc0">(<span class="fc7">2<span class="_ _9"> </span>+<span class="_ _9"> </span>2<span class="_ _11"> </span>==<span class="_ _9"> </span>4</span>,<span class="_ _9"> </span><span class="fc9">&quot;test1&quot;</span>);<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>ok,<span class="_ _9"> </span>it<span class="_ _9"> </span>compiles</span></span></div><div class="t m0 xd hd yff ff6 fs7 fc6 sc0 ls0 ws0">static_assert<span class="ffc fc0">(<span class="fc7">2<span class="_ _9"> </span>+<span class="_ _9"> </span>2<span class="_ _11"> </span>==<span class="_ _9"> </span>5</span>,<span class="_ _9"> </span><span class="fc9">&quot;test2&quot;</span>);<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span><span class="ff9">compile<span class="_ _c"> </span>error</span>,<span class="_ _1d"> </span>print<span class="_ _11"> </span>&quot;test2&quot;</span></span></div><div class="t m0 x1 he y100 ff4 fs8 fc3 sc0 ls0 ws0">C++17<span class="fc0">:<span class="_ _9"> </span>assertions<span class="_ _f"> </span>without<span class="_ _f"> </span>messages</span></div><div class="t m0 xd hf y101 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y102 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f()<span class="_ _9"> </span>{<span class="_ _11"> </span></span><span class="fc6">static_assert<span class="ffc fc0">(</span>sizeof<span class="ffc fc0">(T)<span class="_ _9"> </span><span class="fc7">==<span class="_ _9"> </span></span></span>sizeof<span class="ffc fc0">(R));<span class="_ _11"> </span>}</span></span></div><div class="t m0 xd hf y103 ffc fs7 fc0 sc0 ls0 ws0">f<span class="fc7">&lt;<span class="ff6 fc4">int</span></span>,<span class="_ _9"> </span><span class="ff6 fc4">unsigned</span><span class="fc7">&gt;</span>();<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>ok,<span class="_ _9"> </span>it<span class="_ _9"> </span>compiles</span></div><div class="t m0 xd hd y104 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>f&lt;int,<span class="_ _9"> </span>char&gt;();<span class="_ _1f"> </span>//<span class="_ _9"> </span><span class="ff9">compile<span class="_ _c"> </span>error</span></div><div class="t m0 x1 he y105 ff4 fs8 fc3 sc0 ls0 ws0">C++26<span class="fc0">:<span class="_ _9"> </span>assertions<span class="_ _f"> </span>with<span class="_ _f"> </span>text<span class="_ _b"> </span>formatting</span></div><div class="t m0 xd hf y106 ff6 fs7 fc6 sc0 ls0 ws0">static_assert<span class="ffc fc0">(</span>sizeof<span class="ffc fc0">(T)<span class="_ _9"> </span><span class="fc7">!=<span class="_ _9"> </span>4</span>,<span class="_ _11"> </span>std<span class="fc7">::</span>format(<span class="fc9">&quot;test1<span class="_ _9"> </span>with<span class="_ _9"> </span>sizeof(T)={}&quot;</span>,<span class="_ _11"> </span></span>sizeof<span class="ffc fc0">(T)));</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">26/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf20" class="pf w0 h0" data-page-no="20"><div class="pc pc20 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">using<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _29"> </span>1/2</span></div><div class="t m0 xd he y107 ff6 fs8 fc1 sc0 ls0 ws0">using<span class="_ _8"> </span><span class="ff1">k<span class="_ _5"></span>eywo<span class="_ _5"></span>rd<span class="_ _f"> </span><span class="fs4">(C++11)</span></span></div><div class="t m0 xd he y108 ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span><span class="ff11 fc5">using<span class="_ _f"> </span></span>keyw<span class="_ _5"></span>o<span class="_ _5"></span>rd<span class="_ _f"> </span>intro<span class="_ _d"></span>duces<span class="_ _b"> </span>an<span class="_ _f"> </span><span class="ffa">alias-declaration<span class="_ _b"> </span></span>or<span class="_ _b"> </span><span class="ffa">alias-template</span></div><div class="t m0 xe h6 y109 ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">using<span class="_ _2a"> </span><span class="ff4">is<span class="_ _c"> </span>an<span class="_ _b"> </span>enhanced<span class="_ _b"> </span>version<span class="_ _c"> </span>of<span class="_ _2a"> </span></span>typedef<span class="_ _2a"> </span><span class="ff4">with<span class="_ _b"> </span>a<span class="_ _b"> </span>mo<span class="_ _5"></span>re<span class="_ _b"> </span>readable<span class="_ _c"> </span>syntax</span></span></div><div class="t m0 xe h6 y10a ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">using<span class="_ _2a"> </span><span class="ff4">can<span class="_ _c"> </span>b<span class="_ _d"></span>e<span class="_ _b"> </span>combined<span class="_ _b"> </span>with<span class="_ _c"> </span>templates,<span class="_ _b"> </span>as<span class="_ _b"> </span>opposite<span class="_ _b"> </span>to<span class="_ _2a"> </span></span>typedef</span></div><div class="t m0 xe h6 y10b ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">using<span class="_ _2a"> </span><span class="ff4">is<span class="_ _c"> </span>useful<span class="_ _b"> </span>to<span class="_ _b"> </span>simplify<span class="_ _c"> </span>complex<span class="_ _b"> </span>template<span class="_ _b"> </span>exp<span class="_ _5"></span>ression</span></span></div><div class="t m0 xe h6 y10c ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">using<span class="_ _2a"> </span><span class="ff4">allo<span class="_ _5"></span>ws<span class="_ _b"> </span>intro<span class="_ _d"></span>ducing<span class="_ _b"> </span>new<span class="_ _c"> </span>names<span class="_ _b"> </span>fo<span class="_ _5"></span>r<span class="_ _b"> </span>partial<span class="_ _c"> </span>and<span class="_ _c"> </span>full<span class="_ _b"> </span>sp<span class="_ _d"></span>ecializations</span></span></div><div class="t m0 xd hf y10d ff6 fs7 fc6 sc0 ls0 ws0">typedef<span class="_ _9"> </span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">distance_t;<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>equal<span class="_ _11"> </span>to:</span></span></span></div><div class="t m0 xd hf y10e ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">distance_t<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span></span><span class="fc4">int<span class="ffc fc0">;</span></span></div><div class="t m0 xd hf y10f ff6 fs7 fc6 sc0 ls0 ws0">typedef<span class="_ _9"> </span><span class="fc4">void<span class="_ _9"> </span><span class="ffc fc0">(<span class="fc7">*</span>function)(</span>int<span class="ffc fc0">,<span class="_ _11"> </span></span>float<span class="ffc fc0">);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>equal<span class="_ _9"> </span>to:</span></span></span></div><div class="t m0 xd hf y110 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">function<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span></span><span class="fc4">void<span class="_ _9"> </span><span class="ffc fc0">(<span class="fc7">*</span>)(</span>int<span class="ffc fc0">,<span class="_ _9"> </span></span>float<span class="ffc fc0">);</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">27/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf21" class="pf w0 h0" data-page-no="21"><div class="pc pc21 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIj0lEQVR42u3YsU0DQRCG0VvrRkQrakBEVGAhx5bcmZugHAcUQQdE1kZMcmRkTgzIc/J7Faz+TT5Ne97uJgAAKOPj/bSxAgAA1YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAAB+tMy0AgAAdUSESyoAAOWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAACXzSt66xjDhwEAXKf3vqLXuqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAALihlplWAACgjohwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAICq5hW9dYzhwwAArtN7X9FrXVIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAu9Ay0woAANQRES6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAA/2k+H5+sAMCf+Ny/GQH4vZfXQ2uPD8v5a5qWZTEIAAAlfAM1jSAAUt51TwAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">using<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _29"> </span>2/2</span></div><div class="t m0 x1 he y6f ff4 fs8 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>ull/Pa<span class="_ _5"></span>rtial<span class="_ _b"> </span>sp<span class="_ _d"></span>ecialization<span class="_ _f"> </span>alias:</div><div class="t m0 xd hf y111 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span><span class="fc4">int<span class="_ _11"> </span><span class="ffc fc0">Size<span class="fc7">&gt;</span></span></span></span></div><div class="t m0 xd hf y112 ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">Vector<span class="_ _9"> </span><span class="ffc fc0">{};<span class="_ _16"> </span><span class="ffd fc8">//<span class="_ _11"> </span>see<span class="_ _9"> </span>next<span class="_ _9"> </span>lecture<span class="_ _11"> </span>for<span class="_ _9"> </span>further<span class="_ _9"> </span>details</span></span></span></div><div class="t m0 xb hf y113 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>on<span class="_ _9"> </span>class<span class="_ _11"> </span>template</div><div class="t m0 xd hf y114 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">Size<span class="fc7">&gt;</span></span></span></div><div class="t m0 xd hf y115 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">Bitset<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>Vector<span class="fc7">&lt;</span></span><span class="fc4">bool<span class="ffc fc0">,<span class="_ _9"> </span>Size<span class="fc7">&gt;</span>;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>partial<span class="_ _9"> </span>specialization<span class="_ _9"> </span>alias</span></span></span></div><div class="t m0 xd hf y116 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">IntV4<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>Vector<span class="fc7">&lt;</span></span><span class="fc4">int<span class="ffc fc0">,<span class="_ _9"> </span><span class="fc7">4&gt;</span>;<span class="_ _20"> </span><span class="ffd fc8">//<span class="_ _9"> </span>full<span class="_ _11"> </span>specialization<span class="_ _9"> </span>alias</span></span></span></div><div class="t m0 x1 he y117 ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _5"></span>ccessing<span class="_ _f"> </span>a<span class="_ _b"> </span>type<span class="_ _f"> </span>within<span class="_ _f"> </span>a<span class="_ _b"> </span>structure:</div><div class="t m0 xd hf y118 ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">A<span class="_ _9"> </span><span class="ffc fc0">{</span></span></div><div class="t m0 x3 hf y119 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">type<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span></span><span class="fc4">int<span class="ffc fc0">;</span></span></div><div class="t m0 xd hf y11a ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y11b ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">Alias<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>A<span class="fc7">::</span>type;</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">28/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf22" class="pf w0 h0" data-page-no="22"><div class="pc pc22 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIxklEQVR42u3YsU0DURBFUX+0I6IvakBEVIAQMRKd0QTlEFAEHRBZP2KSJUAihLWx1mM4p4QXXb12dXO3AQCAMl5fns+sAABANSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIAvLTOtAABAHRHhSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABO02SC5cYYRthD790IAMBOPKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgDAQbXMtAIAAHVEhCcVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAALCqyQTLjTGMwEH03o0AAN/wpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAKtqmWkFAADqiAhPKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIA8L9NJlhujGEE/pLeuxEAqMmTCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAArKplphUAAKgjIjypAACUI1IBABCpAAAgUgEAEKkAAPBbkwkA2NUYwwj8qPduBPbmSQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAFbVMtMKAADUERGeVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAwEFNJgCOaIxhBNbRezcCnBBPKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsKqWmVYAAKCOiPCkAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAAKdp2j5eWgGAo3u7fzIC8On69qG1i/N5+77ZzPNsEAAASvgATmox+oSoBAsAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">decltype<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _2b"> </span>1/4</span></div><div class="t m0 x1 he y11c ff4 fs8 fc3 sc0 ls0 ws0">C++11<span class="_ _b"> </span><span class="ff11 fc5">decltype<span class="_ _f"> </span><span class="ff1 fc0">keyw<span class="_ _5"></span>o<span class="_ _5"></span>rd<span class="_ _f"> </span>deduces<span class="_ _8"> </span>the<span class="_ _8"> </span>type<span class="_ _8"> </span>of<span class="_ _8"> </span>an<span class="_ _8"> </span><span class="ff12">entity<span class="_ _9"> </span></span>or<span class="_ _f"> </span><span class="ff12">expression</span></span></span></div><div class="t m0 xe he y11d ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">decltype<span class="_ _18"> </span><span class="ff4">is<span class="_ _b"> </span>alwa<span class="_ _5"></span>ys<span class="_ _b"> </span>evaluated<span class="_ _f"> </span>at<span class="_ _f"> </span>compile-t<span class="_ _5"></span>yp<span class="_ _d"></span>e</span></span></div><div class="t m0 xe he y11e ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">decltype(entity)<span class="_ _18"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _f"> </span><span class="ffa">declared<span class="_ _b"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span><span class="ff4">of<span class="_ _b"> </span>the<span class="_ _f"> </span>entity</span></span></span></span></div><div class="t m0 xe he y11f ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11">decltype(expression)<span class="_ _18"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _f"> </span>type<span class="_ _b"> </span>of<span class="_ _f"> </span>the<span class="_ _f"> </span>exp<span class="_ _5"></span>ression</span></span></div><div class="t m0 x2 he y120 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">A<span class="_ _b"> </span>variable<span class="_ _b"> </span>evaluated<span class="_ _b"> </span>as<span class="_ _f"> </span>an<span class="_ _b"> </span>expression,<span class="_ _b"> </span>i.e.<span class="_ _4"> </span><span class="ff11">decltype((var))<span class="_ _c"> </span></span>,<span class="_ _b"> </span>is<span class="_ _f"> </span>deduced<span class="_ _b"> </span>as</span></div><div class="t m0 x11 he y121 ff4 fs8 fc0 sc0 ls0 ws0">an<span class="_ _b"> </span><span class="ffa">lvalue</span></div><div class="t m0 x2 he y122 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ff4">A<span class="_ _b"> </span>general<span class="_ _f"> </span>expression,<span class="_ _b"> </span>e.g.<span class="_ _4"> </span><span class="ff11">decltype((a<span class="_ _15"> </span>+<span class="_ _15"> </span>b))<span class="_ _c"> </span></span>,<span class="_ _b"> </span>is<span class="_ _f"> </span>deduced<span class="_ _b"> </span>as<span class="_ _f"> </span>its<span class="_ _f"> </span>final<span class="_ _b"> </span>type</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">29/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf23" class="pf w0 h0" data-page-no="23"><div class="pc pc23 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">decltype<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _8"> </span>(value)<span class="_ _2c"> </span>2/4</span></div><div class="t m0 xd hf y123 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _14"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span>3</span>;</span></div><div class="t m0 xd hf y124 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="ffc fc7">&amp;<span class="_ _20"> </span><span class="fc0">y<span class="_ _9"> </span></span>=<span class="_ _9"> </span><span class="fc0">x;</span></span></div><div class="t m0 xd hf y125 ff6 fs7 fc6 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">z<span class="_ _11"> </span><span class="fc7">=<span class="_ _9"> </span>4</span>;</span></span></div><div class="t m0 xd hf y126 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _14"> </span><span class="ffc fc0">array[<span class="fc7">2</span>];</span></div><div class="t m0 xd hf y127 ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _20"> </span><span class="ffc fc5">f<span class="fc0">(</span></span>int<span class="ffc fc0">,<span class="_ _9"> </span></span>float<span class="ffc fc0">);</span></div><div class="t m0 xd hf y128 ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(x);<span class="_ _2d"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int</span></span></div><div class="t m0 xd hf y129 ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(<span class="fc7">2<span class="_ _9"> </span>+<span class="_ _9"> </span>3.0</span>);<span class="_ _21"> </span><span class="ffd fc8">//<span class="_ _11"> </span>double</span></span></div><div class="t m0 xd hf y12a ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(y);<span class="_ _2d"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int<span class="ffe">&amp;</span></span></span></div><div class="t m0 xd hf y12b ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(z);<span class="_ _2d"> </span><span class="ffd fc8">//<span class="_ _9"> </span>const<span class="_ _9"> </span>int</span></span></div><div class="t m0 xd hf y12c ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(array);<span class="_ _20"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int[2]</span></span></div><div class="t m0 xd hf y12d ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(f(<span class="fc7">1</span>,<span class="_ _9"> </span><span class="fc7">2.0f</span>));<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>void,<span class="_ _9"> </span>i.e.<span class="_ _9"> </span>the<span class="_ _11"> </span>return<span class="_ _9"> </span>type<span class="_ _9"> </span>of<span class="_ _9"> </span><span class="ff16">&apos;</span>f<span class="ff16">&apos;</span></span></span></div><div class="t m0 xd hf y12e ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(f);<span class="_ _2d"> </span><span class="ffd fc8">//<span class="_ _9"> </span>void<span class="_ _9"> </span>(int,<span class="_ _11"> </span>float),<span class="_ _9"> </span>i.e.<span class="_ _9"> </span>the<span class="_ _11"> </span>signature<span class="_ _9"> </span>of<span class="_ _9"> </span><span class="ff16">&apos;</span>f<span class="ff16">&apos;</span></span></span></div><div class="t m0 xd hf y12f ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(x)<span class="_ _9"> </span>y<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>3</span>;<span class="_ _21"> </span><span class="ffd fc8">//<span class="_ _9"> </span><span class="ff16">&apos;</span>y<span class="ff16">&apos;<span class="_ _9"> </span></span>is<span class="_ _11"> </span>int</span></span></div><div class="t m0 xd hf y130 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">T<span class="_ _14"> </span><span class="fc7">=<span class="_ _9"> </span></span>y;<span class="_ _21"> </span><span class="ffd fc8">//<span class="_ _11"> </span>T<span class="_ _9"> </span>is<span class="_ _9"> </span>int<span class="ffe">&amp;</span></span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">30/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf24" class="pf w0 h0" data-page-no="24"><div class="pc pc24 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIlklEQVR42u3bsW0CMRiG4TM6i+rEDFGqTIAQNRIrUDAPS2SDFMwQKQVDsAHV6QoON0eXAaD5Dc8zgfW5eWXJ6XO5bgAAIIzz6W9mBQAAohGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8S6UUKwAAEEfO2UsqAADhiFQAAEQqAACIVAAARCoAADyrreiswzC4MACAx3RdV9FpvaQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAwaVSihUAAIgj5+wlFQCAcEQqAAAiFQAARCoAANVpaznodRy3u70Lg7r8Hn+MAMAD/O4HACAWv/sBAIhIpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCA19b2hw8rAPCGLptvI0BMX6ttSov51N+aZpomgwAAEMIdyfsjAOZWvesAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">decltype<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _8"> </span>((expression))</span></div><div class="t m0 x15 h10 yed ff14 fs5 fc1 sc0 ls0 ws0"></div><div class="t m0 x13 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">3/4</div><div class="t m0 xd hf y131 ff6 fs7 fc4 sc0 ls0 ws0">bool<span class="_ _9"> </span><span class="ffc fc5">f<span class="fc0">(</span></span>int<span class="ffc fc0">);</span></div><div class="t m0 xd hf y132 ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">A<span class="_ _9"> </span><span class="ffc fc0">{</span></span></div><div class="t m0 x3 hf y133 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x;</span></div><div class="t m0 xd hf y134 ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y135 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>3</span>;</span></div><div class="t m0 xd hf y136 ff6 fs7 fc6 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="ffc fc0">A<span class="_ _9"> </span>a{<span class="fc7">4</span>};</span></div><div class="t m0 xd hf y137 ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(x)<span class="_ _13"> </span>d1;<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int</span></span></div><div class="t m0 xd hf y138 ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">((x))<span class="_ _12"> </span>d2<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span>x;<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int<span class="ffe">&amp;</span></span></span></div><div class="t m0 xd hf y139 ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(f)<span class="_ _13"> </span>d3;<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _9"> </span>bool<span class="_ _11"> </span>(int)</span></span></div><div class="t m0 xd hf y13a ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">((f))<span class="_ _12"> </span>d4<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span>f;<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>bool<span class="_ _9"> </span>(<span class="ffe">&amp;</span>)(int)</span></span></div><div class="t m0 xd hf y13b ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(a.x)<span class="_ _12"> </span>d5;<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _9"> </span>int</span></span></div><div class="t m0 xd hf y13c ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">((a.x))<span class="_ _9"> </span>d6<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>x;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>const<span class="_ _11"> </span>int<span class="ffe">&amp;</span></span></span></div><div class="t m0 xe hf y13d ffc fs7 fca sc0 ls0 ws0">www.ibm.com/support/knowledgecenter</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">31/47</div><a class="l" href="https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbclx01/decltype.htm"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.841000px;width:166.750000px;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="pf25" class="pf w0 h0" data-page-no="25"><div class="pc pc25 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">decltype<span class="_ _1d"> </span><span class="ff1">Keyw<span class="_ _5"></span>ord<span class="_ _8"> </span>+<span class="_ _1d"> </span>Function<span class="_ _8"> </span>templates<span class="_ _2e"> </span>4/4</span></div><div class="t m0 x1 he y6f ff4 fs8 fc3 sc0 ls0 ws0">C++11</div><div class="t m0 xd hf y13e ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y13f ff6 fs7 fc6 sc0 ls0 ws0">decltype<span class="ffc fc0">(T{}<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>R{})<span class="_ _11"> </span>add(T<span class="_ _9"> </span>x,<span class="_ _9"> </span>R<span class="_ _11"> </span>y)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y140 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>y;</span></div><div class="t m0 xd hf y141 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y142 ff6 fs7 fc4 sc0 ls0 ws0">unsigned<span class="_ _9"> </span><span class="ffc fc0">v1<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>add(<span class="fc7">1</span>,<span class="_ _9"> </span><span class="fc7">2u</span>);</span></div><div class="t m0 xd hf y143 ff6 fs7 fc4 sc0 ls0 ws0">double<span class="_ _12"> </span><span class="ffc fc0">v2<span class="_ _9"> </span><span class="fc7">=<span class="_ _9"> </span></span>add(<span class="fc7">1.5</span>,<span class="_ _11"> </span><span class="fc7">2u</span>);</span></div><div class="t m0 x1 he y144 ff4 fs8 fc3 sc0 ls0 ws0">C++14</div><div class="t m0 xd hf y145 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y146 ff6 fs7 fc6 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">add(T<span class="_ _9"> </span>x,<span class="_ _11"> </span>R<span class="_ _9"> </span>y)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y147 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>y;</span></div><div class="t m0 xd hf y148 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">32/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf26" class="pf w0 h0" data-page-no="26"><div class="pc pc26 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 xc h2 y23 ff1 fs0 fc0 sc0 ls0 ws0">T<span class="_ _e"></span>yp<span class="_ _0"></span>e<span class="_ _1"> </span>T<span class="_ _2f"></span>raits</div><a class="l" href="#pf26" data-dest-detail='[38,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:131.661000px;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="pf27" class="pf w0 h0" data-page-no="27"><div class="pc pc27 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _30"> </span>1/4</div><div class="t m0 xd he y149 ff1 fs8 fc1 sc0 ls0 ws0">Introsp<span class="_ _d"></span>ection</div><div class="t m0 xd he y14a ff1 fs8 fc0 sc0 ls0 ws0">Introsp<span class="_ _d"></span>ection<span class="_ _b"> </span><span class="ff4">is<span class="_ _f"> </span>the<span class="_ _f"> </span>abilit<span class="_ _5"></span>y<span class="_ _f"> </span>to<span class="_ _f"> </span>insp<span class="_ _d"></span>ect<span class="_ _b"> </span>a<span class="_ _f"> </span>type<span class="_ _f"> </span>and<span class="_ _b"> </span>query<span class="_ _f"> </span>its<span class="_ _b"> </span>properties</span></div><div class="t m0 xd he y14b ff1 fs8 fc1 sc0 ls0 ws0">Reflection</div><div class="t m0 xd he y14c ff1 fs8 fc0 sc0 ls0 ws0">Reflection<span class="_ _b"> </span><span class="ff4">is<span class="_ _f"> </span>the<span class="_ _f"> </span>abilit<span class="_ _5"></span>y<span class="_ _f"> </span>of<span class="_ _b"> </span>a<span class="_ _f"> </span>computer<span class="_ _f"> </span>p<span class="_ _5"></span>rogram<span class="_ _f"> </span>to<span class="_ _b"> </span>examine,<span class="_ _f"> </span>introsp<span class="_ _d"></span>ect,<span class="_ _f"> </span>and<span class="_ _b"> </span>mo<span class="_ _d"></span>dify</span></div><div class="t m0 xd he y14d ff4 fs8 fc0 sc0 ls0 ws0">its<span class="_ _b"> </span>own<span class="_ _b"> </span>structure<span class="_ _b"> </span>and<span class="_ _f"> </span>b<span class="_ _d"></span>ehavior</div><div class="t m0 x1 he y14e ff1 fs8 fc0 sc0 ls0 ws0">C++<span class="_ _8"> </span>p<span class="_ _5"></span>rovides<span class="_ _8"> </span>compile-time<span class="_ _8"> </span>reflection<span class="_ _8"> </span>and<span class="_ _8"> </span>introsp<span class="_ _d"></span>ection<span class="_ _8"> </span>capabilities<span class="_ _8"> </span>through</div><div class="t m0 x1 he y14f ff1 fs8 fc0 sc0 ls0 ws0">t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>traits</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">33/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf28" class="pf w0 h0" data-page-no="28"><div class="pc pc28 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI20lEQVR42u3ZMS5EURTH4bnyTlQ31iAqGyAiCoVEFLZlE1ah0CooxAY0dqCa3MppRqcjmQnJeeP7VnDyf80v97WD49MFAACU8fb8tGMFAACqEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAHxpmWkFAADqiAgvqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQDgl00zuvXw7NwHAwDYzOvjw4yu9ZIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAALZby8y53DrG8MEAADbTe5/LqRHhJRUAgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBAKhtMgEcXV0b4U+93N8ZAYC1tMycy61jDB8MAGAzvfe5nBoRfvcDAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAPykZaYVAACoIyK8pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBANgi04xuHWP4YAAAm+m9z+haL6kAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAABQRctMKwAAUEdEeEkFAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAP7WZAIAvjPGMMJ2670bgZq8pAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAa2mZaQUAAOqICC+pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAgLVMy5t9KwBAce8Xt0bg/zg8uWxtb3e1/FgsVquVQQAAKOETlmc0+P8PHygAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _30"> </span>2/4</div><div class="t m0 xd he y37 ff1 fs8 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>traits<span class="_ _f"> </span><span class="fs4">(C++11)</span></div><div class="t m0 xd he y38 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>traits<span class="_ _b"> </span><span class="ff4">define<span class="_ _f"> </span>a<span class="_ _f"> </span>compile-time<span class="_ _b"> </span>interface<span class="_ _f"> </span>to<span class="_ _b"> </span><span class="ffa">query<span class="_ _11"> </span></span>or<span class="_ _b"> </span><span class="ffa">mo<span class="_ _d"></span>dify<span class="_ _9"> </span></span>the<span class="_ _f"> </span>properties<span class="_ _f"> </span>of</span></div><div class="t m0 xd he y39 ff4 fs8 fc0 sc0 ls0 ws0">t<span class="_ _5"></span>yp<span class="_ _d"></span>es</div><div class="t m0 x1 he y4c ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span>problem:</div><div class="t m0 xd hf y150 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y151 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>integral_div(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y152 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">/<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y153 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y154 ffc fs7 fc0 sc0 ls0 ws0">integral_div(<span class="fc7">7</span>,<span class="_ _9"> </span><span class="fc7">2</span>);<span class="_ _13"> </span><span class="ffd fc8">//<span class="_ _9"> </span>returns<span class="_ _11"> </span>3<span class="_ _9"> </span>(int)</span></div><div class="t m0 xd hf y155 ffc fs7 fc0 sc0 ls0 ws0">integral_div(<span class="fc7">7l</span>,<span class="_ _9"> </span><span class="fc7">2l</span>);<span class="_ _12"> </span><span class="ffd fc8">//<span class="_ _9"> </span>returns<span class="_ _11"> </span>3<span class="_ _9"> </span>(long<span class="_ _9"> </span>int)</span></div><div class="t m0 xd hf y156 ffc fs7 fc0 sc0 ls0 ws0">integral_div(<span class="fc7">7.0</span>,<span class="_ _9"> </span><span class="fc7">3.0</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>!!!<span class="_ _9"> </span>a<span class="_ _9"> </span>floating-point<span class="_ _11"> </span>value<span class="_ _9"> </span>is<span class="_ _9"> </span>not<span class="_ _9"> </span>an<span class="_ _11"> </span>integral<span class="_ _9"> </span>type</span></div><div class="t m0 x1 he y157 ff4 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>wo<span class="_ _b"> </span>alternatives:<span class="_ _9"> </span>(1)<span class="_ _f"> </span>Sp<span class="_ _d"></span>ecialize<span class="_ _f"> </span>(2)<span class="_ _b"> </span>T<span class="_ _7"></span>yp<span class="_ _0"></span>e<span class="_ _b"> </span>T<span class="_ _7"></span>raits<span class="_ _b"> </span>+<span class="_ _18"> </span><span class="ff11">static_assert</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">34/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf29" class="pf w0 h0" data-page-no="29"><div class="pc pc29 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdklEQVR42u3YsQlCMRSG0Rd5werhDGLlBCLWgpu5hONYOIQbWD1SmSZ2DmDjjZ4zQfjTfNy02R0GAAAI4367LqwAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgLdUa7UCAABx5JxdUgEACEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDAnxg7emspxYcBAHxmmqaOXuuSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASDUBAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAPQp1VqtAABAHDlnl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAPi2cT6vrQAAv+pxvBiB7mz3p5RWyzY/h6G1ZhAAAEJ4AdzsGgL8z17cAAAAAElFTkSuQmCC"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _30"> </span>3/4</div><div class="t m0 x1 he y2b ff4 fs8 fc0 sc0 ls0 ws0">If<span class="_ _b"> </span>we<span class="_ _b"> </span>want<span class="_ _b"> </span>to<span class="_ _b"> </span><span class="ff1">prevent<span class="_ _f"> </span>floating-p<span class="_ _d"></span>oint/other<span class="_ _8"> </span>objects<span class="_ _8"> </span>division<span class="_ _8"> </span>at<span class="_ _8"> </span>compile-time</span>,<span class="_ _b"> </span>a</div><div class="t m0 x1 he y9d ff4 fs8 fc0 sc0 ls0 ws0">first<span class="_ _b"> </span>solution<span class="_ _f"> </span>consists<span class="_ _f"> </span>in<span class="_ _b"> </span>sp<span class="_ _d"></span>ecialize<span class="_ _f"> </span>for<span class="_ _b"> </span>all<span class="_ _b"> </span>integral<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>es</div><div class="t m0 xd hf y158 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y159 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>integral_div(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>declaration<span class="_ _9"> </span>(error<span class="_ _9"> </span>for<span class="_ _9"> </span>other<span class="_ _11"> </span>types)</span></div><div class="t m0 xd hf y15a ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;&gt;</span></div><div class="t m0 xd hf y15b ff6 fs7 fc4 sc0 ls0 ws0">char<span class="_ _9"> </span><span class="ffc fc0">integral_div<span class="fc7">&lt;</span></span>char<span class="ffc fc7">&gt;<span class="fc0">(</span></span>char<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _11"> </span></span>char<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _9"> </span>{<span class="_ _12"> </span><span class="ffd fc8">//<span class="_ _11"> </span>specialization</span></span></div><div class="t m0 x3 hf y15c ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">/<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y15d ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y15e ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;&gt;</span></div><div class="t m0 xd hf y15f ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _1f"> </span><span class="ffc fc0">integral_div<span class="fc7">&lt;</span></span>int<span class="ffc fc7">&gt;<span class="fc0">(</span></span>int<span class="_ _9"> </span><span class="ffc fc0">a,<span class="_ _9"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">b)<span class="_ _11"> </span>{<span class="_ _20"> </span><span class="ffd fc8">//<span class="_ _9"> </span>specialization</span></span></div><div class="t m0 x3 hf y160 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">/<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y161 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y162 ffc fs7 fc0 sc0 ls0 ws0">...<span class="ff6 fc4">unsigned<span class="_ _9"> </span>char</span></div><div class="t m0 xd hf y163 ffc fs7 fc0 sc0 ls0 ws0">...<span class="ff6 fc4">short</span></div><div class="t m0 xd hf y164 ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x1 he y165 ff1 fs8 fc0 sc0 ls0 ws0"><span class="fcb sc0">V</span><span class="_ _5"></span><span class="fcb sc0">ery</span><span class="_ _8"> </span><span class="fcb sc0">redundant!!</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">35/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2a" class="pf w0 h0" data-page-no="2a"><div class="pc pc2a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJMUlEQVR42u3bMW4TQRSAYQ/aJ6oRZ0BUKagoEEIUkQJCXIxLcJcUoeAGabhBqmgkojwFmY4GpbAj7Dfe7zvB7Jv17q9Zub16+34DAABl/Pzx/ZkpAABQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOCvlpmmAABAHRHhJBUAgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIDHLROtdYxhwwAA9tN7n2i1TlIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpRgAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAArEnLTFMAAKCOiHCSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAA5smWitYwwbxoH13g0BzyU8PfwA3SQiFVhRAHlAA/AYn/sBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAMD/tRgBlNV7NwQAD8l1cpIKAIBIBQAAkQoAgEgFAICnaplpCgAA1BERTlIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAMCOlonWOsaYeta9dzecW+jpN4mrmOjnfPTLdEfh9cS8nKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAwIlZjGBGZx/Oj7uA66tLuwCwEg8Pv1+fX1ReobfSSWqZaQoAqzXGKL7C3vsJXMXsE4YDiwif+wEAKEekAgAgUgEAQKQCADAdf5wCAKAWf5wCAKAikQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgLVbZlnor7u7N5++2DAAgP1cX11OtNqWmfYMAIA6IsLnfgAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAI5nmWitYwwbBgCwn977RKt1kgoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAA7KRlpikAAFBHRDhJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAOxkuf360hQAgH/dfPxmCBzF2bvPrb14vr2932y2262BAABQwh8v3mJKqQRxgQAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _30"> </span>4/4</div><div class="t m0 x1 he y2b ff4 fs8 fc0 sc0 ls0 ws0">The<span class="_ _b"> </span>b<span class="_ _d"></span>est<span class="_ _f"> </span>solution<span class="_ _f"> </span>is<span class="_ _b"> </span>to<span class="_ _f"> </span>use<span class="_ _f"> </span><span class="ff1">t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>traits</span></div><div class="t m0 xd hf y166 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;<span class="_ _28"> </span>//<span class="_ _9"> </span>&lt;--<span class="_ _9"> </span>std<span class="_ _9"> </span>type<span class="_ _11"> </span>traits<span class="_ _9"> </span>library</span></div><div class="t m0 xd hf y167 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y168 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>integral_div(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>T<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y169 ff6 fs7 fc6 sc0 ls0 ws0">static_assert<span class="ffc fc0">(std<span class="fc7">::</span>is_integral<span class="fc7">&lt;</span>T<span class="fc7">&gt;::</span>value,</span></div><div class="t m0 x16 hf y16a ffc fs7 fc9 sc0 ls0 ws0">&quot;integral_div<span class="_ _9"> </span>accepts<span class="_ _9"> </span>only<span class="_ _11"> </span>integral<span class="_ _9"> </span>types&quot;<span class="fc0">);</span></div><div class="t m0 x3 hf y16b ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">/<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y16c ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h6 y16d ff6 fs4 fc0 sc0 ls0 ws0">std::is_integral&lt;T&gt;<span class="_ _2a"> </span><span class="ff4">is<span class="_ _c"> </span>a<span class="_ _2a"> </span><span class="ff11">struct<span class="_ _2a"> </span></span>with<span class="_ _b"> </span>a<span class="_ _2a"> </span><span class="ff11">static<span class="_ _6"> </span>constexpr<span class="_ _2a"> </span></span>bo<span class="_ _d"></span>olean<span class="_ _b"> </span>field<span class="_ _2a"> </span><span class="ff11">value</span></span></div><div class="t m0 xd h6 y16e ff11 fs4 fc0 sc0 ls0 ws0">value<span class="_ _2a"> </span><span class="ff4">is<span class="_ _c"> </span></span>true<span class="_ _b"> </span><span class="ff4">if<span class="_ _8"> </span></span>T<span class="_ _b"> </span><span class="ff4">is<span class="_ _2a"> </span></span>bool<span class="_ _c"> </span><span class="ff4">,<span class="_ _2a"> </span></span>char<span class="_ _32"> </span><span class="ff4">,<span class="_ _2a"> </span></span>short<span class="_ _32"> </span><span class="ff4">,<span class="_ _2a"> </span></span>int<span class="_ _c"> </span><span class="ff4">,<span class="_ _2a"> </span></span>long<span class="_ _32"> </span><span class="ff4">,<span class="_ _2a"> </span></span>long<span class="_ _6"> </span>long<span class="_ _32"> </span><span class="ff4">,<span class="_ _b"> </span></span>false<span class="_ _b"> </span><span class="ff4">otherwise</span></div><div class="t m0 x1 h6 y16f ff4 fs4 fc3 sc0 ls0 ws0">C++17<span class="_ _c"> </span><span class="fc0">provides<span class="_ _c"> </span>utilities<span class="_ _b"> </span>to<span class="_ _b"> </span>imp<span class="_ _5"></span>rove<span class="_ _b"> </span>the<span class="_ _c"> </span>readability<span class="_ _c"> </span>of<span class="_ _b"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _b"> </span>traits</span></div><div class="t m0 xd hf y170 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc7">::</span>is_integral_v<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>std::is_integral&lt;T&gt;::value</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">36/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2b" class="pf w0 h0" data-page-no="2b"><div class="pc pc2b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _8"> </span>Libra<span class="_ _5"></span>ry<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Query<span class="_ _1d"> </span>Fundamental<span class="_ _8"> </span>and<span class="_ _1d"> </span>Scalar<span class="_ _8"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>es<span class="_ _33"> </span>1/3</div><div class="t m0 xe he y7a ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_integral<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>an<span class="_ _b"> </span>integral<span class="_ _f"> </span>type<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">bool<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">char<span class="_ _32"> </span></span>,<span class="_ _18"> </span><span class="ff11">unsigned<span class="_ _15"> </span>char<span class="_ _c"> </span></span>,</span></div><div class="t m0 x10 he y171 ff11 fs8 fc0 sc0 ls0 ws0">short<span class="_ _32"> </span><span class="ff4">,<span class="_ _18"> </span></span>int<span class="_ _c"> </span><span class="ff4">,<span class="_ _18"> </span></span>long<span class="_ _32"> </span><span class="ff4">,<span class="_ _f"> </span>etc.)</span></div><div class="t m0 xe he y172 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_floating_point<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>floating-p<span class="_ _0"></span>oint<span class="_ _b"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">float<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">double<span class="_ _32"> </span></span>)</span></div><div class="t m0 xe he y173 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_arithmetic<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>integral<span class="_ _f"> </span>or<span class="_ _b"> </span>floating-p<span class="_ _d"></span>oint<span class="_ _b"> </span>type</span></div><div class="t m0 xe he y174 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_signed<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>signed<span class="_ _f"> </span>type<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">float<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">int<span class="_ _32"> </span></span>,<span class="_ _f"> </span>etc.)</span></div><div class="t m0 xe he y175 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_unsigned<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>an<span class="_ _b"> </span>unsigned<span class="_ _f"> </span>type<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">unsigned<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">bool<span class="_ _32"> </span></span>,<span class="_ _f"> </span>etc.)</span></div><div class="t m0 xe he y176 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_enum<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>an<span class="_ _b"> </span>enumerator<span class="_ _b"> </span>type<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">enum<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">enum<span class="_ _15"> </span>class<span class="_ _32"> </span></span>)</span></div><div class="t m0 xe he y177 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_void<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>(<span class="_ _32"> </span><span class="ff11">void<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y178 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_pointer<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>p<span class="_ _0"></span>ointer<span class="_ _b"> </span>(<span class="_ _32"> </span><span class="ff11">T*<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y179 ffb fs8 fc0 sc0 ls0 ws0"></div><div class="t m0 x10 he y17a ff11 fs8 fc5 sc0 ls0 ws0">is_null_pointer<span class="_ _18"> </span><span class="ff4 fc0">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>(<span class="_ _c"> </span><span class="ff11">nullptr<span class="_ _c"> </span></span>)<span class="_ _b"> </span><span class="fc3">C++14</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">37/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2c" class="pf w0 h0" data-page-no="2c"><div class="pc pc2c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _8"> </span>Libra<span class="_ _5"></span>ry<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Query<span class="_ _1d"> </span>References,<span class="_ _1d"> </span>Functions,<span class="_ _8"> </span>Objects<span class="_ _34"> </span>2/3</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">Entit<span class="_ _5"></span>y<span class="_ _8"> </span>type<span class="_ _8"> </span>queries:</div><div class="t m0 xe he y17b ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_reference<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>reference<span class="_ _f"> </span>(<span class="_ _c"> </span><span class="ff11">T&amp;<span class="_ _32"> </span></span>)</span></div><div class="t m0 xe he y17c ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_array<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>an<span class="_ _b"> </span>arra<span class="_ _5"></span>y<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">T<span class="_ _15"> </span>(&amp;)[N]<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y17d ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_function<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>function<span class="_ _f"> </span>type</span></div><div class="t m0 x1 he y17e ff1 fs8 fc0 sc0 ls0 ws0">Class<span class="_ _8"> </span>queries:</div><div class="t m0 xe he y17f ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_class<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>class<span class="_ _f"> </span>type<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">struct<span class="_ _c"> </span></span>,<span class="_ _18"> </span><span class="ff11">class<span class="_ _32"> </span></span>)</span></div><div class="t m0 xe he y180 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_abstract<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>class<span class="_ _f"> </span>with<span class="_ _f"> </span>at<span class="_ _b"> </span>least<span class="_ _f"> </span>one<span class="_ _f"> </span>pure<span class="_ _b"> </span>virtual<span class="_ _f"> </span>function</span></div><div class="t m0 xe he y181 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_polymorphic<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>for<span class="_ _b"> </span>a<span class="_ _b"> </span>class<span class="_ _f"> </span>with<span class="_ _f"> </span>at<span class="_ _b"> </span>least<span class="_ _f"> </span>one<span class="_ _f"> </span>virtual<span class="_ _b"> </span>function</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">38/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2d" class="pf w0 h0" data-page-no="2d"><div class="pc pc2d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _8"> </span>Libra<span class="_ _5"></span>ry<span class="_ _1d"> </span>-<span class="_ _1d"> </span>Query<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span>Relation<span class="_ _35"> </span>3/3</div><div class="t m0 x1 he y182 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>p<span class="_ _5"></span>rop<span class="_ _d"></span>erty<span class="_ _f"> </span>queries:</div><div class="t m0 xe he y183 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_const<span class="_ _18"> </span></span><span class="ff4">checks<span class="_ _b"> </span>if<span class="_ _f"> </span>a<span class="_ _b"> </span>type<span class="_ _f"> </span>is<span class="_ _18"> </span><span class="ff11">const</span></span></div><div class="t m0 x1 he y184 ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>relation:</div><div class="t m0 xe he y185 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_same<span class="fc0">&lt;T,<span class="_ _15"> </span>R&gt;<span class="_ _18"> </span><span class="ff4">checks<span class="_ _b"> </span>if<span class="_ _18"> </span></span>T<span class="_ _18"> </span><span class="ff4">and<span class="_ _18"> </span></span>R<span class="_ _18"> </span><span class="ff4">are<span class="_ _b"> </span>the<span class="_ _b"> </span>same<span class="_ _f"> </span>type</span></span></span></div><div class="t m0 xe he y186 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_base_of<span class="fc0">&lt;T,<span class="_ _15"> </span>R&gt;<span class="_ _18"> </span><span class="ff4">checks<span class="_ _b"> </span>if<span class="_ _18"> </span></span>T<span class="_ _18"> </span><span class="ff4">is<span class="_ _f"> </span>base<span class="_ _b"> </span>of<span class="_ _18"> </span></span>R</span></span></div><div class="t m0 xe he y187 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">is_convertible<span class="fc0">&lt;T,<span class="_ _15"> </span>R&gt;<span class="_ _18"> </span><span class="ff4">checks<span class="_ _b"> </span>if<span class="_ _18"> </span></span>T<span class="_ _18"> </span><span class="ff4">can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _b"> </span>converted<span class="_ _f"> </span>to<span class="_ _18"> </span></span>R</span></span></div><div class="t m0 xe hc y188 ff8 fs7 fca sc0 ls0 ws0">F<span class="_ _5"></span>ull<span class="_ _c"> </span>list:<span class="_ _8"> </span><span class="ffc">en.cppreference.com/w/cpp/header/type_traits</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">39/47</div><a class="l" href="en.cppreference.com/w/cpp/header/type_traits"><div class="d m1" style="border-style:none;position:absolute;left:69.893000px;bottom:2.991000px;width:209.116000px;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="pf2e" class="pf w0 h0" data-page-no="2e"><div class="pc pc2e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdUlEQVR42u3YsQlCMRSG0Rd5wSo4g1g5gYi14GYu4TgWDuEGVo9UpomdaGt1H54zQfjTfNy02R0GAAAI4367LqwAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgLfUWrMCAABx5JxdUgEACGec0VtrrT4MAOA3pZQZvdYlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8C211qwAAEAcOWeXVAAAwhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAB/G6by2AgDwtx7HixGi2e5PKa2WfXoOQ+/dIAAAhPACebEaAoB29r8AAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Example<span class="_ _1d"> </span>-<span class="_ _1d"> </span><span class="ff6">const<span class="_ _1d"> </span></span>Deduction</div><div class="t m0 xd hf y189 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y18a ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y18b ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f(T<span class="_ _9"> </span>x)<span class="_ _11"> </span>{<span class="_ _1f"> </span>cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>std<span class="fc7">::</span>is_const_v<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;<span class="_ _1f"> </span>}</span></div><div class="t m0 xd hf y18c ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y18d ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g(T<span class="fc7">&amp;<span class="_ _9"> </span></span>x)<span class="_ _11"> </span>{<span class="_ _1f"> </span>cout<span class="_ _9"> </span><span class="fc7">&lt;&lt;<span class="_ _9"> </span></span>std<span class="fc7">::</span>is_const_v<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;<span class="_ _1f"> </span>}</span></div><div class="t m0 xd hf y18e ff6 fs7 fc6 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc4">int<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _11"> </span><span class="fc7">=<span class="_ _9"> </span>3</span>;</span></span></div><div class="t m0 xd hf y18f ffc fs7 fc0 sc0 ls0 ws0">f(a);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span><span class="ffe">false</span>,<span class="_ _9"> </span>&quot;const&quot;<span class="_ _11"> </span>drop<span class="_ _9"> </span>in<span class="_ _9"> </span>pass<span class="_ _11"> </span>by-value</span></div><div class="t m0 xd hf y190 ffc fs7 fc0 sc0 ls0 ws0">g(a);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span><span class="ffe">true</span></span></div><div class="t m0 xd hf y191 ff6 fs7 fc6 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc4">int<span class="ffc fc7">*<span class="_ _9"> </span><span class="fc0">b<span class="_ _11"> </span></span>=<span class="_ _9"> </span></span></span>nullptr<span class="ffc fc0">;</span></div><div class="t m0 xd hf y192 ffc fs7 fc0 sc0 ls0 ws0">g(b);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span><span class="ffe">false</span>!!<span class="_ _9"> </span>T:<span class="_ _11"> </span>(const<span class="_ _9"> </span>int)*,<span class="_ _9"> </span><span class="ff16">&apos;</span>b<span class="ff16">&apos;<span class="_ _11"> </span></span>can<span class="_ _9"> </span>be<span class="_ _9"> </span>modified<span class="_ _9"> </span>by<span class="_ _11"> </span><span class="ff16">&apos;</span>g()<span class="ff16">&apos;</span></span></div><div class="t m0 xd hf y193 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="ffc fc7">*<span class="_ _9"> </span></span><span class="fc6">const<span class="_ _9"> </span><span class="ffc fc0">c<span class="_ _11"> </span><span class="fc7">=<span class="_ _9"> </span></span></span>nullptr<span class="ffc fc0">;</span></span></div><div class="t m0 xd hf y194 ffc fs7 fc0 sc0 ls0 ws0">g(c);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>print<span class="_ _9"> </span><span class="ffe">true</span>!!<span class="_ _9"> </span>T:<span class="_ _11"> </span>const<span class="_ _9"> </span>(int*),<span class="_ _9"> </span><span class="ff16">&apos;</span>c<span class="ff16">&apos;<span class="_ _11"> </span></span>cannot<span class="_ _9"> </span>be<span class="_ _9"> </span>modified<span class="_ _9"> </span>by<span class="_ _11"> </span><span class="ff16">&apos;</span>g()<span class="ff16">&apos;</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">40/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2f" class="pf w0 h0" data-page-no="2f"><div class="pc pc2f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIt0lEQVR42u3csU0DMRiG4TM6i8piBkSVCRCiRsoI7JEh6FMzRIZIkSHYgCpyA05xdNRwAun33fNMYH1uXvmkS3f3jwMAAITxdjpeWQEAgGhEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAA31JrzQoAAMSRc/aSCgBAOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAASzd2dNZaqwsDAJinlNLRab2kAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgDAXxlNwMJ8XC7P+70dfuiw2xkBgIBSa62Xs9ZaXRgAwDyllF6OmnP2uR8AgHBEKgAAIhUAAEQqAAAiFQAARCoAAIvT0y+oAABYA7+gAgAgIpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAKzN2dNZaqwsDAJinlNLRab2kAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAhUutNSsAABBHztlLKgAA4YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMCajeeXWysAAPzW+9OrEf7J5mGb0s31dP4chmmaDAIAQAhf68Er/mZUrecAAAAASUVORK5CYII="/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">Example<span class="_ _1d"> </span>-<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span>Relation</div><div class="t m0 xd hf y195 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y196 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y197 ffc fs7 fc0 sc0 ls0 ws0">T<span class="_ _9"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>R<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y198 ff6 fs7 fc6 sc0 ls0 ws0">static_assert<span class="ffc fc0">(std<span class="fc7">::</span>is_same_v<span class="fc7">&lt;</span>T,<span class="_ _9"> </span>R<span class="fc7">&gt;</span>,<span class="_ _9"> </span><span class="fc9">&quot;T<span class="_ _11"> </span>and<span class="_ _9"> </span>R<span class="_ _9"> </span>must<span class="_ _11"> </span>have<span class="_ _9"> </span>the<span class="_ _9"> </span>same<span class="_ _9"> </span>type&quot;</span>);</span></div><div class="t m0 x3 hf y199 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y19a ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y19b ffc fs7 fc0 sc0 ls0 ws0">add(<span class="fc7">1</span>,<span class="_ _9"> </span><span class="fc7">2</span>);<span class="_ _20"> </span><span class="ffd fc8">//<span class="_ _9"> </span>ok</span></div><div class="t m0 xd hd y19c ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>add(1,<span class="_ _9"> </span>2.0);<span class="_ _11"> </span>//<span class="_ _9"> </span><span class="ff9">compile<span class="_ _c"> </span>error</span>,<span class="_ _1d"> </span>&quot;T<span class="_ _11"> </span>and<span class="_ _9"> </span>R<span class="_ _9"> </span>must<span class="_ _11"> </span>have<span class="_ _9"> </span>the<span class="_ _9"> </span>same<span class="_ _9"> </span>type&quot;</div><div class="t m0 xd hf y19d ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y19e ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">A<span class="_ _9"> </span><span class="ffc fc0">{};</span></span></div><div class="t m0 xd hf y19f ff6 fs7 fc6 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc5">B<span class="_ _9"> </span><span class="ffc fc7">:<span class="_ _11"> </span><span class="fc0">A<span class="_ _9"> </span>{};</span></span></span></div><div class="t m0 xd hf y1a0 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc7">::</span>is_base_of_v<span class="fc7">&lt;</span>A,<span class="_ _9"> </span>B<span class="fc7">&gt;</span>;<span class="_ _36"> </span><span class="ffd fc8">//<span class="_ _9"> </span>true</span></div><div class="t m0 xd hf y1a1 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc7">::</span>is_convertible_v<span class="fc7">&lt;<span class="ff6 fc4">int</span></span>,<span class="_ _9"> </span><span class="ff6 fc4">float</span><span class="fc7">&gt;</span>;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>true</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">41/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf30" class="pf w0 h0" data-page-no="30"><div class="pc pc30 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>Manipulation</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>traits<span class="_ _f"> </span>allow<span class="_ _f"> </span>also<span class="_ _8"> </span>to<span class="_ _8"> </span>manipulate<span class="_ _8"> </span>types<span class="_ _8"> </span>b<span class="_ _5"></span>y<span class="_ _8"> </span>using<span class="_ _8"> </span>the<span class="_ _1a"> </span><span class="ff6">type<span class="_ _1a"> </span></span>field</div><div class="t m0 x1 he y1a2 ff4 fs8 fc0 sc0 ls0 ws0">Example:<span class="_ _9"> </span>produce<span class="_ _18"> </span><span class="ff11">unsigned<span class="_ _18"> </span></span>from<span class="_ _18"> </span><span class="ff11">int</span></div><div class="t m0 xd hf y1a3 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y1a4 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">U<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span></span>typename<span class="_ _9"> </span><span class="fc0">std::make_unsigned<span class="ffc fc7">&lt;</span><span class="fc4">int<span class="ffc fc7">&gt;::<span class="fc0">type;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>see<span class="_ _9"> </span>next<span class="_ _9"> </span>lecture<span class="_ _9"> </span>to<span class="_ _11"> </span>understand</span></span></span></span></span></div><div class="t m0 x17 hf y1a5 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>why<span class="_ _9"> </span><span class="ff16">&apos;</span>typename<span class="ff16">&apos;<span class="_ _11"> </span></span>is<span class="_ _9"> </span>needed<span class="_ _9"> </span>here</div><div class="t m0 xd hf y1a6 ffc fs7 fc0 sc0 ls0 ws0">U<span class="_ _9"> </span>y<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>5</span>;<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>unsigned</span></div><div class="t m0 x1 he y1a7 ff4 fs8 fc3 sc0 ls0 ws0">C++14<span class="_ _b"> </span><span class="fc0">provides<span class="_ _b"> </span>utilities<span class="_ _b"> </span>to<span class="_ _f"> </span>improve<span class="_ _b"> </span>the<span class="_ _b"> </span>readability<span class="_ _b"> </span>of<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>traits</span></div><div class="t m0 xd hf y1a8 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc7">::</span>make_unsigned_t<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>instead<span class="_ _9"> </span>of<span class="_ _9"> </span><span class="ff16">&apos;</span>typename<span class="_ _11"> </span>std::make_unsigned&lt;T&gt;::type<span class="ff16">&apos;</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">42/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf31" class="pf w0 h0" data-page-no="31"><div class="pc pc31 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _8"> </span>Libra<span class="_ _5"></span>ry<span class="_ _1d"> </span>-<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span>Manipulation<span class="_ _37"> </span>1/2</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">Signed<span class="_ _8"> </span>and<span class="_ _f"> </span>Unsigned<span class="_ _8"> </span>types:</div><div class="t m0 xe he y1a9 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">make_signed<span class="_ _18"> </span></span><span class="ff4">mak<span class="_ _5"></span>es<span class="_ _f"> </span>a<span class="_ _b"> </span>signed<span class="_ _f"> </span>type</span></div><div class="t m0 xe he y1aa ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">make_unsigned<span class="_ _18"> </span></span><span class="ff4">mak<span class="_ _5"></span>es<span class="_ _f"> </span>an<span class="_ _b"> </span>unsigned<span class="_ _f"> </span>type</span></div><div class="t m0 x1 he y1ab ff1 fs8 fc0 sc0 ls0 ws0">P<span class="_ _5"></span>ointers<span class="_ _8"> </span>and<span class="_ _8"> </span>References:</div><div class="t m0 xe he y1ac ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">remove_pointer<span class="_ _18"> </span></span><span class="ff4">remove<span class="_ _b"> </span>p<span class="_ _d"></span>ointer<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">T*<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y1ad ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">remove_reference<span class="_ _18"> </span></span><span class="ff4">remove<span class="_ _b"> </span>reference<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">T&amp;<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y1ae ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">add_pointer<span class="_ _18"> </span></span><span class="ff4">add<span class="_ _b"> </span>p<span class="_ _d"></span>ointer<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">T<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T*<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y1af ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">add_lvalue_reference<span class="_ _18"> </span></span><span class="ff4">add<span class="_ _b"> </span>reference<span class="_ _f"> </span>(<span class="_ _32"> </span><span class="ff11">T<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T&amp;<span class="_ _c"> </span></span>)</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">43/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf32" class="pf w0 h0" data-page-no="32"><div class="pc pc32 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>T<span class="_ _7"></span>raits<span class="_ _8"> </span>Libra<span class="_ _5"></span>ry<span class="_ _1d"> </span>-<span class="_ _1d"> </span>T<span class="_ _7"></span>yp<span class="_ _d"></span>e<span class="_ _1d"> </span>T<span class="_ _7"></span>ransfo<span class="_ _5"></span>rmation<span class="_ _38"> </span>2/2</div><div class="t m0 xd he y1b0 ff6 fs8 fc0 sc0 ls0 ws0">const<span class="_ _18"> </span><span class="ff1">sp<span class="_ _d"></span>ecifiers:</span></div><div class="t m0 xe he y1b1 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">remove_const<span class="_ _18"> </span></span><span class="ff4">remove<span class="_ _18"> </span><span class="ff11">const<span class="_ _18"> </span></span>(<span class="_ _32"> </span><span class="ff11">const<span class="_ _15"> </span>T<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T<span class="_ _32"> </span></span>)</span></div><div class="t m0 xe he y1b2 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">add_const<span class="_ _18"> </span></span><span class="ff4">add<span class="_ _18"> </span><span class="ff11">const</span></span></div><div class="t m0 x1 he y1b3 ff1 fs8 fc0 sc0 ls0 ws0">Other<span class="_ _8"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _8"> </span>transformation:</div><div class="t m0 xe he y1b4 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">common_type<span class="fc0">&lt;T,<span class="_ _15"> </span>R&gt;<span class="_ _18"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _f"> </span>common<span class="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>b<span class="_ _d"></span>etw<span class="_ _5"></span>een<span class="_ _2a"> </span><span class="ff11">T<span class="_ _18"> </span></span>and<span class="_ _18"> </span><span class="ff11">R</span></span></span></span></div><div class="t m0 xe he y1b5 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">conditional<span class="fc0">&lt;pred,<span class="_ _15"> </span>T,<span class="_ _15"> </span>R&gt;<span class="_ _18"> </span><span class="ff4">returns<span class="_ _18"> </span></span>T<span class="_ _18"> </span><span class="ff4">if<span class="_ _18"> </span></span>pred<span class="_ _18"> </span><span class="ff4">is<span class="_ _18"> </span></span>true<span class="_ _32"> </span><span class="ff4">,<span class="_ _18"> </span></span>R<span class="_ _18"> </span><span class="ff4">otherwise</span></span></span></div><div class="t m0 xe he y1b6 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _24"> </span><span class="ff11 fc5">decay<span class="fc0">&lt;T&gt;<span class="_ _18"> </span><span class="ff4">returns<span class="_ _b"> </span>the<span class="_ _f"> </span>same<span class="_ _b"> </span>type<span class="_ _f"> </span>as<span class="_ _f"> </span>a<span class="_ _b"> </span>function<span class="_ _f"> </span>parameter<span class="_ _b"> </span>passed<span class="_ _b"> </span>by-value</span></span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">44/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf33" class="pf w0 h0" data-page-no="33"><div class="pc pc33 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>ype<span class="_ _9"> </span>Manipulation<span class="_ _1d"> </span>Example</div><div class="t m0 xd hf y189 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y18a ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y18b ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">f(T<span class="_ _9"> </span>ptr)<span class="_ _11"> </span>{</span></div><div class="t m0 x3 hf y1b7 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">R<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>std<span class="fc7">::</span>remove_pointer_t<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;</span></div><div class="t m0 x3 hf y18c ffc fs7 fc0 sc0 ls0 ws0">R<span class="_ _9"> </span>x<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>ptr[<span class="fc7">0</span>];<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>char</span></div><div class="t m0 xd hf y18d ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y18e ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y18f ff6 fs7 fc4 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc0">g(T<span class="_ _9"> </span>x)<span class="_ _11"> </span>{</span></div><div class="t m0 x3 hf y190 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">R<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>std<span class="fc7">::</span>add_const_t<span class="fc7">&lt;</span>T<span class="fc7">&gt;</span>;</span></div><div class="t m0 x3 hf y1b8 ffc fs7 fc0 sc0 ls0 ws0">R<span class="_ _9"> </span>y<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span>3</span>;</div><div class="t m0 xd hd y191 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _1f"> </span>y<span class="_ _12"> </span>=<span class="_ _9"> </span>4;<span class="_ _21"> </span>//<span class="_ _9"> </span><span class="ff9">compile<span class="_ _c"> </span>error</span></div><div class="t m0 xd hf y192 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y193 ff6 fs7 fc4 sc0 ls0 ws0">char<span class="_ _9"> </span><span class="ffc fc0">a[]<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span><span class="fc9">&quot;abc&quot;</span></span>;</span></div><div class="t m0 xd hf y194 ffc fs7 fc0 sc0 ls0 ws0">f(a);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>T:<span class="_ _9"> </span>char*</span></div><div class="t m0 xd hf y1b9 ffc fs7 fc0 sc0 ls0 ws0">g(<span class="fc7">3</span>);<span class="_ _1f"> </span><span class="ffd fc8">//<span class="_ _9"> </span>T:<span class="_ _9"> </span>int</span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">45/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf34" class="pf w0 h0" data-page-no="34"><div class="pc pc34 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQnCQBiG4TvJYRWcQaycQMRacDOXcBwLh3ADq5DKa87OUjBY/JHn6QPHl+blz5vdIQEAQBj323VhBQAAohGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAC85VqrFQAAiKOU4pIKAEA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQDgj3Qzeus4jn4YAMA0fd/P6LUuqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQTAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMBnudZqBQAA4iiluKQCABCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAA8L1uOK+tAADAzz2Ol2kfbvennFfLNjxTaq1ZEgCAEF7YuBoCydLNJAAAAABJRU5ErkJggg=="/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">std::common_type<span class="_ _1d"> </span><span class="ff1">Example</span></div><div class="t m0 xd hf y1ba ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y1bb ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y1bc ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc7">::</span>common_type_t<span class="fc7">&lt;</span>R,<span class="_ _9"> </span>T<span class="fc7">&gt;<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>&lt;--<span class="_ _9"> </span>return<span class="_ _9"> </span>type</span></span></div><div class="t m0 xd hf y1bd ffc fs7 fc0 sc0 ls0 ws0">add(T<span class="_ _9"> </span>a,<span class="_ _9"> </span>R<span class="_ _11"> </span>b)<span class="_ _9"> </span>{</div><div class="t m0 x3 hf y1be ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _11"> </span></span>b;</span></div><div class="t m0 xd hf y1bf ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y1c0 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>we<span class="_ _9"> </span>can<span class="_ _11"> </span>also<span class="_ _9"> </span>use<span class="_ _9"> </span><span class="ffe">decltype<span class="_ _11"> </span></span>to<span class="_ _9"> </span>derive<span class="_ _9"> </span>the<span class="_ _9"> </span>result<span class="_ _11"> </span>type</div><div class="t m0 xd hf y1c1 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">result_t<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span></span>decltype<span class="ffc fc0">(add(<span class="fc7">3</span>,<span class="_ _9"> </span><span class="fc7">4.0f</span>));</span></div><div class="t m0 xd hf y1c2 ffc fs7 fc0 sc0 ls0 ws0">result_t<span class="_ _9"> </span>x<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>add(<span class="fc7">3</span>,<span class="_ _9"> </span><span class="fc7">4.0f</span>);</div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">46/47</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf35" class="pf w0 h0" data-page-no="35"><div class="pc pc35 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x5 h7 y8 ff6 fs3 fc1 sc0 ls0 ws0">std::conditional<span class="_ _1d"> </span><span class="ff1">Example</span></div><div class="t m0 xd hf y1c3 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _31"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 xd hf y1c4 ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;</span>typename<span class="_ _9"> </span><span class="fc5">T<span class="ffc fc0">,<span class="_ _9"> </span></span></span>typename<span class="_ _11"> </span><span class="fc5">R<span class="ffc fc7">&gt;</span></span></div><div class="t m0 xd hf y1c5 ff6 fs7 fc6 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">f(T<span class="_ _9"> </span>a,<span class="_ _11"> </span>R<span class="_ _9"> </span>b)<span class="_ _9"> </span>{</span></div><div class="t m0 x3 hf y1c6 ff6 fs7 fc6 sc0 ls0 ws0">constexpr<span class="_ _9"> </span><span class="fc4">bool<span class="_ _9"> </span><span class="ffc fc0">pred<span class="_ _11"> </span><span class="fc7">=<span class="_ _9"> </span></span></span></span>sizeof<span class="ffc fc0">(T)<span class="_ _9"> </span><span class="fc7">&gt;<span class="_ _11"> </span></span></span>sizeof<span class="ffc fc0">(R);</span></div><div class="t m0 x3 hf y1c7 ff6 fs7 fc6 sc0 ls0 ws0">using<span class="_ _9"> </span><span class="ffc fc0">S<span class="_ _9"> </span><span class="fc7">=<span class="_ _11"> </span></span>std<span class="fc7">::</span>conditional_t<span class="fc7">&lt;</span>pred,<span class="_ _9"> </span>T,<span class="_ _9"> </span>R<span class="fc7">&gt;</span>;</span></div><div class="t m0 x3 hf y1c8 ff6 fs7 fc6 sc0 ls0 ws0">return<span class="_ _9"> </span>static_cast<span class="ffc fc7">&lt;<span class="fc0">S</span>&gt;<span class="fc0">(a)<span class="_ _9"> </span></span>+<span class="_ _11"> </span></span>static_cast<span class="ffc fc7">&lt;<span class="fc0">S</span>&gt;<span class="fc0">(b);</span></span></div><div class="t m0 xd hf y1c9 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y1ca ffc fs7 fc0 sc0 ls0 ws0">f(<span class="_ _12"> </span><span class="fc7">2</span>,<span class="_ _1f"> </span><span class="ff13 fc9">&apos;<span class="ffc">a</span>&apos;</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>return<span class="_ _9"> </span><span class="ff16">&apos;</span>int<span class="ff16">&apos;</span></span></div><div class="t m0 xd hf y1cb ffc fs7 fc0 sc0 ls0 ws0">f(<span class="_ _12"> </span><span class="fc7">2</span>,<span class="_ _9"> </span><span class="fc7">2ull</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>return<span class="_ _9"> </span><span class="ff16">&apos;</span>unsigned<span class="_ _9"> </span>long<span class="_ _11"> </span>long<span class="ff16">&apos;</span></span></div><div class="t m0 xd hf y1cc ffc fs7 fc0 sc0 ls0 ws0">f(<span class="fc7">2.0f</span>,<span class="_ _9"> </span><span class="fc7">2ull</span>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span>return<span class="_ _9"> </span><span class="ff16">&apos;</span>unsigned<span class="_ _9"> </span>long<span class="_ _11"> </span>long<span class="ff16">&apos;</span></span></div><div class="t m0 xf h9 y10 ff5 fs5 fc0 sc0 ls0 ws0">47/47</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>