Files
Modern-CPP-Programming/htmls/11.Templates_I.html
2026-01-06 09:09:47 -08:00

1316 lines
590 KiB
HTML

<!DOCTYPE html>
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="generator" content="pdf2htmlEX"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<style type="text/css">
/*!
* Base CSS for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
<style type="text/css">
/*!
* Fancy styles for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
<style type="text/css">
.ff0{font-family:sans-serif;visibility:hidden;}
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height: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,d09GRgABAAAAAATgAA0AAAAABuQAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAExAAAABoAAAAcpiahPEdERUYAAASoAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlXIgqpjbWFwAAAB/AAAAEYAAAFKRYDkOWdhc3AAAASgAAAACAAAAAj//wADZ2x5ZgAAAlAAAAB0AAAAdF5LOhRoZWFkAAABMAAAADMAAAA2Lf0abmhoZWEAAAFkAAAAHgAAACQGSgNsaG10eAAAAegAAAAUAAAAFAcYAERsb2NhAAACRAAAAAwAAAAMAAAAOm1heHAAAAGEAAAAHQAAACAASAAnbmFtZQAAAsQAAAG7AAAC2R+DGYdwb3N0AAAEgAAAAB4AAAA0ObKyo3icY2BkYGBgZmh21xX+Hc9v85WBm/kFUIThadPrBDjt8n8C8ySmbUAuBwMTSBQAb3kNLQB4nGNgZGBg2vZ/AgMD8zUGIGCexMDIgApYAWUfA70AAHicY2BkYGBgZVBhANEMDExAzAhmO4D5DAAGWwBwAAAAeJxjYGR8zfiFgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBjZoABRiB2gHEC0lxTgJSC0jGmbf8nAFVuYyiAqmEAACwtDEAB9AAAAAAAAAFNAAAAAQAAA9YARHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlI79/w/kg+n/j+/aQdUDASMbA5zDyAQkmBhQASPEiuEMAMdbCdwAAAAAAAAAAAAAAAAAOgABAET/kAOSArYAIwAAAQcXHgIVFCMnBwYjIjU0NxMnJjU0PgEzIRM2MhcTITIeARQDg+sIAywmDf3sBwoNA1rsDgkLCwEdWgYWBloBHQsLCQFtrBcLhnYED7SrCQ8FCQEVqwkJBwYBARQVFf7sAQYOAAAAeJxtUcFq20AQfavYpg2l9NrbXAo22LKsgI1MCDUhPhSUQww59SLkxVKxJFdaR/ineumv5BR66Knf0af1FnKoBjRvZmfmvdkF8B4/oHD+CvxyWKGvHh32MFDfHL6AqJ8O91jz2+E+PnhvHB6g731ipeq9ZfRiuzqscKm+OOzhnfrq8AU+q+8O91jz7HCfXH8cHuDS+4hbVDjghBo5dshgIBgixYh+hoi2wJg4RECLiFbcSdv6FAlKZmJ6w17Nkw6dT/Y82XB6ylgze7KTry2HIecSU1przWd9gYa+4uQdbsjfsbbs7SYLHjijsbxP/G+ZWbO2tHrvbbe2SjbUF1OzD9xWh1Od7zIjw3QksyhajCUMgkhWha7zNCklTkymi8Qw2MumSnNtTjK8zow5LKfTtm39pGj8qt7djMbS5iaTB93o+klvZV2VRu6TQku8WcUL0t3hyJ07hbg77jVdbJXmzBcM9DY/0v+TvXaranu5Pi9XeCWvVzjHc0z4EBP7ACEjdMxratIS+oEsz/z088lsEgbhHK9GwB4Cj1ZXQy2VfbHuLa8saTdUWKDrJq9KCYIrPwhC+c+Qv+WyeN4AeJxjYGLAD1iBmJGBiYGZkYm9NC/TyMjZDAALhQJBAAAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCFjAG8RgAA8oAMwB4nGNgYGBkAILbCqeqQfTTptcJMBoATkAHpgAA')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,d09GRgABAAAAAA0wAA0AAAAAEWgAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAANFAAAABoAAAAcpiahQEdERUYAAAz4AAAAHAAAAB4AJwAnT1MvMgAAAagAAABDAAAAVlWOXtRjbWFwAAACZAAAAMoAAAHCjK2Anmdhc3AAAAzwAAAACAAAAAj//wADZ2x5ZgAAA3QAAAd/AAAJlLc16TpoZWFkAAABMAAAADMAAAA2LdYaomhoZWEAAAFkAAAAIgAAACQGiAKzaG10eAAAAewAAAB4AAAAgjv5CLVsb2NhAAADMAAAAEQAAABEIqYlOm1heHAAAAGIAAAAHgAAACAAZgBLbmFtZQAACvQAAAGoAAAC7kL+sqFwb3N0AAAMnAAAAFIAAABkAwcDs3icY2BkYGBgYmSriwo5FM9v85WBm/kFUIThadPrJDjN+N+IeT3TQSCXg4EJJAoAZEIMpwB4nGNgZGBgOvjfiIGBuYmB4X8183qGFAZRBmSgAAB9qwVAAAB4nGNgZGBgUGTwYGBmAAEmIGZkAIk5gPkMAA0BALIAAHicY2Bk/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/8GyinwqgB4nJVSTUvrUBA9N7YVQaqbt3vKLP0gIUYp6FKxQrGtNK24TTRtQ2uuJpXSf+CPebyNP8Wf8P7IO7m5CHZnQmbOnHtm7swQAE38hUL13H9hhU31y2IHDXVs8QaO1LvFNeyoT4vraDrK4gZ2HJ9KVdti9MdklVihqeoWO9hWexZvYKgCi2vYVx8W1/Fb/bO4gX1nF1fQeMEKOVJMMMUCggA+31O4fCt8TjamSnAJj7aDCI+YMXeJgj4lFyHDkznz0DWqnjmvlKXigHFmKiW8KcIcY0ba2CG5B/oRQlxjQCu4oe+TuWN0yIq40i+rPJ1MFxL4/qnr0p5LvJJLTzrR40wvi1kqUfYkHa/rSU8vSaZyoDOJk2k0H4seyzB5kFF4PQjlZtAf3YWHrHvLhkMzQMFRcdsNo6wgKAfI8WxaRU/nzxF920yxMD7nzhKzMY9bElzw+17M5QQx01O84s1oS02L/IndbsAIbZ0t2jqfJBJ4vlyIbcHtx/P09S0h03JPOG/QWu92/QKspZa/YMJGCyqq9VfN+jgjxn2SFykXxGv9M/lx8f+dGHwveJxtyjEKgmAAgNGX7omEB2gxEIIc20UlBK3QEjxUh3XP/wB+8LZPxH8NfnJ7nYODSOwokTrJwnlRuLop3VVqjdZDpzd4enkbTT6+ZssG+1sKuQAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQgUgZgHzGAAE/gBPeJxjYGBgZACC2wqnqkH006bXSTAaAE5UB6oAAA==')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,d09GRgABAAAAABV0AA0AAAAAHYQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAVWAAAABoAAAAcpiahQkdERUYAABU8AAAAHAAAAB4AJwBST1MvMgAAAaQAAABIAAAAVnXoGRdjbWFwAAAC3AAAAQAAAAHKvaaCI2dhc3AAABU0AAAACAAAAAj//wADZ2x5ZgAABHgAAA5mAAAUMC2JcZdoZWFkAAABMAAAADQAAAA2LYoapWhoZWEAAAFkAAAAIAAAACQGVQLZaG10eAAAAewAAADtAAABMJWBEb9sb2NhAAAD3AAAAJoAAACas7SvAm1heHAAAAGEAAAAHgAAACAAkgBKbmFtZQAAEuAAAAGsAAAC+r/NfRxwb3N0AAAUjAAAAKgAAADMZ2e73nicY2BkYGBgYmSLUA9bFs9v85WBm/kFUIThadPrZBj9//B/NuaFTO+AXA4GJpAoAG2+Dep4nGNgZGBgevefjYGBecP/w/+vMS9kAIqgAB8AqtgHMnicY2BkYGDwYXBnYGEAASYgZmQAiTmA+QwAEYgA3QAAeJxjYGTMZZzAwMrAwNTFtIeBgaEHQjM+YDBkZAKKMrAyM4BBA1DQgUGBAQYC0lxTgJTCb2amd//ZgCrfMfwC8hlBcgAEWgyDeJxjlGAAA0ZfEAFE9gxljC0M/kBswczJYMEoypAIlOMG01+A/C8MWkAcCaVloLQWWP4GgwXTLAYZpjoGJ6ZLDAlMoQxxTJZAPAvIP8IQB1QTx7QNKC7LEMeczZACFEtgegDUUwekW4FYm0GHaQWDCtN6sB4+5g0MfIwKDGlALMb4gMGMiYUhiHEPUJ6FQQVIKzMaMkiD3ADkBzK8Y/Bm5Pp/mPEFQwiQHcgsxRAIEgfKy4H0gfWEAvXXA92cySAMljvLwMe0GmjHWaC/gWzGTUC5G2B/JDFzMXwDYSZ3BmkmCQhm1mWQBgDbUTexAAAAeJyNj8lOAlEQRU8ztLM449DoAwFbcUQExQGQIaIb48aFccFv+EV+iBsTTZwWBjUhMeEnXJSPhmjixq6kqm5VncUtwEs7LQxacaMnw5l9XOseR2llEmaRJCkyZMlRoMop51xwyZUKqUis+eUV0bzCJqG5dIcrcsKZw9WU5XCIyKd8yLu8SV1e5UWe5Uke5UHu5U5uG3YjWq/5jzp+XIRh8gMbHl08fwH9oq8t/SZd3T29ff0DgwQYGoaR1nqUMcYngpNT0zNYodk5FSYyH43FF/TN1p/DUmJ5ZXVtfSO5mdpKZ7Z3srt7+we5fOGw6NYmVNyjUCr/6urxf/Q3qvw53gAAAAAAAAAAAAAAFgA6AF4AgACQAJ4AqgDKAQgBIAFiAX4BwAHcAe4CFgI6Am4CjgKuAsgC+gMSAx4DOANKA3gDkgO4A9oEAAQ+BFoEeASUBMwE3gTuBSAFSgVwBZwFyAXsBkwGbAZ+Bp4GtgbCBvQHFAc6B2YHlgesB/YIFAgyCEwIfAiUCMAI4Aj6CRQJIgk8CXoJqAnQChgAAHicfVgLdFtVdn3nynqyLVmyrJ+/sj6WZFmOHevpZ8mS7fgvOfJH/smf+BtCQiYQaBM8TZyQH4nBTAhpZzKTkKENQ9pAV0oYh2bcLGIWC1zCdKDDpJ0ODatdUJjVmWkXZKYT8HPPfU+xE4Z2Lfu9J+nec/fZZ59z7n0MYXYxDLNE5hkpk8EwGonO6pVorF5uKb0hPZFIkHm+xOWCXyxHEwwwHSsstJNfM1qGkVrtao8/IvFzrIzVaY0SaA+/VpldWpGrCQ+4yotKqotvX4TG78+42vx5OQPT+84Nf39yqAQXQzsBtOMV7di0MqVEZvX5fV5PhcTB6cF7rxV9+LXbX7Wiv3jHzkvkXdLCaPCT1mpWay1etdni4cxqj1unNpN3zfynpfwnZjPkloIBlKvPuWYz/4loY3zlIPMKk2BYhvHLrH50/ZUyZ15eAmb2JujvcuYaaJkvGAliNXvNoOV/BxnXguJcvNK5+BtHJyJhq/79CP1T4QetDFirxe71+MHHufXwIyl/gVWlK6TQS2/k59KsL7u1inRpluSvtQqKiTBlK7+EJfID5McuWFCC1VIBDmokAmjEoCfZjgqJ1UKpN+g5tx+WSnOTflOoVmOxFw67y5OFFXENm5HvKug0qdXF3Z3F0Pztfk9QG1yXeOo7PRFfpSfJ/weQgEpdqt/s/5P94R0PiHwk8XIe10YoTvByalbm9fk5NQfn+ct7uc6DIe3eIEnXk6A0vHwSx5fh+Gs43iWMr4WIxOuxWy1KIrM7KoiD+qzTKkEm/nFuXwjgGr9zz0ZjUak63mBeX5yToZZCWoa04uTYH1tNpozmTNlOzTfYXHa+bk9LcXHAZ4wM5VVVWnKlwCpk5/YOOmI2U0ZNBrsjG0S+ChHDDXKcyWSUGCUratjs1SBmq5qVwI3JDv53y0OTL8JrFy5cCKMfA7Cnln/9Lp7zmXKqRFQy8oz4EbRBh06wMgpf5nHQZx2rM0qQah8sFVlDiUJvsKzw2W/4Oa+ndUtG4+bm4W6DJRJqApKR67FF7Ln/GuxwNGZXRme6zrypDen2/lFibrLdGdlUo8g2lLWUR5wi32UrtxDDcUErSky/bA2u5QJU2pK1Ibqu51fTyMRVOEs6HPefemsbdIIUWhC7oD1YQO3JMG9RfeqUAhOwNcE3JigvAbR5llxDHeUKOmKLwIoawlRD6QihkeAkOFu9peFh687eGkN88L7kdzDr7a3r+x/2mS6Mm8pH/LXekeXTiRTPZAZrhYxRM4zZ6jDLrMBpJHaHlaXBJTPD7fwHG6MgHWgZKpIA681T5l+/jjUkDpDQm0+22lsEnzes3CIxssiYkHWBdIc9209J1xtQNfa7dO3zk1ioxNZweHTTptHDPqfLrXQ5HdxYU2Nj09gGq82/riRDvnUrlG7bmp6u7TYqFH3935zu71PI7Yh3DPGeQrzpFC9oWSwRZhpPuwvUqERy6tI+/vfA7r/UN7vt1Klts9D71Jtk/h9OHPzB8pWziHMTzi8jl2h9cYLarMM8doHOrDOrBR2TMt4DVy9jfGYhys+/iw8z5FI9/CrMLwOTmq/E+Vn4YW2uFSuT8iIOPggV/HtJuEgehi/C/Bs4MMVN3x1u/h9mvBg50je1Q2SmutJToSovdwVEZppqD71nrxJ5kSvzum2qbJEX3fPhFK7NyIucRlFNEXF45cjmJH8hmYTeJHUHw/YuVDIpP5jLOF6oc2rucjKJH/B7yu8Td+xIZDpqBzggTwzfOtzbCw+M8J/D9mP/jpbm4BH+13dswWc4hxU4xSS1wWf8A8kqkJP55VkijJliGAmLY/IEfA5WBRIrVRkFatDoDZzPr+EkLKrKuf5w28m6dIjvtJzJk4Gi68DDZDuwu/bx5+DweefySTLfz080FXveg4SYbxTzJNrOEjCLNjUGxEEm99xqgLhwgY+PLT+NsPOPkQdpHq38krxArmN90aONbLGeY1Q0HqEwaPVUTC/87b69V17dPzN2aCh5+ODw4CH4nP/7n/7j6e/9E3/6wJ8/d/DJv7nIpDTZjOtnUlWhJlGKiOBuVTYf3fRC8vebj3aNd83NJUbhP3t28zfJ/KPd9V38B4k7NrYKPugFL6yiCR1WMP+qma3JhWf7/nvbiZGNyYme48d7xyHMv07mH4yFJwzz/hj/ZVTgoxxr4GfoW6lQAVFwfuqN1+PAhiP2HJ8btSf4aTAC/dPDZ/vHpneoxnbXd5XpbPXe2iLfzFsJVfvIhk6rrqSyvdbs/bvemaaurk5PdUmOKjuroLi6Ob7b3VnXWlllzFHJNYXWIK6N2wFyiFwUap+QH+hHqvqRQ0cwQ5LJQbweIWPkQVg+Th6CelFDGI8u9F+dwmz3opCEKOAD6Xr6vi1/mhxvaJyKf7r9mWe2wzu8e3TL/Zvgx3QudgjypKjZDKDlS5QTeZL/zTD/m5GXfCxkDB1GLUYx/nXHjes/gb7UPMlzOM+IH0Q1sjK8o3ZSetQYoRjok+S5t/sfWY9tv26q6+2+rkobAWnrYNdEUYkkDdi2IWobnv4rN3eTfx7X+PiF76oDX0KAv7B5TqOt/gLEvcV9uIfIxD2EjO611BzNLcg8d254+Lbkk/CXJ4Qx+hWWuSKOMaQ6wBUcce52WLIjjDrxYW85Be+gSkxUJ96UcP1ChxYbgE7mFQWMfe1ULLw1GDjzqNvW1czGuptH4+/47ZXFlpLKLldtA3F5w+4NrvHYmUhmk9Gq0Yi9txvX+BB5UdJsFRUk1AGxc9J1dDQw8OGO9tZIPNaabBqJd3sbHdaIf/Dm5OPVFUjBz0LHRvt7Qh/U9Yo5WoI2zyJug1gD7TTXsABWoEiUIKKFs9Hk8J7pyYq6ckVpjdPdkL8x0t9Uys1ePZ6TV5+fE4i5omM+xEdtvSzgK7ibAyypak7iXc1fdP/leH2idWpLtHNDLG4P+Qe7fGUms6f28Ynxo36wL7//lr8n2ddbaBT9tqLdZxFjjuC32Yj7Mr9hzbheQMvK4Fn+bdJb09PItvYPzuxKDK4vrc5oLHe1KP6lbSxQ75mdHJ9ti3jqIs0B0XdECUPYs9F3EPZRRUCDb6XBFU3DkKMsK9+s27kjFo2OtpSUk0fUUpU1f3eQn4EDwcHouBwrdeGKGz6CN5l1jJ9pFm2xVgetERgh9DkEbmOaTpvam9rxT7Tu41ihqlFSNB4XWHBTIqQWfOTMUXDyNPNIg9spDw6o8wJOV+5jI8OP1eUXmTfV+0ujPX/htVn8fovtW48P6k2qdEjWRpJwFGW/zt8wVqTUewmrKeTM1R0dgXq7acDpCjSOmkz/vN3jfsjN801KdW5GmqW8nPLQhZdLGDet0AM8dLdLty+isnRwKQ5yjaPAUxWPBfqOgVWpMeuyB0O3UE1LrWcwPjFk8xz5lrg/ol2Lbu1Px2Lp2OAWvpmkMVx5fYVjXsUxKlqLDavVL0KwjND++mrMHQnqTGWZ2kJ1LJkMNXRYwsVpWSYDAbQATI+w70z1P4fY//ycDG50n+5san178PyHiTkE5PvJi2Js0Sfm9FofRTRiH8XvyRLGypLylaR8XXvidGJs3DqyFJeqXWbOfefWGhyYKgyMIAeawhItUrD2sNi6sbv7zOracAnX+AM+dV/hs7V64C4+YbGl/QzVuxH1/j7qXS5kpXZV6WKSp5ogvP/YUPLA/uHBx+I9wUBvT3Uo8YvxI4cnJp+aG0z09/X0Do+INSMCHyIWISfXaoburpohbHJo1YhFw/FYy0hzMt5RvaE008oFB25OHan+LzJTVTO7qWkyuKRVVU6IOVmCdl9Gu9m0SkvvynVsWl5OPJjcle4NPS0TO9qtGwoyYjFvZfVAR3XElrn4efjo2NSR4nx5I//Gk7boWLR5c3WWyGE3XlrQfibdq0OKPT+0RMdizXUPwiEyHvsZLA6NAo4tRL7uR7444Yx7R1rCIRePRQgrgocJobHS07OBNg9jGty/3tXWOaBo696kVGOjtOSbVb5ihz9fFWtS1MV7Fapivc5VUSBJS89MZ/c320zljVVNqlylIk0iY7PkzpAN99zEVG+PKPVZcjYtPSc3LS1TrckT8GsQUzsJUbXTuuoVagqnw/qi09Ka2t7Wlujpb5qb46qcBfYDIA/u2xe8nTAL+sG5l/C8kbNWRe9qunAp1rAtVBkvquKa4utD4RB08D+0maq9YBF7J1zFuXKxd4o9txbg6osDL8bHS1hI93TAAt+I/8sTlsqjP0n16dM4p0CY46D9VgU41yDOvXMnp48NtOFZI80Z6TjW7qmSgrS8urneiXdnHbX5P6PrKh//MSy89JeVNXML7x8rLT/yU+oPJeS6iInmrtXv4Aw0d68n/uzp7sWFxOyR7ssLCx/deP75GwJ3yhVO8IGepCT0QF4JtFRALSAmI0EwGrj680KvyWZlS+2ZCoOiZLHDl26ukIDkACwsf9q0Lr0+O62gYBAW9uZ0HjE2QYTapWfXE2hXLZyfIbX90YF4Uj7Bz4I8jnugJ+A+/re9+PCME5IQcvDnU2ffcfgYdgn76SzhHIg+cAbx9kqCvslYFK7wcffM3gT+0zkTOGf36hzxrYdBvP1QePmxKFzJlDhFeA/yW2aaaOHb4nsQPMFo+X8D4zQYqb213+Tir9hCaAdxi6NKa/pqavpw7BV6rxFxY1zJQ0Kfc/2fnU56z9df3/xAt/rF1/fChtUviJ62RkRJNbWEa9PeUET3nlgcMJdl9ywuvADAtWEpkUiLxc7uwgU3BgrMhaZc2zSZSiy3wYK4ylB0TN6YU+KaTvkFb6BtHd0XwNda1NC9nP0ee2djMTiwaqxBjcb4RoxQmsDTzRTWPKbqK2jvsev4ehbJzTsObAyYCoXlls02hT4/e5pi6K0rMa+5QwzRscxGuv5lNauy5D2aIjI2hswx/wvU2mmiAAB4nJ1SwU7bQBB9a5KIVhXiVlXqYY5BlS3H0EjADZQgRSSgmERcN7BJrAQvsoOifET/BHHnW/oL/Yi+rLc9pLd65Zk3s29mZ2YXwAHeoFB9479YYV999jhAQ0Ue7+Gb+uFxDYfqp8d1HAQfPW7gMDgnU9U+0Hp1UVusyK97HOCTEo/3MFbfPa5B1LvHdXxVvzxuQIIvuITFMzYokGGGOVYQJIi5jhFyVfiU3glZggtElD1oPGDB2DVK6ow+jRyPbi9C37EGbr9ibhlN2rnLZHiSxhJTWtbJO/ruqUdI0cGQUnBFfUPPLa0jZsSlfd4U2Wy+kiSOj8OQ8lQmG7mIpKcfFnZdLjLR+aP0on4kA7umM5OmzWVi5no5FTuVO3Mvo7QzTOVqeDO6TY+Y95oFp66BEi22i+t+qvOyRbTtocCTqxYDWzxp6q5rZOV0wbEZN7SIkYIz/rv5QjZiyHthEs2IitWmv+VHnNBC1+arri1mRpIoljP5U0U4NLOXpS7oaoctdp20/6159wzsRm/fouFGybuo7qEqOcYJMcamKDNOikfHJ/I/+X8Dcu59xXicbc07S0IBAEDh797rlGEPi0hwiehllCmVOkhDqb2zd1ZL4IVAqiH/QEt/KPf6ZXVp9sBZzxH65/fDkmEcJQZCkZS0URljxk2YlDVl2oxZOXlz5i1YTCrLVhSsWrOuaENJ2aYt2yqqaup27NrT0NSy78Bhcjl24tSZtnMXLl25duPWnY57Dx59GfgMwiDy7SdIjby+dV+e+r1e9z2M4yiOn/8AXXgZUwAAAAH//wACeJxjYGRgYOABYjEgZmJgBEJvIGYB8xgABtcAenicY2BgYGQAgtsKp6pB9NOm18kwGgBOXgesAAA=')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,d09GRgABAAAAAATYAA0AAAAAB0AAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEvAAAABoAAAAcpiahSkdERUYAAASgAAAAGwAAAB4AJwALT1MvMgAAAaQAAABFAAAAVlQpf9pjbWFwAAACAAAAAEYAAAFKQxjlbWdhc3AAAASYAAAACAAAAAj//wADZ2x5ZgAAAlQAAABYAAAAWNTgfARoZWFkAAABMAAAADMAAAA2Lgwaa2hoZWEAAAFkAAAAIAAAACQFyQRGaG10eAAAAewAAAAUAAAAFAZOADdsb2NhAAACSAAAAAwAAAAMAAAALG1heHAAAAGEAAAAHQAAACAASAAfbmFtZQAAAqwAAAG+AAADTjuk55Zwb3N0AAAEbAAAACwAAAA34MBQwnicY2BkYGBgYjhyT3P78Xh+m68M3MwvgCIMT5tep8Np8/9fmdcz/gdyOYBqgQAAs/kPOwB4nGNgZGBg/P//KwMD8wsGIGBez5DCIMmADFgBhToFFXicY2BkYGBgZZBhANEMDExAzAhmO4D5DAAFkwBoAAAAeJxjYGT8wjiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQKwA4wSkuaaA+IqTGP///wqU/M/ADVXDAAB8Rw3LAAAAARgAAAAAAAABTQAAAAEAAAPoADd4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYFBQn/f8P5IPp/4/vFUHVAwEjGwOcw8gEJJgYUAEjxIrhDACLGwmnAAAAAAAAAAAAAAAAACwAAQA3//UDrwH/ABsAAAAUBw4BBwYrASI1NjchIjQzISYnNDsBMhceARcDrwhRbg4CCRILGXb9CxUVAvV2GQsSCQIOblEBAhACHYFUCQ2PVShVjw0JVIEdeJytUstq20AUPaPYhkJJF110U8rdFBKKhCxTQ7KMiUNN5AQrLt6OY9kWtjVBUjD+g3xMKf2n/kiPRtMuvGg3ldDcc899zD0zAnCK71Bonq9/sMIb9dFhDx01cPgEkfrhcAvvvLcOt3HqfXG4Q/6Fmar1it43W1VjhQ+q7bCH1+qzwydYqJHDLQTqp8NtvPc+OdxB4M0wgMETDiiQYYU1KggihHx78Pk2+ILsnFmCKwRcR9B4xIa1e5S0GTmNHAsbCxDbrLGNN5l1xhn93HZKuZPGFkt6xq4P5Ga0UyS4xoSr4Ib2jsw9vXN2xMA8HYpsta4kCsOe73O9kPlBrgIZ6ceN2ZebTHS+kFEQBzI2e5KZnJlc5ulab5dilvKQzmSaXE8SuZncTe+Tc/a95cAxB6o4VkKZO45oOF6JLsXjNo51tU4Ou7nZll0StbCCWbUEjE2x07RDq66ytuBZpvYkAzYQXPL7+yY+taaseiajWd/U9Ml33S1E9DA0eTU0xSqVKAjlUo5G8yfp6nmrC0b6fpfnE/X/pe5442O1v1vWv3LKeMmrbK6xEVf/KMJgWpQZD5pjhT35b5v+AjbglOUAAHicY2BiYPj/8dvu/00MGgzYACsQMzIwMTAzMnElFhXllxdlpmeUAAAapwmuAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH006bX6TAaAE6GB7QAAA==')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,d09GRgABAAAAAATMAA0AAAAABzQAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEsAAAABoAAAAcpiahUEdERUYAAASUAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlQrf+hjbWFwAAAB/AAAAEYAAAFKQxjlbWdhc3AAAASMAAAACAAAAAj//wADZ2x5ZgAAAlAAAABYAAAAWN7igD9oZWFkAAABMAAAADEAAAA2LigacWhoZWEAAAFkAAAAIAAAACQF5ARhaG10eAAAAegAAAAUAAAAFAZqADlsb2NhAAACRAAAAAwAAAAMAAAALG1heHAAAAGEAAAAHQAAACAASAAfbmFtZQAAAqgAAAG2AAADQt/+T5Zwb3N0AAAEYAAAACwAAAA34M5QwHicY2BkYGBgYjjSsOa+cjy/zVcGbuYXQBGGp02vs+C05f8vzCeZQFwOBjAFAJx2DgcAAAB4nGNgZGBgYvj/hYGBhYUBCJhPMqQwSDIgA1YAUiADTXicY2BkYGBgZZBhANEMDExAzAhmO4D5DAAFkwBoAAAAeJxjYGRiYpzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGIFaAcQLSXFNAfMVJTAz/v4BUMvBA1TAAABJZCt4BGAAAAAAAAAFNAAAAAQAABAQAOXicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUFCf9/w/kg+n/j+8VQdUDASMbA5zDyAQkmBhQASPEiuEMAIsbCacAAAAAAAAAAAAAAAAALAABADn/9APJAgAAGwAAABQHDgEHBisBIjU2NyEiNDMhJic0OwEyFx4BFwPJCVJxEAIKEgwadvz7FRUDBXYaDBIKAhBxUgECEAQagVUKDo5VKlWODgpVgRp4nK1Sy2rbQBQ9o9iG0OJlVllc2k0CkZBlMCSrkhAbTGQHKw7ZjhLZFrY1QVIwXvSLEvJH/ZceSdNCS8mqGnTvue/HDIAu3qHQfPe/sUJXfbXYQUd9s/gAPfVqcQtHzieL2+g6v3w61H+np2odUnqroyqscKzaFjv4rAKLDxCrkcUtnKkfFrdx7HyxuIMzZ4orGDxjjxwpllihhCCAz9OHy9Pgc2pjegku4ZGOofGINWN3KMhT6jQyPNU2D2HtNantjWflcUI5qzMlrKSxwYKSqekddQ/kc0S4xoxUMCKfUnNL6ZQZcWWe93m6XJUS+H7fdUnPJd7LpSdj/bg2u2Kdis6eZOyFnkzMjspUTkwmcbLSm4WYhdwlDzKPrmeRjGbT+W10yrw3bDhkQyXbijjmli0atldwcNyEoS5X0X4bm01BuZoqp0vVPyYm32ryYT1aWfOci0zqNXpcneCC/0cVXI6ZMOaFsmZ0EzGgvmcvIKCEocnKocmXiQSeLxfyZ1/uLFm+bHROw8DtcTPB4OO5/q6Kf+erXnBCc8EbbG6vGat6H0Jjkhcp98uW/L78n4o/AYaLk1UAAHicY2BiYPj/8dvu/xMY1BiwAVYgZmRgYmBmZOJKLCrKLy/KTM8oAQAc0wm6AAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH006bXWTAaAE6kB7oAAA==')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,d09GRgABAAAAABHkAA0AAAAAGuAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAARyAAAABoAAAAcpiahUkdERUYAABGsAAAAHAAAAB4AJwAzT1MvMgAAAaQAAABBAAAAVlWZXv5jbWFwAAACQAAAANwAAAHSGI8bj2dhc3AAABGkAAAACAAAAAj//wADZ2x5ZgAAA3gAAAwgAAAS4GwnNtRoZWFkAAABMAAAADQAAAA2LCwakmhoZWEAAAFkAAAAHQAAACQEvgEuaG10eAAAAegAAABYAAAAZAkEA1Fsb2NhAAADHAAAAFwAAABcW5JgsG1heHAAAAGEAAAAHgAAACAAcgBVbmFtZQAAD5gAAAGpAAAC+s3Hpwpwb3N0AAARRAAAAF8AAAB8BH8FUHicY2BkYGBgYmS79/frlHh+m68M3MwvgCIMT5teZ8Po/3/+SzNxMW0DcjkYmECiAMARD2F4nGNgZGBg2vZfGkjy/v8DJLkYgCIogBUAaIMD8AAAAHicY2BkYGDQZQhiYGYAASYgZmQAiTmA+QwADz8AyAAAeJxjYGRiYJzAwMrAwNTFtIeBgaEHQjM+YDAESjEwMbAyM8AAIwMSCEhzTQFSCgxVTNv+SwNVbmN4ClMDAKwfCkMAAAB4nB2LOwtAAACEP2YWIs+ipBgtHrOBAas/afN7/BLFcdc9ujoj4IexfAamTcLBzkjJSSe6bNoifMnhotLWYDFT0FKTqq94DM+t1ksZE6EyINYnfwHgfApZeJxjYGBgZoBgGQZGBhA4A+QxgvksDBuAtAaDApDFASTVGHQYbBjsGFwYPBn8GAIYghhCGMIYohliGeIZMhkKGMoYqv7/B+oAqdTAqTKRIZuhiKHi////j//f+3/3/7n/Z/+f+H/k/4H/+//v+7/3/57/O/5v/7/t/9b/W/5v/r8J6iqiACMbA1w5IxOQYEJXAPEqA9BDrGzsHJxo0lwM3GCaB0Twggg+Bn4GAQZBBiEQR5hBhEGUQUxcQlJKWkZWjkFeQVFJWYVBVU1dQ5NBS1uHeIfSEAAAcBY3KAAAAAAAAAAAAAAAcgCiANABGAE2AVgBfgGkAc4B8AI+AmwCyAMEA0QDaAOMA54D5gQgBFQEjgTEBQAFbgWoBdQGIAZEBqoG4gcEB0AHfAfWCBYIUgiQCNgJMAlweJyNWFtsHNUZnjOz3vHe5rKzM7Oz3p3x3mfs9S7eqx0n68TxHZzYuZRcbMepa6TQJC2ES3NrE5K09CUBBBKXCkrLA1VFqwhMUh6QoA8gIVFKQgRCqkAREHioAgqiTZN1/3Nm186NqpH27M5Z7///33e+/3JCMVR44Vv0Fb2b6qL6qQmKQoF2xDpZpZCvFAt5HckBZzyWhleqVKzkq6gC7+VCXpEDrKKWK7EsKhV7EPxhupil4zGnHFDLTCqdSnPwUx0V8ugr01iuhTJmrCnMuIR8x7Ke7tWV/jjSY0y42nZbZk7sDvd4Od6c9Pr472in4JUiQr9DbNHdqUBzSM6hR/Tf9LYv6zZogW8bHRzctHxFJppkNqwZvH1dZd2O7GTlGZrndJofYiU9kDGXVe6ovaJ25pW2RExMJihEvbTwJzRPv0oZFNWE8UB8pWKVITA4xHK0HFBUnUbznBjYlpxoX9FfcIuck3X3ToTX3+lpdpZd0ljxvhPDRzf16ZKL9TSx7ft2dU2d7Glu8oD9TWB/BuyHMX8cY5NVBWaydLrOl6qgGWJX4NXJcU/r2m6BF7AzlK9b5fnqy5tb+384m3LzxB0F/xCcyhb0Nu2iOikqSc4ilYaoY+CAhaWKelHdhYHgPQ/nUoGFRzoNLt+WOHfLRhfTxxwwXaxr566gxLm4neRZ28lWsh7unFcWCk3pdW1t69LDURfX1NTT45O8squ3sefnexzhYDNrx5OiJtDntERJ8ARagVBWoHgMNADOI6iAPs8dHzyewwvaOHgilztBFvu3ryzcj7ZQB6lAHQumqVyxP2CS0JbZuDcQ7uHd7lAiFol1asOTAW+gOVBl4mEt2YVtdFFd6CydWbSRTqaKlWRdkj6koLOKzy3UXvYraERw+5Rg7VNkBLcKkvvvvgT/N7ckSPz8PE/dYIsKsE31iDqQHY7aBLZqp4gRZNQ+DWLDaAz1X2NGwnbh1zTmA31Gz1J+qgWrwNmOYjgzxDh5yytsMdWOxEK+jD7bP/OuZSmKZb07s39gy9qZmbVbUMeBk7qBvtSNvxyceaqmPkriWwvL62BTxVjj0SWDhSicMTGHXrdq5y1r507LQhHyruuGjr40YK2pYANr8iLYqNi5LWLOsijNxEU7vSFOO4fFeCOZFVUqEDdVRFIbXTQ1URN4v/M00iBJzbvxopGP/araDLsm7/PiXbpfrzEtHCOI6FItaaclB+Hg1afWvOhjneNpGtMPnIUgpk8gtiDVik8AOJMLBNj11GHm4Av0yY4NB3XLOmwBRsv6ZH1ypO/uu/vQt4/tPm3omD1D/2zyjku2bWXhW9oNtpdDBtWVguEBdNtaHbsNcgktqAiqnwpvOl3Il0AGdN097e5oK4V8Ttrlae1cQ8A/iGFrBPzJjbvMjjjnQk1et4Si8WeHVw4Pr5xK9GeVzq6QGnKHz2EOMHo4ZVjnVifHtHBUHQqFolwHRLOu7xw+c8zJNxB3O6klkFopyK+bz0pufAdKjULU8BtRUD1Hiziul/BSPEZ2BA39SuPR1z6OkwOlmrp0JiWyNaIJYhD8+hf+hS6D37a6X4ajbaE0VEE8SopaKFekxh66LEjKUYdfEP2C0HRUkQTrLkvwK9t9TcgZHVP8+Jke4Dn66nd+gWFEP91Mc7yuw05tfymRPoby+Bn8/2PhJXQeaqiKazQATZXEYpnIr6500OF5c17jheA8hvfkk7CWdDFInwqKGNDVe0BWiLLATrZhx3krdcsoe60NbLPNNkGfwCvQgWvDwmZ0duE5CsqeA+ce5Bw6m6u9mcuh6vbBQaKx/MJlmkWnqSSVxxrDJ1JvleVKMRWPsdAEyTFBxuaVCIKumi7hxojba5WmWV70b1SXbRrd+vtf9y9XON6JwrwUenR2Vk6bf/jxgWUdpYTfzxjAVmtqvDw4RhcKCDmcmhxURqZXfNg8soHJJ/V2sVkVcDzehcvoApxhC2U2NA9BYeCLuRRBuFSyODpnBOFAyujC/vV9eVpoFekO0xrR+PLI+J6BsUpudHmpsvHD6UMFgec4zoeu6oYYfLXz8GTfdH9mpGPrJOZpBHy+DxwkCAM0AVulcRpj98V4jHRXjBcPA+8L8dHbpn6hFadXPBGS2tHy3ECUm1o5FG7iuPguV7RdP7I1MTKUGZG1Tleiq1Ppn1rONWNsCeCaAmwRrNCkrZDFzqGWGvhkEXNM4BG3ZZqyRsLe8vD4ffvW9xVsgB3m0325ysaxcmnAMAJ61+HJ6UMdz2J0NebYUHv/5EDf9FbwWQFs7wG2MBVfRFeffuBzFI83BBZUFvDHovcC6dHszC9/vnlqzunzuGvnvNt61oQwtCHnYK447tnliVvhI6eP7N3qE1hUHQVs9w4uG6kAjzjv5ukdVIZ0D3xmwBw01KUEkK9rAbjhQihovqVVZkU1GdiHtbxvzrJqX1vW3Jxp/Whq5QzdEQjKfgfji7fksLZr7+DGgEq6UaoOgYYZKrLQgq6i16gC1UutIb7xfAQ1sD75yVAMCwpQq5JhkHTI+gsTv6Qmm27JHgNZ/AjSuqrxnqAjqoVmBkpJJ/J45WZ5cGs5Hnv4zYdH1UArbGdyPcnEK11muhu/dsaG89nuVr9112N3oaMBWfAzXHtm9bTG+xQOCJF6W3s3rF+5tsOw0hGrvGqbHo8eNZf3tMGr9lc9xTMObygTK5WwNr1YOKCZjrpibNZs6d+q0ZDkwF/RlPmUBQ5S2bUZy3zOtDK2cEprHspA89GN8zlrsP+k3XWwbl4rPXLB7juYw7foKUoGpd7QtRv6pDGNxXIevWXVPrKsvfdY1nGN32Edj7RFIm3YPCoZUIZqp2gG70QwFhmWK4Bl2SIWUF6alb+/i8tiZbGt4b9gVZDLFesBk5eUB8c7sVyexksn+bhK43+XxJ3sacuK73/CwDCh7jwzOnF9F4ewfvskbmCGvudNiAviQWduNaM00ELdPmPWTpnW4YdM61mNfwi86YvE1RgyDKCFK0CeA81j/pbwNQ7r2m59601x6Sai1nWp0+RvaId1uyXwPr8U7cQN6rqHTRY0MPyh1evjUDpXUpNVw+QcsKWTZv1lNjHS+zLpWdc/ATeohD/RHJcoFqMVXfiG5uw5l+gOsGT+T93J/1N2Ye+tZAcpLIWJ6miqG+rUGahTzTB94jmKVMW8WkzF6ml4Zu+Le/e+WJzYPTH+03FUeu3woempIx+t3rx59cDsrK1b70IMXYCYDTtqnPu3HMbk7+kf1wQc4m7qIO/imGlJN/zaDf0DJj/0BfhtW6w9DZZATDdpmmQo3NS+0ER/EG3c9hMod//B8p2YwOtujR+ajVh+Fj0oBUP+e8YOGrZ0S7Z0YxM+WbLPaBg4ewc46yOVnbE7N4xTuJ7jkpcvk+tb1mHfFFVyRKTF4xGS1DsDbhvvuDRrsGNN0avpMG75fY7I7MqVwZzRkrCqUY0Npodv6804g/hLTmCQc3pVdXv/8weF1mTYn0pZ22EG8wmbTV1qEVmHk5WCVsjXEgv5ZdkagO88Xk9XTG2DKRPHrEHMb9BtVJacEJkM69oiUS91C3t6rda/gAx8Y3rf+CbTupOMhC9gql5gfLEWoTXKwD1UpH9eHVy1+pJurCMz4TrM1j85KcK74mEP5+N8dV3jHoz+vFhP4VSAtNI16W77pRuB1esdtGBwmR84bldR6EZhPmpqjWZsGDTPp36GKFIQvhFExc1KmdYPyOMp8BtcuIIugV/LvsMsjqbX3FEw6hYUX6oC6JKp72kK8ABIcu7RcWW7H+MO79oVxu/4AT2i1/7ICzQtCGiDfTGBFvk66rNLHsGMb3MXwXfl+rq7VHx6UCVdR0tGZLWyNDHXi+5F634TRr3NPwiI4NiyzAMPmBbeE8Q7RsX63r2HzHrN3b+fVBjj+cehV8Pz3Bx+NvTHn8f3g4Uw4aLa4MKxeH2W2XIF/4dA8SZmVDy2995IzzMONmwUwolcMCAFmwoRp+RkHceNRaq0KYlGzf7h6/jq9vgLsUhnNBAMSgpT8VRkhXGjuQZ7F4tsrPjBNfxFYfkY4iVTG2undLmCbrjAkNmCRdG6kmX0sVI7BkfH8qjr3417zAayUXsb+ciOFXfCwfm8PDJDRLZZTbA3ah+myAb1Xz7nNF14nJ1SwU4iQRB9PQJxjTHeNpt4qKNmM5NhVBL1phET4qABIV4bbWACTpsBQ/gI/8R491v2F/Yj9tHT6wFvTmeqXlW/qq6qbgA7eIdC+fU/scKm+ulxgJqKPN7Ab/XqcQW76o/HVewEWx7XsBuckakqP2i9uagVVuRXPQ6wrcTjDfTVsccViPrwuIo99dfjGiT4hQtYPGOJAhlGGGMOQYKY6xAhV4lP6B2QJThHRNmCxgMmjF1gRp3Rp5Hj0e1FSB2r7fZL5oqxTzt3mQxP0phiSMs6eUffPXUPXVyiQym4or6h55bWATPiwj4vi2w0nksSx4dhSHkig6WcR9LSDxO7mE0y0fmjtKI0krZd0JnJvs1lYMZ6OhQ7lDtzL73uZacrV52b3m33gHmvWXDqirOos11cp6nNbZ1o1UOBJ1ct2rZ40tRNx507XXBsxg0tYqTglP96vpCNGPJemEQzomQ16K/7ESe00LT5vGmLkZEkiuVU/lcRdszoZaoLuhphnV0nja81r5+B9ejVWzTcmPEuynsoS45xRIy+KWYZJ8Wj4yP5Tv5/iA595QAAAHicbcy7DsEAAEDRoyahfEJjsjA0TdNYRBrqGbTi0eBTfDuN2UnuegV+Pm9L/0yaWgJtHV09ob6ByNDIWCyRykzNzOUWzaWwsraxtbN3cHRSqpxdXN3c1R6eXl8VLwvPAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIdIGYB8xgABYIAW3icY2BgYGQAgtsKp6pB9NOm19kwGgBOrge8AAA=')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,d09GRgABAAAAAAokAA0AAAAADjQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAKCAAAABoAAAAcpiahYkdERUYAAAnsAAAAHAAAAB4AJwAYT1MvMgAAAaQAAABCAAAAVlauYX9jbWFwAAACKAAAAIcAAAGCJhM/YGdhc3AAAAnkAAAACAAAAAj//wADZ2x5ZgAAAtgAAAUiAAAG8GRmC1poZWFkAAABMAAAADMAAAA2LKsaumhoZWEAAAFkAAAAIAAAACQFUAGIaG10eAAAAegAAAA/AAAARBfoAsdsb2NhAAACsAAAACYAAAAmDdYL/m1heHAAAAGEAAAAHQAAACAAVgBHbmFtZQAAB/wAAAGwAAADGLFRkkBwb3N0AAAJrAAAADgAAABGAecCiXicY2BkYGBgYmTrNlSdF89v85WBm/kFUIThadPrYjjN/N+YqYlpG5DLwcAEEgUAUbIMJAB4nGNgZGBg2vbfGEgaMjD838DUxJDCIMqADAQAdU4E23icY2BkYGAQYnBhYGIAARDJyAAScwDzGQAK8QCeAAAAeJxjYGTcwLSHgZWBgakLSMsy9IDo/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/20AAHicpVLLTttQED3XJIhuUBdI3bCYZWhlxzEoEiyDCFJESBSTiFUlB5zEiuULdlCUr+BHEL/Q7+lPVD2+vs2Cx6q+8syZufM6YwPYxysUqmeyxQp76pvFDmrqu8U7aKpni2s4UL8trmPfObR4FwfOmJGq9oXWi8kqscJXVbfYYX2xeAc/VdPiGhrql8V1HKo/Fu+i4fzAOTQesEGOBHMssIIggM9zDJenwqf0Thkl6MCj7CHCHZbMXaOgTuiLkOHe3Hnom6hrc19FlhEN2pmpFLNThBQzWtrIG/puqccIcYERpeCSekDPkNYRK+JcP2zyZL5YSeD7x65LeSrTjXQ86UV3S70ulolE2b30vL4n13pNZyINnck0XkTpTPRMbuJbGYcXo1AuR4PxMDxi3SsOHBoCBVqki6t+GGVFi6jD+VLyQkenlF1DYWV0zoXFZl0ecwRnfN9WcrcFBqSdcg2PeDJZZXSb9y275IAWujpbdXU+jyXwfDmTf3O4ZffBNE0en2K6226L3IP2+8k/64ePKpV/Z0waBcOqL1NR8XFCjEmcFwl3x1H8E/nfXn8Be2uFb3icY2BiYPj/BYhnMgQzYANCQMzIwMTAzODC4M7gweDD4M8QyBAEVB3KEMYQzhDJEM0QAwA0gwhvAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQkEgZgHzGAAEWQBAeJxjYGBgZACC2wqnqkH006bXxTAaAE7+B8wAAA==')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,d09GRgABAAAAAATcAA0AAAAABvAAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABkAAAAcpiahckdERUYAAASkAAAAGwAAAB4AJwALT1MvMgAAAaQAAABEAAAAVlXGgpdjbWFwAAAB/AAAAEYAAAFKRYDkOWdhc3AAAAScAAAACAAAAAj//wADZ2x5ZgAAAlAAAAB0AAAAdPLyoUVoZWFkAAABMAAAADMAAAA2LdcapGhoZWEAAAFkAAAAHgAAACQGNQNHaG10eAAAAegAAAAUAAAAFAbyADJsb2NhAAACRAAAAAwAAAAMAAAAOm1heHAAAAGEAAAAHQAAACAASAAobmFtZQAAAsQAAAG4AAAC5VioE9Zwb3N0AAAEfAAAAB4AAAA0ObKyo3icY2BkYGBgZmheExVQGc9v85WBm/kFUIThadPrajht9H8icx3TViCXg4EJJAoAgNYNigB4nGNgZGBg2vp/IgMD8wYGIGCuY2BkQAWsAF/rA4MAAHicY2BkYGBgZVBlANEMDExAzAhmO4D5DAAGdABxAAAAeJxjYGS8wfiFgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBjZoABRiB2gHEC0lxTgJSC0jGmrf8nAlVuZciHqmEAACXuDCsB9AAAAAAAAAFNAAAAAQAAA7AAMnicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUlI79/w/kg+n/j+/aQdUDASMbA5zDyAQkmBhQASPEiuEMAMdbCdwAAAAAAAAAAAAAAAAAOgABADL/kQN+ArUAJAAAAQcTFhUUIyIvAQcGIyI1PwETJyY1NDYzIRM2MzIWFxMhMhYVFANx71wDCwgH7+8LBAsCAlvwDAwQASFaBgkGBARbASERCwFxrv7nCQULCa2tCQsHBwEZrgkGCAMBFhQGDP7oAwgEeJxtUctq20AUPaPYhoZQ2j+47coGWx4r4GATAm6Id8oihkBXRciDJbAkI40j/FNZ91tK6bq7/kKPxtNFoLqge+7r3DMzAN7jFQrnr8QvjxX66qvHAQaq8PgCn9R3j3vM//a4jw/BR48HGASanar3jtFPN9VhhUsVexzgSn3z+AJflPW4x/wPj/sQ9cfjAa6Cz7hHhQNOqJFjhwwWgiFSjOhnWNBuMCaOoGkLohUKGNefIuH5BDG95axhpUPnyp6VDdlTxobZk2O+dTssdy4xpbXOQvYXaOgrMu9wx/3d1pazHbPgiRyN2/vC/5aZNXtLp/fRTRunZEN9MZVrcuG+OpzqfJdZGaYjmS0WN2OJtF7IqjB1nialxInNTJFYBnvZVGlu7EmGt5m1h+V02rZtmBRNWNW7u9FY2txm8mQaU7+Yrayr0spjUhiJN6t4prnvAUceuxOJh+Pe0MVObM58wcBs8yP9P+Vrf1rj7jekZuGtvD3FOTPHhNHEvULECN3yNWUZiUItSy+BYD6ZTSIdzfGGBec68OzUNVRUuafrHvXare6IhQ2mbvKqFK2vQ60j+T/PX+K9eoR4nGNgYsAPWIGYkYGJgZmRib00L9PIyNkMAAuFAkEAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9NOm13AaAE9OB9wAAAA=')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;}
._33{width:6.240614px;}
._34{width:10.997340px;}
._c{width:12.359513px;}
._b{width:13.807382px;}
._f{width:14.937237px;}
._8{width:16.116719px;}
._1d{width:17.282426px;}
._9{width:18.429016px;}
._11{width:19.781609px;}
._6{width:21.691454px;}
._15{width:22.829639px;}
._2a{width:25.226054px;}
._18{width:26.566766px;}
._1a{width:27.970932px;}
._26{width:29.722055px;}
._4{width:31.241700px;}
._a{width:32.422412px;}
._25{width:33.771608px;}
._1{width:36.288314px;}
._1f{width:38.059304px;}
._2{width:40.911750px;}
._31{width:51.379102px;}
._12{width:56.488320px;}
._21{width:75.317760px;}
._13{width:93.995879px;}
._32{width:101.470063px;}
._20{width:112.976640px;}
._28{width:119.374981px;}
._14{width:131.654759px;}
._1c{width:150.635520px;}
._17{width:169.464960px;}
._2d{width:188.294400px;}
._22{width:207.070300px;}
._23{width:225.801959px;}
._27{width:245.183144px;}
._1b{width:320.100480px;}
._16{width:338.929920px;}
._36{width:340.474564px;}
._35{width:342.628575px;}
._39{width:708.403618px;}
._37{width:710.803134px;}
._2e{width:729.992988px;}
._38{width:752.521989px;}
._1e{width:808.802776px;}
._2c{width:1055.146834px;}
._24{width:1109.973528px;}
._10{width:1221.507954px;}
._2b{width:1224.672680px;}
._29{width:1299.990440px;}
._30{width:1381.706602px;}
._19{width:1427.594342px;}
.fcb{color:rgb(57,75,79);}
.fc9{color:transparent;}
.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);}
.fca{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;}
.y0{bottom:-0.500000px;}
.yf5{bottom:5.556000px;}
.y137{bottom:6.672000px;}
.y1b8{bottom:6.767000px;}
.y178{bottom:7.768000px;}
.yb1{bottom:8.440000px;}
.y155{bottom:8.988000px;}
.y16a{bottom:10.651000px;}
.y169{bottom:10.652000px;}
.y8f{bottom:10.936000px;}
.y56{bottom:11.877000px;}
.y10{bottom:13.018000px;}
.yff{bottom:13.247000px;}
.y1aa{bottom:13.741000px;}
.yf4{bottom:16.440000px;}
.y1b7{bottom:19.369000px;}
.y160{bottom:19.972000px;}
.y12a{bottom:20.864000px;}
.yb0{bottom:21.043000px;}
.y36{bottom:21.252000px;}
.y147{bottom:22.014000px;}
.y89{bottom:22.453000px;}
.ydb{bottom:22.901000px;}
.ye6{bottom:23.200000px;}
.y8e{bottom:23.539000px;}
.y4b{bottom:24.176000px;}
.y136{bottom:24.351000px;}
.y55{bottom:24.479000px;}
.ycd{bottom:24.729000px;}
.y184{bottom:26.343000px;}
.yf3{bottom:27.324000px;}
.y22{bottom:29.907000px;}
.y1b6{bottom:31.972000px;}
.y154{bottom:32.017000px;}
.ya3{bottom:33.162000px;}
.y168{bottom:33.207000px;}
.yfe{bottom:33.297000px;}
.yaf{bottom:33.396000px;}
.y129{bottom:33.466000px;}
.y70{bottom:34.076000px;}
.y7{bottom:34.633000px;}
.y88{bottom:35.055000px;}
.ye5{bottom:35.802000px;}
.y8d{bottom:36.141000px;}
.y41{bottom:36.476000px;}
.y35{bottom:36.834000px;}
.y135{bottom:36.953000px;}
.y115{bottom:36.999000px;}
.y191{bottom:37.024000px;}
.y15f{bottom:37.033000px;}
.y54{bottom:37.082000px;}
.ycc{bottom:37.332000px;}
.ybb{bottom:37.416000px;}
.y1a0{bottom:37.791000px;}
.y109{bottom:37.806000px;}
.yf2{bottom:38.209000px;}
.yda{bottom:38.482000px;}
.y183{bottom:38.946000px;}
.y171{bottom:38.990000px;}
.y4a{bottom:39.757000px;}
.y21{bottom:42.509000px;}
.y153{bottom:42.901000px;}
.y7b{bottom:44.323000px;}
.y1b5{bottom:44.575000px;}
.y146{bottom:45.042000px;}
.y98{bottom:45.318000px;}
.ya2{bottom:45.765000px;}
.y199{bottom:47.170000px;}
.ye4{bottom:48.405000px;}
.y1a7{bottom:48.411000px;}
.y8c{bottom:48.744000px;}
.y40{bottom:49.079000px;}
.y114{bottom:49.602000px;}
.y190{bottom:49.627000px;}
.y6f{bottom:49.658000px;}
.y53{bottom:49.685000px;}
.ycb{bottom:49.934000px;}
.yae{bottom:50.457000px;}
.y6{bottom:51.308000px;}
.y1e{bottom:51.776000px;}
.y34{bottom:52.415000px;}
.yba{bottom:52.997000px;}
.y11c{bottom:53.272000px;}
.yfd{bottom:53.346000px;}
.y1c2{bottom:53.376000px;}
.y87{bottom:53.611000px;}
.y152{bottom:53.785000px;}
.yd9{bottom:54.064000px;}
.y20{bottom:55.112000px;}
.y167{bottom:55.762000px;}
.y7a{bottom:56.925000px;}
.y145{bottom:57.645000px;}
.yf{bottom:57.914000px;}
.y128{bottom:58.672000px;}
.y5e{bottom:59.137000px;}
.yf1{bottom:59.977000px;}
.y49{bottom:60.320000px;}
.y19f{bottom:60.346000px;}
.y13f{bottom:60.595000px;}
.y177{bottom:60.599000px;}
.y97{bottom:60.899000px;}
.ydc{bottom:61.347000px;}
.y170{bottom:61.545000px;}
.y134{bottom:62.159000px;}
.y113{bottom:62.204000px;}
.y52{bottom:62.287000px;}
.y2a{bottom:62.449000px;}
.y108{bottom:62.762000px;}
.y182{bottom:64.151000px;}
.y151{bottom:64.669000px;}
.yfc{bottom:65.949000px;}
.y1c1{bottom:65.979000px;}
.y86{bottom:66.213000px;}
.y198{bottom:66.224000px;}
.y107{bottom:66.794000px;}
.y1f{bottom:67.715000px;}
.y11b{bottom:68.853000px;}
.y1d{bottom:69.186000px;}
.y79{bottom:69.528000px;}
.yd8{bottom:69.645000px;}
.y1b4{bottom:69.780000px;}
.yc2{bottom:70.021000px;}
.y144{bottom:70.247000px;}
.y6e{bottom:70.694000px;}
.yf0{bottom:70.861000px;}
.y1a6{bottom:70.967000px;}
.ya1{bottom:70.970000px;}
.y127{bottom:71.274000px;}
.y65{bottom:72.280000px;}
.y15{bottom:72.415000px;}
.y15e{bottom:72.940000px;}
.yad{bottom:73.486000px;}
.ye3{bottom:73.610000px;}
.y33{bottom:73.949000px;}
.y3f{bottom:74.284000px;}
.y112{bottom:74.558000px;}
.y5d{bottom:74.719000px;}
.y133{bottom:74.761000px;}
.y18f{bottom:74.832000px;}
.y51{bottom:74.890000px;}
.yca{bottom:75.140000px;}
.y150{bottom:75.553000px;}
.y48{bottom:75.902000px;}
.y16{bottom:76.031000px;}
.y13e{bottom:76.177000px;}
.y181{bottom:76.754000px;}
.ye{bottom:77.117000px;}
.yb9{bottom:78.018000px;}
.y166{bottom:78.318000px;}
.y1c0{bottom:78.582000px;}
.y85{bottom:78.816000px;}
.y29{bottom:81.020000px;}
.yef{bottom:81.745000px;}
.y78{bottom:82.131000px;}
.y1b3{bottom:82.383000px;}
.y19e{bottom:82.902000px;}
.y176{bottom:83.154000px;}
.ya0{bottom:83.573000px;}
.y126{bottom:83.877000px;}
.y16f{bottom:84.101000px;}
.y11a{bottom:84.435000px;}
.yc1{bottom:85.602000px;}
.y96{bottom:85.920000px;}
.yac{bottom:86.089000px;}
.ye2{bottom:86.213000px;}
.y6d{bottom:86.275000px;}
.y14f{bottom:86.437000px;}
.y32{bottom:86.552000px;}
.y1c{bottom:86.596000px;}
.y3e{bottom:86.887000px;}
.yd7{bottom:87.194000px;}
.y18e{bottom:87.435000px;}
.y50{bottom:87.493000px;}
.yc9{bottom:87.742000px;}
.y1a9{bottom:89.356000px;}
.y14{bottom:89.825000px;}
.y5c{bottom:90.300000px;}
.yb8{bottom:90.621000px;}
.yfb{bottom:91.154000px;}
.y197{bottom:91.245000px;}
.y84{bottom:91.419000px;}
.y47{bottom:91.483000px;}
.y106{bottom:91.751000px;}
.yee{bottom:92.629000px;}
.y1a5{bottom:93.522000px;}
.y15d{bottom:93.551000px;}
.y111{bottom:94.634000px;}
.y1b2{bottom:94.985000px;}
.y143{bottom:95.453000px;}
.y9f{bottom:96.176000px;}
.yd{bottom:96.320000px;}
.y125{bottom:96.480000px;}
.y14e{bottom:97.321000px;}
.y64{bottom:97.486000px;}
.y95{bottom:98.523000px;}
.yab{bottom:98.691000px;}
.y8b{bottom:99.155000px;}
.y3d{bottom:99.489000px;}
.y28{bottom:99.590000px;}
.y18d{bottom:99.789000px;}
.y132{bottom:99.967000px;}
.y4f{bottom:100.095000px;}
.yc8{bottom:100.345000px;}
.y165{bottom:100.873000px;}
.y13d{bottom:101.819000px;}
.y180{bottom:101.959000px;}
.yb7{bottom:103.224000px;}
.y119{bottom:103.401000px;}
.yfa{bottom:103.508000px;}
.y83{bottom:103.772000px;}
.y1bf{bottom:103.787000px;}
.y196{bottom:103.848000px;}
.y1b{bottom:104.005000px;}
.y19d{bottom:105.457000px;}
.y175{bottom:105.710000px;}
.y5b{bottom:106.664000px;}
.y77{bottom:107.087000px;}
.y13{bottom:107.235000px;}
.y1b1{bottom:107.588000px;}
.y16e{bottom:107.764000px;}
.y142{bottom:108.055000px;}
.y14d{bottom:108.206000px;}
.y5{bottom:108.707000px;}
.y9e{bottom:108.778000px;}
.y124{bottom:109.082000px;}
.y63{bottom:110.088000px;}
.y6c{bottom:110.300000px;}
.yc0{bottom:110.623000px;}
.y94{bottom:111.126000px;}
.yaa{bottom:111.294000px;}
.ye1{bottom:111.418000px;}
.y31{bottom:111.757000px;}
.y3c{bottom:111.843000px;}
.y4e{bottom:112.449000px;}
.y131{bottom:112.569000px;}
.yd6{bottom:112.714000px;}
.yc7{bottom:112.948000px;}
.y46{bottom:113.017000px;}
.yed{bottom:114.397000px;}
.y17f{bottom:114.562000px;}
.y110{bottom:114.710000px;}
.y15c{bottom:114.746000px;}
.yc{bottom:115.523000px;}
.yb6{bottom:115.577000px;}
.y82{bottom:116.375000px;}
.y1be{bottom:116.390000px;}
.y195{bottom:116.450000px;}
.y13c{bottom:117.400000px;}
.y1a4{bottom:117.547000px;}
.y14c{bottom:119.090000px;}
.y18c{bottom:120.139000px;}
.y105{bottom:120.576000px;}
.y141{bottom:120.658000px;}
.ycf{bottom:121.063000px;}
.y123{bottom:121.685000px;}
.y62{bottom:122.691000px;}
.ybf{bottom:123.226000px;}
.y164{bottom:123.428000px;}
.yf9{bottom:123.558000px;}
.y27{bottom:123.615000px;}
.ya9{bottom:123.897000px;}
.ye0{bottom:124.021000px;}
.y30{bottom:124.360000px;}
.y12{bottom:124.644000px;}
.y76{bottom:126.140000px;}
.y6a{bottom:126.575000px;}
.y17e{bottom:127.164000px;}
.y174{bottom:127.244000px;}
.y138{bottom:127.312000px;}
.y15b{bottom:127.349000px;}
.yd5{bottom:128.295000px;}
.y19c{bottom:128.523000px;}
.y1bd{bottom:128.992000px;}
.y14b{bottom:129.974000px;}
.y6b{bottom:131.336000px;}
.y4{bottom:131.541000px;}
.y3b{bottom:131.893000px;}
.y1a{bottom:132.021000px;}
.y4d{bottom:132.499000px;}
.y18b{bottom:132.742000px;}
.y1b0{bottom:132.793000px;}
.y140{bottom:133.012000px;}
.y13b{bottom:133.764000px;}
.y9d{bottom:133.984000px;}
.y122{bottom:134.288000px;}
.yb{bottom:134.725000px;}
.y61{bottom:135.294000px;}
.ybe{bottom:135.829000px;}
.yec{bottom:136.166000px;}
.y118{bottom:136.315000px;}
.y93{bottom:136.331000px;}
.ya8{bottom:136.499000px;}
.y2f{bottom:136.963000px;}
.y104{bottom:136.982000px;}
.yb5{bottom:137.620000px;}
.y130{bottom:137.775000px;}
.yc6{bottom:138.153000px;}
.y23{bottom:138.248000px;}
.y16d{bottom:138.400000px;}
.y10f{bottom:139.915000px;}
.y15a{bottom:139.951000px;}
.y14a{bottom:140.858000px;}
.y194{bottom:141.406000px;}
.y1bc{bottom:141.595000px;}
.y5a{bottom:141.791000px;}
.yf8{bottom:143.608000px;}
.yd4{bottom:143.877000px;}
.y81{bottom:143.911000px;}
.y45{bottom:144.514000px;}
.y18a{bottom:145.344000px;}
.y1af{bottom:145.396000px;}
.y163{bottom:145.984000px;}
.y9c{bottom:146.586000px;}
.y3a{bottom:147.474000px;}
.y3{bottom:147.581000px;}
.y4c{bottom:148.080000px;}
.ybd{bottom:148.182000px;}
.y75{bottom:148.183000px;}
.y92{bottom:148.934000px;}
.ydf{bottom:149.226000px;}
.y19{bottom:149.431000px;}
.y8a{bottom:149.565000px;}
.y12f{bottom:150.377000px;}
.yc5{bottom:150.507000px;}
.y1a3{bottom:151.534000px;}
.y69{bottom:151.780000px;}
.y26{bottom:151.984000px;}
.y17d{bottom:152.370000px;}
.y10e{bottom:152.518000px;}
.y159{bottom:152.554000px;}
.y103{bottom:153.387000px;}
.ya{bottom:153.928000px;}
.y1bb{bottom:154.198000px;}
.yce{bottom:155.434000px;}
.y173{bottom:155.752000px;}
.yf7{bottom:155.961000px;}
.y80{bottom:156.514000px;}
.y59{bottom:157.372000px;}
.yeb{bottom:157.934000px;}
.y189{bottom:157.947000px;}
.y1ae{bottom:157.999000px;}
.y9b{bottom:159.189000px;}
.yd3{bottom:159.458000px;}
.y121{bottom:159.493000px;}
.y60{bottom:160.499000px;}
.y74{bottom:160.785000px;}
.y16c{bottom:160.956000px;}
.y19b{bottom:161.552000px;}
.yde{bottom:161.580000px;}
.ya7{bottom:161.705000px;}
.y2e{bottom:162.168000px;}
.y149{bottom:162.626000px;}
.y12e{bottom:162.980000px;}
.y11{bottom:163.611000px;}
.y68{bottom:164.134000px;}
.y17c{bottom:164.972000px;}
.y44{bottom:165.077000px;}
.y193{bottom:165.081000px;}
.y10d{bottom:165.120000px;}
.y158{bottom:165.157000px;}
.y1ba{bottom:166.800000px;}
.y18{bottom:166.840000px;}
.y25{bottom:167.566000px;}
.y13a{bottom:167.895000px;}
.y162{bottom:168.539000px;}
.yea{bottom:168.818000px;}
.y7f{bottom:169.117000px;}
.y117{bottom:169.229000px;}
.y102{bottom:169.793000px;}
.ybc{bottom:170.225000px;}
.y188{bottom:170.550000px;}
.yc4{bottom:170.556000px;}
.y1ad{bottom:170.601000px;}
.y9a{bottom:171.543000px;}
.y120{bottom:172.096000px;}
.yb4{bottom:172.367000px;}
.y5f{bottom:172.853000px;}
.y58{bottom:172.954000px;}
.y9{bottom:173.131000px;}
.y148{bottom:173.261000px;}
.y73{bottom:173.388000px;}
.y91{bottom:173.890000px;}
.ya6{bottom:174.058000px;}
.y1a2{bottom:174.090000px;}
.y2d{bottom:174.770000px;}
.yd2{bottom:175.039000px;}
.yd1{bottom:175.040000px;}
.y12d{bottom:175.583000px;}
.y39{bottom:175.843000px;}
.yf6{bottom:176.011000px;}
.y172{bottom:177.286000px;}
.y1a8{bottom:177.575000px;}
.y10c{bottom:177.723000px;}
.y157{bottom:177.759000px;}
.ye9{bottom:179.702000px;}
.y43{bottom:180.658000px;}
.y7e{bottom:181.719000px;}
.y187{bottom:183.152000px;}
.y1ac{bottom:183.204000px;}
.y16b{bottom:183.511000px;}
.y19a{bottom:184.108000px;}
.y17{bottom:184.250000px;}
.y139{bottom:184.258000px;}
.y24{bottom:184.388000px;}
.y11f{bottom:184.698000px;}
.y2{bottom:185.484000px;}
.y72{bottom:185.742000px;}
.yc3{bottom:186.138000px;}
.ydd{bottom:186.611000px;}
.y2c{bottom:187.124000px;}
.yb3{bottom:187.948000px;}
.y12c{bottom:188.185000px;}
.y57{bottom:189.318000px;}
.y10b{bottom:190.077000px;}
.y156{bottom:190.113000px;}
.y17b{bottom:190.178000px;}
.ye8{bottom:190.337000px;}
.yd0{bottom:190.621000px;}
.y161{bottom:191.094000px;}
.y67{bottom:191.319000px;}
.y38{bottom:191.425000px;}
.y99{bottom:191.592000px;}
.y1b9{bottom:191.756000px;}
.y116{bottom:193.254000px;}
.y7d{bottom:194.073000px;}
.ya5{bottom:194.108000px;}
.y101{bottom:195.573000px;}
.y186{bottom:195.755000px;}
.y90{bottom:195.932000px;}
.y11e{bottom:197.301000px;}
.y1a1{bottom:198.115000px;}
.y192{bottom:198.720000px;}
.y42{bottom:202.193000px;}
.y17a{bottom:202.780000px;}
.yb2{bottom:204.312000px;}
.y71{bottom:204.795000px;}
.y1{bottom:206.107000px;}
.y7c{bottom:206.676000px;}
.y2b{bottom:207.174000px;}
.y66{bottom:207.683000px;}
.y37{bottom:207.788000px;}
.y185{bottom:208.109000px;}
.y1ab{bottom:208.160000px;}
.y11d{bottom:209.655000px;}
.y10a{bottom:210.153000px;}
.y100{bottom:211.937000px;}
.ya4{bottom:212.155000px;}
.y12b{bottom:213.141000px;}
.y179{bottom:215.134000px;}
.y8{bottom:236.149000px;}
.ye7{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;}
.x17{left:45.283000px;}
.xf{left:47.176000px;}
.x3{left:49.946000px;}
.x14{left:53.153000px;}
.x2{left:57.697000px;}
.x11{left:68.994000px;}
.x19{left:71.983000px;}
.xc{left:106.772000px;}
.x8{left:113.749000px;}
.xa{left:164.083000px;}
.x9{left:181.587000px;}
.x18{left:193.103000px;}
.xb{left:195.846000px;}
.x13{left:211.933000px;}
.x15{left:218.835000px;}
.x12{left:235.469000px;}
.x1a{left:263.713000px;}
.x4{left:378.705000px;}
.x16{left:418.767000px;}
.x10{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;}
._33{width:8.320819pt;}
._34{width:14.663121pt;}
._c{width:16.479350pt;}
._b{width:18.409842pt;}
._f{width:19.916316pt;}
._8{width:21.488959pt;}
._1d{width:23.043235pt;}
._9{width:24.572021pt;}
._11{width:26.375479pt;}
._6{width:28.921939pt;}
._15{width:30.439519pt;}
._2a{width:33.634739pt;}
._18{width:35.422354pt;}
._1a{width:37.294577pt;}
._26{width:39.629407pt;}
._4{width:41.655600pt;}
._a{width:43.229883pt;}
._25{width:45.028811pt;}
._1{width:48.384419pt;}
._1f{width:50.745739pt;}
._2{width:54.549000pt;}
._31{width:68.505469pt;}
._12{width:75.317760pt;}
._21{width:100.423680pt;}
._13{width:125.327838pt;}
._32{width:135.293417pt;}
._20{width:150.635520pt;}
._28{width:159.166641pt;}
._14{width:175.539678pt;}
._1c{width:200.847360pt;}
._17{width:225.953280pt;}
._2d{width:251.059200pt;}
._22{width:276.093734pt;}
._23{width:301.069278pt;}
._27{width:326.910859pt;}
._1b{width:426.800640pt;}
._16{width:451.906560pt;}
._36{width:453.966085pt;}
._35{width:456.838100pt;}
._39{width:944.538157pt;}
._37{width:947.737511pt;}
._2e{width:973.323984pt;}
._38{width:1003.362652pt;}
._1e{width:1078.403701pt;}
._2c{width:1406.862446pt;}
._24{width:1479.964703pt;}
._10{width:1628.677272pt;}
._2b{width:1632.896907pt;}
._29{width:1733.320587pt;}
._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;}
.y0{bottom:-0.666667pt;}
.yf5{bottom:7.408000pt;}
.y137{bottom:8.896000pt;}
.y1b8{bottom:9.022667pt;}
.y178{bottom:10.357333pt;}
.yb1{bottom:11.253333pt;}
.y155{bottom:11.984000pt;}
.y16a{bottom:14.201333pt;}
.y169{bottom:14.202667pt;}
.y8f{bottom:14.581333pt;}
.y56{bottom:15.836000pt;}
.y10{bottom:17.357333pt;}
.yff{bottom:17.662667pt;}
.y1aa{bottom:18.321333pt;}
.yf4{bottom:21.920000pt;}
.y1b7{bottom:25.825333pt;}
.y160{bottom:26.629333pt;}
.y12a{bottom:27.818667pt;}
.yb0{bottom:28.057333pt;}
.y36{bottom:28.336000pt;}
.y147{bottom:29.352000pt;}
.y89{bottom:29.937333pt;}
.ydb{bottom:30.534667pt;}
.ye6{bottom:30.933333pt;}
.y8e{bottom:31.385333pt;}
.y4b{bottom:32.234667pt;}
.y136{bottom:32.468000pt;}
.y55{bottom:32.638667pt;}
.ycd{bottom:32.972000pt;}
.y184{bottom:35.124000pt;}
.yf3{bottom:36.432000pt;}
.y22{bottom:39.876000pt;}
.y1b6{bottom:42.629333pt;}
.y154{bottom:42.689333pt;}
.ya3{bottom:44.216000pt;}
.y168{bottom:44.276000pt;}
.yfe{bottom:44.396000pt;}
.yaf{bottom:44.528000pt;}
.y129{bottom:44.621333pt;}
.y70{bottom:45.434667pt;}
.y7{bottom:46.177333pt;}
.y88{bottom:46.740000pt;}
.ye5{bottom:47.736000pt;}
.y8d{bottom:48.188000pt;}
.y41{bottom:48.634667pt;}
.y35{bottom:49.112000pt;}
.y135{bottom:49.270667pt;}
.y115{bottom:49.332000pt;}
.y191{bottom:49.365333pt;}
.y15f{bottom:49.377333pt;}
.y54{bottom:49.442667pt;}
.ycc{bottom:49.776000pt;}
.ybb{bottom:49.888000pt;}
.y1a0{bottom:50.388000pt;}
.y109{bottom:50.408000pt;}
.yf2{bottom:50.945333pt;}
.yda{bottom:51.309333pt;}
.y183{bottom:51.928000pt;}
.y171{bottom:51.986667pt;}
.y4a{bottom:53.009333pt;}
.y21{bottom:56.678667pt;}
.y153{bottom:57.201333pt;}
.y7b{bottom:59.097333pt;}
.y1b5{bottom:59.433333pt;}
.y146{bottom:60.056000pt;}
.y98{bottom:60.424000pt;}
.ya2{bottom:61.020000pt;}
.y199{bottom:62.893333pt;}
.ye4{bottom:64.540000pt;}
.y1a7{bottom:64.548000pt;}
.y8c{bottom:64.992000pt;}
.y40{bottom:65.438667pt;}
.y114{bottom:66.136000pt;}
.y190{bottom:66.169333pt;}
.y6f{bottom:66.210667pt;}
.y53{bottom:66.246667pt;}
.ycb{bottom:66.578667pt;}
.yae{bottom:67.276000pt;}
.y6{bottom:68.410667pt;}
.y1e{bottom:69.034667pt;}
.y34{bottom:69.886667pt;}
.yba{bottom:70.662667pt;}
.y11c{bottom:71.029333pt;}
.yfd{bottom:71.128000pt;}
.y1c2{bottom:71.168000pt;}
.y87{bottom:71.481333pt;}
.y152{bottom:71.713333pt;}
.yd9{bottom:72.085333pt;}
.y20{bottom:73.482667pt;}
.y167{bottom:74.349333pt;}
.y7a{bottom:75.900000pt;}
.y145{bottom:76.860000pt;}
.yf{bottom:77.218667pt;}
.y128{bottom:78.229333pt;}
.y5e{bottom:78.849333pt;}
.yf1{bottom:79.969333pt;}
.y49{bottom:80.426667pt;}
.y19f{bottom:80.461333pt;}
.y13f{bottom:80.793333pt;}
.y177{bottom:80.798667pt;}
.y97{bottom:81.198667pt;}
.ydc{bottom:81.796000pt;}
.y170{bottom:82.060000pt;}
.y134{bottom:82.878667pt;}
.y113{bottom:82.938667pt;}
.y52{bottom:83.049333pt;}
.y2a{bottom:83.265333pt;}
.y108{bottom:83.682667pt;}
.y182{bottom:85.534667pt;}
.y151{bottom:86.225333pt;}
.yfc{bottom:87.932000pt;}
.y1c1{bottom:87.972000pt;}
.y86{bottom:88.284000pt;}
.y198{bottom:88.298667pt;}
.y107{bottom:89.058667pt;}
.y1f{bottom:90.286667pt;}
.y11b{bottom:91.804000pt;}
.y1d{bottom:92.248000pt;}
.y79{bottom:92.704000pt;}
.yd8{bottom:92.860000pt;}
.y1b4{bottom:93.040000pt;}
.yc2{bottom:93.361333pt;}
.y144{bottom:93.662667pt;}
.y6e{bottom:94.258667pt;}
.yf0{bottom:94.481333pt;}
.y1a6{bottom:94.622667pt;}
.ya1{bottom:94.626667pt;}
.y127{bottom:95.032000pt;}
.y65{bottom:96.373333pt;}
.y15{bottom:96.553333pt;}
.y15e{bottom:97.253333pt;}
.yad{bottom:97.981333pt;}
.ye3{bottom:98.146667pt;}
.y33{bottom:98.598667pt;}
.y3f{bottom:99.045333pt;}
.y112{bottom:99.410667pt;}
.y5d{bottom:99.625333pt;}
.y133{bottom:99.681333pt;}
.y18f{bottom:99.776000pt;}
.y51{bottom:99.853333pt;}
.yca{bottom:100.186667pt;}
.y150{bottom:100.737333pt;}
.y48{bottom:101.202667pt;}
.y16{bottom:101.374667pt;}
.y13e{bottom:101.569333pt;}
.y181{bottom:102.338667pt;}
.ye{bottom:102.822667pt;}
.yb9{bottom:104.024000pt;}
.y166{bottom:104.424000pt;}
.y1c0{bottom:104.776000pt;}
.y85{bottom:105.088000pt;}
.y29{bottom:108.026667pt;}
.yef{bottom:108.993333pt;}
.y78{bottom:109.508000pt;}
.y1b3{bottom:109.844000pt;}
.y19e{bottom:110.536000pt;}
.y176{bottom:110.872000pt;}
.ya0{bottom:111.430667pt;}
.y126{bottom:111.836000pt;}
.y16f{bottom:112.134667pt;}
.y11a{bottom:112.580000pt;}
.yc1{bottom:114.136000pt;}
.y96{bottom:114.560000pt;}
.yac{bottom:114.785333pt;}
.ye2{bottom:114.950667pt;}
.y6d{bottom:115.033333pt;}
.y14f{bottom:115.249333pt;}
.y32{bottom:115.402667pt;}
.y1c{bottom:115.461333pt;}
.y3e{bottom:115.849333pt;}
.yd7{bottom:116.258667pt;}
.y18e{bottom:116.580000pt;}
.y50{bottom:116.657333pt;}
.yc9{bottom:116.989333pt;}
.y1a9{bottom:119.141333pt;}
.y14{bottom:119.766667pt;}
.y5c{bottom:120.400000pt;}
.yb8{bottom:120.828000pt;}
.yfb{bottom:121.538667pt;}
.y197{bottom:121.660000pt;}
.y84{bottom:121.892000pt;}
.y47{bottom:121.977333pt;}
.y106{bottom:122.334667pt;}
.yee{bottom:123.505333pt;}
.y1a5{bottom:124.696000pt;}
.y15d{bottom:124.734667pt;}
.y111{bottom:126.178667pt;}
.y1b2{bottom:126.646667pt;}
.y143{bottom:127.270667pt;}
.y9f{bottom:128.234667pt;}
.yd{bottom:128.426667pt;}
.y125{bottom:128.640000pt;}
.y14e{bottom:129.761333pt;}
.y64{bottom:129.981333pt;}
.y95{bottom:131.364000pt;}
.yab{bottom:131.588000pt;}
.y8b{bottom:132.206667pt;}
.y3d{bottom:132.652000pt;}
.y28{bottom:132.786667pt;}
.y18d{bottom:133.052000pt;}
.y132{bottom:133.289333pt;}
.y4f{bottom:133.460000pt;}
.yc8{bottom:133.793333pt;}
.y165{bottom:134.497333pt;}
.y13d{bottom:135.758667pt;}
.y180{bottom:135.945333pt;}
.yb7{bottom:137.632000pt;}
.y119{bottom:137.868000pt;}
.yfa{bottom:138.010667pt;}
.y83{bottom:138.362667pt;}
.y1bf{bottom:138.382667pt;}
.y196{bottom:138.464000pt;}
.y1b{bottom:138.673333pt;}
.y19d{bottom:140.609333pt;}
.y175{bottom:140.946667pt;}
.y5b{bottom:142.218667pt;}
.y77{bottom:142.782667pt;}
.y13{bottom:142.980000pt;}
.y1b1{bottom:143.450667pt;}
.y16e{bottom:143.685333pt;}
.y142{bottom:144.073333pt;}
.y14d{bottom:144.274667pt;}
.y5{bottom:144.942667pt;}
.y9e{bottom:145.037333pt;}
.y124{bottom:145.442667pt;}
.y63{bottom:146.784000pt;}
.y6c{bottom:147.066667pt;}
.yc0{bottom:147.497333pt;}
.y94{bottom:148.168000pt;}
.yaa{bottom:148.392000pt;}
.ye1{bottom:148.557333pt;}
.y31{bottom:149.009333pt;}
.y3c{bottom:149.124000pt;}
.y4e{bottom:149.932000pt;}
.y131{bottom:150.092000pt;}
.yd6{bottom:150.285333pt;}
.yc7{bottom:150.597333pt;}
.y46{bottom:150.689333pt;}
.yed{bottom:152.529333pt;}
.y17f{bottom:152.749333pt;}
.y110{bottom:152.946667pt;}
.y15c{bottom:152.994667pt;}
.yc{bottom:154.030667pt;}
.yb6{bottom:154.102667pt;}
.y82{bottom:155.166667pt;}
.y1be{bottom:155.186667pt;}
.y195{bottom:155.266667pt;}
.y13c{bottom:156.533333pt;}
.y1a4{bottom:156.729333pt;}
.y14c{bottom:158.786667pt;}
.y18c{bottom:160.185333pt;}
.y105{bottom:160.768000pt;}
.y141{bottom:160.877333pt;}
.ycf{bottom:161.417333pt;}
.y123{bottom:162.246667pt;}
.y62{bottom:163.588000pt;}
.ybf{bottom:164.301333pt;}
.y164{bottom:164.570667pt;}
.yf9{bottom:164.744000pt;}
.y27{bottom:164.820000pt;}
.ya9{bottom:165.196000pt;}
.ye0{bottom:165.361333pt;}
.y30{bottom:165.813333pt;}
.y12{bottom:166.192000pt;}
.y76{bottom:168.186667pt;}
.y6a{bottom:168.766667pt;}
.y17e{bottom:169.552000pt;}
.y174{bottom:169.658667pt;}
.y138{bottom:169.749333pt;}
.y15b{bottom:169.798667pt;}
.yd5{bottom:171.060000pt;}
.y19c{bottom:171.364000pt;}
.y1bd{bottom:171.989333pt;}
.y14b{bottom:173.298667pt;}
.y6b{bottom:175.114667pt;}
.y4{bottom:175.388000pt;}
.y3b{bottom:175.857333pt;}
.y1a{bottom:176.028000pt;}
.y4d{bottom:176.665333pt;}
.y18b{bottom:176.989333pt;}
.y1b0{bottom:177.057333pt;}
.y140{bottom:177.349333pt;}
.y13b{bottom:178.352000pt;}
.y9d{bottom:178.645333pt;}
.y122{bottom:179.050667pt;}
.yb{bottom:179.633333pt;}
.y61{bottom:180.392000pt;}
.ybe{bottom:181.105333pt;}
.yec{bottom:181.554667pt;}
.y118{bottom:181.753333pt;}
.y93{bottom:181.774667pt;}
.ya8{bottom:181.998667pt;}
.y2f{bottom:182.617333pt;}
.y104{bottom:182.642667pt;}
.yb5{bottom:183.493333pt;}
.y130{bottom:183.700000pt;}
.yc6{bottom:184.204000pt;}
.y23{bottom:184.330667pt;}
.y16d{bottom:184.533333pt;}
.y10f{bottom:186.553333pt;}
.y15a{bottom:186.601333pt;}
.y14a{bottom:187.810667pt;}
.y194{bottom:188.541333pt;}
.y1bc{bottom:188.793333pt;}
.y5a{bottom:189.054667pt;}
.yf8{bottom:191.477333pt;}
.yd4{bottom:191.836000pt;}
.y81{bottom:191.881333pt;}
.y45{bottom:192.685333pt;}
.y18a{bottom:193.792000pt;}
.y1af{bottom:193.861333pt;}
.y163{bottom:194.645333pt;}
.y9c{bottom:195.448000pt;}
.y3a{bottom:196.632000pt;}
.y3{bottom:196.774667pt;}
.y4c{bottom:197.440000pt;}
.ybd{bottom:197.576000pt;}
.y75{bottom:197.577333pt;}
.y92{bottom:198.578667pt;}
.ydf{bottom:198.968000pt;}
.y19{bottom:199.241333pt;}
.y8a{bottom:199.420000pt;}
.y12f{bottom:200.502667pt;}
.yc5{bottom:200.676000pt;}
.y1a3{bottom:202.045333pt;}
.y69{bottom:202.373333pt;}
.y26{bottom:202.645333pt;}
.y17d{bottom:203.160000pt;}
.y10e{bottom:203.357333pt;}
.y159{bottom:203.405333pt;}
.y103{bottom:204.516000pt;}
.ya{bottom:205.237333pt;}
.y1bb{bottom:205.597333pt;}
.yce{bottom:207.245333pt;}
.y173{bottom:207.669333pt;}
.yf7{bottom:207.948000pt;}
.y80{bottom:208.685333pt;}
.y59{bottom:209.829333pt;}
.yeb{bottom:210.578667pt;}
.y189{bottom:210.596000pt;}
.y1ae{bottom:210.665333pt;}
.y9b{bottom:212.252000pt;}
.yd3{bottom:212.610667pt;}
.y121{bottom:212.657333pt;}
.y60{bottom:213.998667pt;}
.y74{bottom:214.380000pt;}
.y16c{bottom:214.608000pt;}
.y19b{bottom:215.402667pt;}
.yde{bottom:215.440000pt;}
.ya7{bottom:215.606667pt;}
.y2e{bottom:216.224000pt;}
.y149{bottom:216.834667pt;}
.y12e{bottom:217.306667pt;}
.y11{bottom:218.148000pt;}
.y68{bottom:218.845333pt;}
.y17c{bottom:219.962667pt;}
.y44{bottom:220.102667pt;}
.y193{bottom:220.108000pt;}
.y10d{bottom:220.160000pt;}
.y158{bottom:220.209333pt;}
.y1ba{bottom:222.400000pt;}
.y18{bottom:222.453333pt;}
.y25{bottom:223.421333pt;}
.y13a{bottom:223.860000pt;}
.y162{bottom:224.718667pt;}
.yea{bottom:225.090667pt;}
.y7f{bottom:225.489333pt;}
.y117{bottom:225.638667pt;}
.y102{bottom:226.390667pt;}
.ybc{bottom:226.966667pt;}
.y188{bottom:227.400000pt;}
.yc4{bottom:227.408000pt;}
.y1ad{bottom:227.468000pt;}
.y9a{bottom:228.724000pt;}
.y120{bottom:229.461333pt;}
.yb4{bottom:229.822667pt;}
.y5f{bottom:230.470667pt;}
.y58{bottom:230.605333pt;}
.y9{bottom:230.841333pt;}
.y148{bottom:231.014667pt;}
.y73{bottom:231.184000pt;}
.y91{bottom:231.853333pt;}
.ya6{bottom:232.077333pt;}
.y1a2{bottom:232.120000pt;}
.y2d{bottom:233.026667pt;}
.yd2{bottom:233.385333pt;}
.yd1{bottom:233.386667pt;}
.y12d{bottom:234.110667pt;}
.y39{bottom:234.457333pt;}
.yf6{bottom:234.681333pt;}
.y172{bottom:236.381333pt;}
.y1a8{bottom:236.766667pt;}
.y10c{bottom:236.964000pt;}
.y157{bottom:237.012000pt;}
.ye9{bottom:239.602667pt;}
.y43{bottom:240.877333pt;}
.y7e{bottom:242.292000pt;}
.y187{bottom:244.202667pt;}
.y1ac{bottom:244.272000pt;}
.y16b{bottom:244.681333pt;}
.y19a{bottom:245.477333pt;}
.y17{bottom:245.666667pt;}
.y139{bottom:245.677333pt;}
.y24{bottom:245.850667pt;}
.y11f{bottom:246.264000pt;}
.y2{bottom:247.312000pt;}
.y72{bottom:247.656000pt;}
.yc3{bottom:248.184000pt;}
.ydd{bottom:248.814667pt;}
.y2c{bottom:249.498667pt;}
.yb3{bottom:250.597333pt;}
.y12c{bottom:250.913333pt;}
.y57{bottom:252.424000pt;}
.y10b{bottom:253.436000pt;}
.y156{bottom:253.484000pt;}
.y17b{bottom:253.570667pt;}
.ye8{bottom:253.782667pt;}
.yd0{bottom:254.161333pt;}
.y161{bottom:254.792000pt;}
.y67{bottom:255.092000pt;}
.y38{bottom:255.233333pt;}
.y99{bottom:255.456000pt;}
.y1b9{bottom:255.674667pt;}
.y116{bottom:257.672000pt;}
.y7d{bottom:258.764000pt;}
.ya5{bottom:258.810667pt;}
.y101{bottom:260.764000pt;}
.y186{bottom:261.006667pt;}
.y90{bottom:261.242667pt;}
.y11e{bottom:263.068000pt;}
.y1a1{bottom:264.153333pt;}
.y192{bottom:264.960000pt;}
.y42{bottom:269.590667pt;}
.y17a{bottom:270.373333pt;}
.yb2{bottom:272.416000pt;}
.y71{bottom:273.060000pt;}
.y1{bottom:274.809333pt;}
.y7c{bottom:275.568000pt;}
.y2b{bottom:276.232000pt;}
.y66{bottom:276.910667pt;}
.y37{bottom:277.050667pt;}
.y185{bottom:277.478667pt;}
.y1ab{bottom:277.546667pt;}
.y11d{bottom:279.540000pt;}
.y10a{bottom:280.204000pt;}
.y100{bottom:282.582667pt;}
.ya4{bottom:282.873333pt;}
.y12b{bottom:284.188000pt;}
.y179{bottom:286.845333pt;}
.y8{bottom:314.865333pt;}
.ye7{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;}
.x17{left:60.377333pt;}
.xf{left:62.901333pt;}
.x3{left:66.594667pt;}
.x14{left:70.870667pt;}
.x2{left:76.929333pt;}
.x11{left:91.992000pt;}
.x19{left:95.977333pt;}
.xc{left:142.362667pt;}
.x8{left:151.665333pt;}
.xa{left:218.777333pt;}
.x9{left:242.116000pt;}
.x18{left:257.470667pt;}
.xb{left:261.128000pt;}
.x13{left:282.577333pt;}
.x15{left:291.780000pt;}
.x12{left:313.958667pt;}
.x1a{left:351.617333pt;}
.x4{left:504.940000pt;}
.x16{left:558.356000pt;}
.x10{left:565.870667pt;}
.x7{left:571.516000pt;}
}
</style>
<script>
/*
Copyright 2012 Mozilla Foundation
Copyright 2013 Lu Wang <coolwanglu@gmail.com>
Apachine License Version 2.0
*/
(function(){function b(a,b,e,f){var c=(a.className||"").split(/\s+/g);""===c[0]&&c.shift();var d=c.indexOf(b);0>d&&e&&c.push(b);0<=d&&f&&c.splice(d,1);a.className=c.join(" ");return 0<=d}if(!("classList"in document.createElement("div"))){var e={add:function(a){b(this.element,a,!0,!1)},contains:function(a){return b(this.element,a,!1,!1)},remove:function(a){b(this.element,a,!1,!0)},toggle:function(a){b(this.element,a,!0,!0)}};Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){if(this._classList)return this._classList;
var a=Object.create(e,{element:{value:this,writable:!1,enumerable:!0}});Object.defineProperty(this,"_classList",{value:a,writable:!1,enumerable:!1});return a},enumerable:!0})}})();
</script>
<script>
(function(){/*
pdf2htmlEX.js: Core UI functions for pdf2htmlEX
Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com> and other contributors
https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
*/
var pdf2htmlEX=window.pdf2htmlEX=window.pdf2htmlEX||{},CSS_CLASS_NAMES={page_frame:"pf",page_content_box:"pc",page_data:"pi",background_image:"bi",link:"l",input_radio:"ir",__dummy__:"no comma"},DEFAULT_CONFIG={container_id:"page-container",sidebar_id:"sidebar",outline_id:"outline",loading_indicator_cls:"loading-indicator",preload_pages:3,render_timeout:100,scale_step:0.9,key_handler:!0,hashchange_handler:!0,view_history_handler:!0,__dummy__:"no comma"},EPS=1E-6;
function invert(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[3]*a[4])/b,(a[1]*a[4]-a[0]*a[5])/b]}function transform(a,b){return[a[0]*b[0]+a[2]*b[1]+a[4],a[1]*b[0]+a[3]*b[1]+a[5]]}function get_page_number(a){return parseInt(a.getAttribute("data-page-no"),16)}function disable_dragstart(a){for(var b=0,c=a.length;b<c;++b)a[b].addEventListener("dragstart",function(){return!1},!1)}
function clone_and_extend_objs(a){for(var b={},c=0,e=arguments.length;c<e;++c){var h=arguments[c],d;for(d in h)h.hasOwnProperty(d)&&(b[d]=h[d])}return b}
function Page(a){if(a){this.shown=this.loaded=!1;this.page=a;this.num=get_page_number(a);this.original_height=a.clientHeight;this.original_width=a.clientWidth;var b=a.getElementsByClassName(CSS_CLASS_NAMES.page_content_box)[0];b&&(this.content_box=b,this.original_scale=this.cur_scale=this.original_height/b.clientHeight,this.page_data=JSON.parse(a.getElementsByClassName(CSS_CLASS_NAMES.page_data)[0].getAttribute("data-data")),this.ctm=this.page_data.ctm,this.ictm=invert(this.ctm),this.loaded=!0)}}
Page.prototype={hide:function(){this.loaded&&this.shown&&(this.content_box.classList.remove("opened"),this.shown=!1)},show:function(){this.loaded&&!this.shown&&(this.content_box.classList.add("opened"),this.shown=!0)},rescale:function(a){this.cur_scale=0===a?this.original_scale:a;this.loaded&&(a=this.content_box.style,a.msTransform=a.webkitTransform=a.transform="scale("+this.cur_scale.toFixed(3)+")");a=this.page.style;a.height=this.original_height*this.cur_scale+"px";a.width=this.original_width*this.cur_scale+
"px"},view_position:function(){var a=this.page,b=a.parentNode;return[b.scrollLeft-a.offsetLeft-a.clientLeft,b.scrollTop-a.offsetTop-a.clientTop]},height:function(){return this.page.clientHeight},width:function(){return this.page.clientWidth}};function Viewer(a){this.config=clone_and_extend_objs(DEFAULT_CONFIG,0<arguments.length?a:{});this.pages_loading=[];this.init_before_loading_content();var b=this;document.addEventListener("DOMContentLoaded",function(){b.init_after_loading_content()},!1)}
Viewer.prototype={scale:1,cur_page_idx:0,first_page_idx:0,init_before_loading_content:function(){this.pre_hide_pages()},initialize_radio_button:function(){for(var a=document.getElementsByClassName(CSS_CLASS_NAMES.input_radio),b=0;b<a.length;b++)a[b].addEventListener("click",function(){this.classList.toggle("checked")})},init_after_loading_content:function(){this.sidebar=document.getElementById(this.config.sidebar_id);this.outline=document.getElementById(this.config.outline_id);this.container=document.getElementById(this.config.container_id);
this.loading_indicator=document.getElementsByClassName(this.config.loading_indicator_cls)[0];for(var a=!0,b=this.outline.childNodes,c=0,e=b.length;c<e;++c)if("ul"===b[c].nodeName.toLowerCase()){a=!1;break}a||this.sidebar.classList.add("opened");this.find_pages();if(0!=this.pages.length){disable_dragstart(document.getElementsByClassName(CSS_CLASS_NAMES.background_image));this.config.key_handler&&this.register_key_handler();var h=this;this.config.hashchange_handler&&window.addEventListener("hashchange",
function(a){h.navigate_to_dest(document.location.hash.substring(1))},!1);this.config.view_history_handler&&window.addEventListener("popstate",function(a){a.state&&h.navigate_to_dest(a.state)},!1);this.container.addEventListener("scroll",function(){h.update_page_idx();h.schedule_render(!0)},!1);[this.container,this.outline].forEach(function(a){a.addEventListener("click",h.link_handler.bind(h),!1)});this.initialize_radio_button();this.render()}},find_pages:function(){for(var a=[],b={},c=this.container.childNodes,
e=0,h=c.length;e<h;++e){var d=c[e];d.nodeType===Node.ELEMENT_NODE&&d.classList.contains(CSS_CLASS_NAMES.page_frame)&&(d=new Page(d),a.push(d),b[d.num]=a.length-1)}this.pages=a;this.page_map=b},load_page:function(a,b,c){var e=this.pages;if(!(a>=e.length||(e=e[a],e.loaded||this.pages_loading[a]))){var e=e.page,h=e.getAttribute("data-page-url");if(h){this.pages_loading[a]=!0;var d=e.getElementsByClassName(this.config.loading_indicator_cls)[0];"undefined"===typeof d&&(d=this.loading_indicator.cloneNode(!0),
d.classList.add("active"),e.appendChild(d));var f=this,g=new XMLHttpRequest;g.open("GET",h,!0);g.onload=function(){if(200===g.status||0===g.status){var b=document.createElement("div");b.innerHTML=g.responseText;for(var d=null,b=b.childNodes,e=0,h=b.length;e<h;++e){var p=b[e];if(p.nodeType===Node.ELEMENT_NODE&&p.classList.contains(CSS_CLASS_NAMES.page_frame)){d=p;break}}b=f.pages[a];f.container.replaceChild(d,b.page);b=new Page(d);f.pages[a]=b;b.hide();b.rescale(f.scale);disable_dragstart(d.getElementsByClassName(CSS_CLASS_NAMES.background_image));
f.schedule_render(!1);c&&c(b)}delete f.pages_loading[a]};g.send(null)}void 0===b&&(b=this.config.preload_pages);0<--b&&(f=this,setTimeout(function(){f.load_page(a+1,b)},0))}},pre_hide_pages:function(){var a="@media screen{."+CSS_CLASS_NAMES.page_content_box+"{display:none;}}",b=document.createElement("style");b.styleSheet?b.styleSheet.cssText=a:b.appendChild(document.createTextNode(a));document.head.appendChild(b)},render:function(){for(var a=this.container,b=a.scrollTop,c=a.clientHeight,a=b-c,b=
b+c+c,c=this.pages,e=0,h=c.length;e<h;++e){var d=c[e],f=d.page,g=f.offsetTop+f.clientTop,f=g+f.clientHeight;g<=b&&f>=a?d.loaded?d.show():this.load_page(e):d.hide()}},update_page_idx:function(){var a=this.pages,b=a.length;if(!(2>b)){for(var c=this.container,e=c.scrollTop,c=e+c.clientHeight,h=-1,d=b,f=d-h;1<f;){var g=h+Math.floor(f/2),f=a[g].page;f.offsetTop+f.clientTop+f.clientHeight>=e?d=g:h=g;f=d-h}this.first_page_idx=d;for(var g=h=this.cur_page_idx,k=0;d<b;++d){var f=a[d].page,l=f.offsetTop+f.clientTop,
f=f.clientHeight;if(l>c)break;f=(Math.min(c,l+f)-Math.max(e,l))/f;if(d===h&&Math.abs(f-1)<=EPS){g=h;break}f>k&&(k=f,g=d)}this.cur_page_idx=g}},schedule_render:function(a){if(void 0!==this.render_timer){if(!a)return;clearTimeout(this.render_timer)}var b=this;this.render_timer=setTimeout(function(){delete b.render_timer;b.render()},this.config.render_timeout)},register_key_handler:function(){var a=this;window.addEventListener("DOMMouseScroll",function(b){if(b.ctrlKey){b.preventDefault();var c=a.container,
e=c.getBoundingClientRect(),c=[b.clientX-e.left-c.clientLeft,b.clientY-e.top-c.clientTop];a.rescale(Math.pow(a.config.scale_step,b.detail),!0,c)}},!1);window.addEventListener("keydown",function(b){var c=!1,e=b.ctrlKey||b.metaKey,h=b.altKey;switch(b.keyCode){case 61:case 107:case 187:e&&(a.rescale(1/a.config.scale_step,!0),c=!0);break;case 173:case 109:case 189:e&&(a.rescale(a.config.scale_step,!0),c=!0);break;case 48:e&&(a.rescale(0,!1),c=!0);break;case 33:h?a.scroll_to(a.cur_page_idx-1):a.container.scrollTop-=
a.container.clientHeight;c=!0;break;case 34:h?a.scroll_to(a.cur_page_idx+1):a.container.scrollTop+=a.container.clientHeight;c=!0;break;case 35:a.container.scrollTop=a.container.scrollHeight;c=!0;break;case 36:a.container.scrollTop=0,c=!0}c&&b.preventDefault()},!1)},rescale:function(a,b,c){var e=this.scale;this.scale=a=0===a?1:b?e*a:a;c||(c=[0,0]);b=this.container;c[0]+=b.scrollLeft;c[1]+=b.scrollTop;for(var h=this.pages,d=h.length,f=this.first_page_idx;f<d;++f){var g=h[f].page;if(g.offsetTop+g.clientTop>=
c[1])break}g=f-1;0>g&&(g=0);var g=h[g].page,k=g.clientWidth,f=g.clientHeight,l=g.offsetLeft+g.clientLeft,m=c[0]-l;0>m?m=0:m>k&&(m=k);k=g.offsetTop+g.clientTop;c=c[1]-k;0>c?c=0:c>f&&(c=f);for(f=0;f<d;++f)h[f].rescale(a);b.scrollLeft+=m/e*a+g.offsetLeft+g.clientLeft-m-l;b.scrollTop+=c/e*a+g.offsetTop+g.clientTop-c-k;this.schedule_render(!0)},fit_width:function(){var a=this.cur_page_idx;this.rescale(this.container.clientWidth/this.pages[a].width(),!0);this.scroll_to(a)},fit_height:function(){var a=this.cur_page_idx;
this.rescale(this.container.clientHeight/this.pages[a].height(),!0);this.scroll_to(a)},get_containing_page:function(a){for(;a;){if(a.nodeType===Node.ELEMENT_NODE&&a.classList.contains(CSS_CLASS_NAMES.page_frame)){a=get_page_number(a);var b=this.page_map;return a in b?this.pages[b[a]]:null}a=a.parentNode}return null},link_handler:function(a){var b=a.target,c=b.getAttribute("data-dest-detail");if(c){if(this.config.view_history_handler)try{var e=this.get_current_view_hash();window.history.replaceState(e,
"","#"+e);window.history.pushState(c,"","#"+c)}catch(h){}this.navigate_to_dest(c,this.get_containing_page(b));a.preventDefault()}},navigate_to_dest:function(a,b){try{var c=JSON.parse(a)}catch(e){return}if(c instanceof Array){var h=c[0],d=this.page_map;if(h in d){for(var f=d[h],h=this.pages[f],d=2,g=c.length;d<g;++d){var k=c[d];if(null!==k&&"number"!==typeof k)return}for(;6>c.length;)c.push(null);var g=b||this.pages[this.cur_page_idx],d=g.view_position(),d=transform(g.ictm,[d[0],g.height()-d[1]]),
g=this.scale,l=[0,0],m=!0,k=!1,n=this.scale;switch(c[1]){case "XYZ":l=[null===c[2]?d[0]:c[2]*n,null===c[3]?d[1]:c[3]*n];g=c[4];if(null===g||0===g)g=this.scale;k=!0;break;case "Fit":case "FitB":l=[0,0];k=!0;break;case "FitH":case "FitBH":l=[0,null===c[2]?d[1]:c[2]*n];k=!0;break;case "FitV":case "FitBV":l=[null===c[2]?d[0]:c[2]*n,0];k=!0;break;case "FitR":l=[c[2]*n,c[5]*n],m=!1,k=!0}if(k){this.rescale(g,!1);var p=this,c=function(a){l=transform(a.ctm,l);m&&(l[1]=a.height()-l[1]);p.scroll_to(f,l)};h.loaded?
c(h):(this.load_page(f,void 0,c),this.scroll_to(f))}}}},scroll_to:function(a,b){var c=this.pages;if(!(0>a||a>=c.length)){c=c[a].view_position();void 0===b&&(b=[0,0]);var e=this.container;e.scrollLeft+=b[0]-c[0];e.scrollTop+=b[1]-c[1]}},get_current_view_hash:function(){var a=[],b=this.pages[this.cur_page_idx];a.push(b.num);a.push("XYZ");var c=b.view_position(),c=transform(b.ictm,[c[0],b.height()-c[1]]);a.push(c[0]/this.scale);a.push(c[1]/this.scale);a.push(this.scale);return JSON.stringify(a)}};
pdf2htmlEX.Viewer=Viewer;})();
</script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar">
<div id="outline">
<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,221.744,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,219.756,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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIU0lEQVR42u3ZsQ3DMAxFQckw4dIzeMxM4DEzg8qwkVcwUlHA3QTCZ/MA9cxsAABQRkRsVgAAoBqRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASDUBAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABe2hd667gvBwMA+M/5+S702p6ZbgYAQB0R4bsfAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAMBKej+POX6tzTmtAQBACQ83dBL1aiICywAAAABJRU5ErkJggg=="/><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">11.<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">2026-01-06</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI/ElEQVR42u3YIW7dQBCA4beRR4U5Q1TkE1RRZWBQqTfLJXoXAxf0Bia9QdCDHfLKygzSl2jH8vfR1YIdLfg17fOXrxcAACjj96+fD6YAAEA1IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgH9aZpoCAAB1RIRNKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAAPAxhqM/YJzme65v6+ITAABUY5MKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAA7tMy0xQAAKgjImxSAQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgL6G0758nOa9o21d/AwAgI5sUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAOJ2WmaYAAEAdEWGTCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAAAc23Dal4/TvHe0rYufAQDQkU0qAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAemuZaQoAANQRETapAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAgDcZTvvycZr3jrZ18TMAADqySQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAEBvLTNNAQCAOiLCJhUAgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAOLbhtC8fp3nvaFsXPwMAoCObVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAPTWMtMUAACoIyJsUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAABvMpz25eM07x1t6+JnAAB0ZJMKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCA3lpmmgIAAHVEhE0qAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCAHBsw2lfPk7z3tG2Ln4GAEBHNqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAJxOy0xTAACgjoiwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAABQwHB9efq/m6/ffhgfAADvbnz+3trjp9v1z+Vyu90MBACAEv4C9Ss99lcPeLMAAAAASUVORK5CYII="/><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,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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 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="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>es</span></div><div class="t m0 x1 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 xf 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 x1 hf y2e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 xf 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 x1 hf y31 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 x1 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="_ _f"> </span>another<span class="_ _b"> </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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3YsUkFURBA0X2yg9HDGsToVyAiBgaCndmEvRhoYAcmdmD02chJ1swCFoV5f8+pYJhJLtOurm8nAAAo4/P97cwWAACoRqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAPCrZaYtAABQR0T4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQCAPzYPNOvh7t7BAAC2+Xh9GWhan1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAcNpaZo4y67IsDgYAsE3vfZRRI8InFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCA/WqZaQsAANQRET6pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMA+zQPNuiyLgwEAbNN7H2han1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqFQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAAD+UctMWwAAoI6I8EkFAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgdM3Hp0tbqObr4dkSAIDdOtw8tnZxvh6/p2ldVwsBAKCEH+eYJfy15B17AAAAAElFTkSuQmCC"/><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 x1 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 x1 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 xf 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 x1 hf y3f ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 x1 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="_ _f"> </span>at<span class="_ _b"> </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="_ _b"> </span>resp<span class="_ _0"></span>ect<span class="_ _b"> </span>to<span class="_ _b"> </span>C++,<span class="_ _f"> </span>the<span class="_ _b"> </span>syntax<span class="_ _f"> </span>and<span class="_ _f"> </span>idioms<span class="_ _b"> </span>of<span class="_ _f"> </span>templates<span class="_ _f"> </span>a<span class="_ _5"></span>re</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="_ _f"> </span>p<span class="_ _5"></span>rogramming,<span class="_ _f"> </span>and<span class="_ _b"> </span>templates<span class="_ _f"> </span>can<span class="_ _f"> </span>b<span class="_ _d"></span>e<span class="_ _b"> </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="_ _b"> </span>are<span class="_ _b"> </span>implicitly<span class="_ _f"> </span>instantiated<span class="_ _b"> </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 x1 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 x1 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 xf 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 x1 hf y51 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 x1 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 x1 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 x1 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 x1 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="_ _0"></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="_ _0"></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="_ _f"> </span>units<span class="_ _b"> </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 x10 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 x1 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 x1 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 x1 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 xf 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 xf 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 x1 hf y64 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 x10 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJm0lEQVR42u3dMWsUQRzG4VvZP1aDhWIbJNUVVhYicsWBilhZ+J38EKYVv4LdKSeaRksP1ELQRlKFAYND5OxShty54szt83SBFMO7KX7s3ua6/dt3JwAAUI0vh28uWQEAgNqIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAznSlFCsAAFCPiHAnFQCA6ohUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAYWN/QWaezuQsGALCd1XLR0GndSQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAu60rpbRy1pyzCwYAsJ2UUitHjQh3UgEAqI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAACq0pVSrAAAQD0iwp1UAACqI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAMC/1Td01pyzCwYAsJ2UUkOndScVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqc34+u37q7eHZz++XLz+cXR0zu8/e/5i9vjJx0+fTQcAjFNXSmnlrDnnkVyVd+8/XL92dX9vzx8oADCUlFIrR40IkQoAIFKri1SP+wEAqI5IBQBApAIAgEgFAKA5Lb04BQDAGHhxCgCAGolUAABEKgAAiFQAAEQqAAD8rb6hs9bztagNfasYAECL3EkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAP9XV0qxAgAA9YgId1IBAKiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAHdObAICLyzkbYVMpJSPAptxJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgJHpTQAM4vT09835PTsMaLVcGAEYra6UYgUALijnbIRNpZSMABuJCI/7AQCojkgFAECkAgCASAUAoDlenAIAoC4R4V9QAQyvqlfgvVoOtMjjfgAARCoAAIhUAACa4zOpAEwmrX2VlA/aws5zJxUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAABrTt3LQ6WzuasEWVsuFEQBoTldKsQIAAPWICI/7AQCojkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEalNwGM0M+Tk1sPHtlhQKvlwggAA+pKKVYAAKAeEeFxPwAA1RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAwKB6E7CrprO5EeB8q+XCCECdulKKFQAAqEdEeNwPAEB1RCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIB69cdPb1iB5hzdPzACAOyq6Z2HXXfl8vr412SyXq8NAgBAFf4Awr93K+1I8QwAAAAASUVORK5CYII="/><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 y66 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 y67 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="_ _f"> </span><span class="ff11">template<span class="_ _b"> </span></span>keyw<span class="_ _5"></span>o<span class="_ _5"></span>rd</span></div><div class="t m0 x1 hf y68 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 x1 hf y69 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 x1 hf y6a ffc fs7 fc0 sc0 ls0 ws0"><span class="fc9 sc0">f</span><span class="fc7"><span class="fc9 sc0">&lt;</span><span class="ff6 fc4"><span class="fc9 sc0">int</span></span><span class="fc9 sc0">&gt;</span></span><span class="fc9 sc0">();</span></div><div class="t m0 xd he y6b 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 y6c 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 y6d 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="_ _a"> </span><span class="ff11">typename<span class="_ _c"> </span></span>,<span class="_ _b"> </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 y6e 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 y6f 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>or<span class="_ _b"> </span>user-decla<span class="_ _5"></span>red<span class="_ _f"> </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 y70 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 x10 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAItUlEQVR42u3YsUkGQRCA0Vu5wWixBjGyAhFj4e/MJizHwCLswOhnIyc5M0ODQ3H2fK+CYXaDj2k3dw8LAACU8fb6cmELAABUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPjSMtMWAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAMDBrBPNOsYoMknv3dcBAPg9LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEA4G+1zLQFAADqiAiXVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBAJjdOtGsYwwPBgCwT+99omldUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAB7tMy0BQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDge+tEs44xZhm19+5vAQDs5pIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAAAfTMtMWAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAGB260SzjjE8GADAPr33iaZ1SQUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKRaAQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAA6uZaYtAABQR0S4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAIAfsp6frm2B/+P98dkSAKC42/tTa1eX2/ljWbZtsxAAAEr4BMKGK/w/38xdAAAAAElFTkSuQmCC"/><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 y71 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 x1 hf y72 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 x1 hf y73 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 xf hf y74 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 x1 hf y75 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 y76 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 x1 hf y77 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 x1 hf y78 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 x1 hf y79 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 xf hf y7a 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 x1 hf y7b 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 x10 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,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"/><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 y7c 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 x3 hf y7d 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 x3 hf y7e 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 y7f 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 x3 hf y80 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x3 hf y81 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 y82 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 x3 hf y83 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 x3 hf y84 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 y85 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 x3 hf y86 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x3 hf y87 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 y88 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="_ _f"> </span>optimize<span class="_ _b"> </span>the<span class="_ _f"> </span>division</div><div class="t m0 x1 hc y89 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI0klEQVR42u3ZsU3FMBSG0WcUi8piBkTFBAhRI1FmlwxBlQ0YIkNQMAQbUD25wk3oXg2REl2Lcya4+tN8itPdw9MJAADC+Px4v7ICAADRiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAC5Sa80KAADEkXP2JxUAgHBEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAF0NHt9ZafTAAgG1KKR1d608qAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAwhhMQATjPBvhYMs0GQGAsFJrrZdba60+GADANqWUXk7NOXvuBwAgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAAD2NZiACMZ5NsLBlmkyAgBhpdZaL7fWWn0wAIBtSim9nJpz9twPAEA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAOxrMAERjPNshIMt02QEAMJKrbVebq21+mAAANuUUno5NefsuR8AgHBEKgAA4fT03A8AwH/guR8AgIhEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAPzRcH69tQLs6uv5zQgA8Hv3jy8p3Vyv5+/TaV1XgwAAEMIPcp00/OIT93wAAAAASUVORK5CYII="/><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="_ _8"> </span>values</span></div><div class="t m0 x1 hf y2c 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 x1 hf y2d 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="fca">&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 x1 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 x1 hf y2f 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="fca">&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 x1 hf y31 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 x1 hf y8b 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 x1 hf y32 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 x1 hf y33 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 x1 hf y8c 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 x1 hf y8d 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 x1 hf y8e 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 x1 hf y8f 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 x10 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,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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<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 y90 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 x1 hf y91 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 x1 hf y92 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 x1 hf y93 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 x1 hf y94 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 xf hf y95 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 x1 hf y96 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he y97 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 y98 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="_ _f"> </span>co<span class="_ _d"></span>de<span class="_ _b"> </span>only<span class="_ _f"> </span>if<span class="_ _f"> </span>it<span class="_ _b"> </span>is<span class="_ _f"> </span>called</span></div><div class="t m0 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YoQ1CMRSG0VvyGtQLMxAUExCCJmEzlmAcBEOwAerlKWqKw4Nq4ZwJmr/my02b3SEAAKAZ99t1YQUAAFojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAeEulFCsAANCOnLNLKgAAzRGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAEBERAwdvXWeZx8GAPCdcRw7eq1LKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAD6RSihUAAGhHztklFQCA5ohUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQCAPzJM57UV4Mc8jhcjANCv7f6U0mpZp2dErdUgAAA04QWG6xoCUoYHaAAAAABJRU5ErkJggg=="/><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>parameters,<span class="_ _f"> </span>template<span class="_ _8"> </span>pa<span class="_ _5"></span>rameters<span class="_ _8"> </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 y99 ff1 fs8 fc0 sc0 ls0 ws0">p<span class="_ _5"></span>revious<span class="_ _8"> </span>values</div><div class="t m0 x1 hf y9a 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 x1 hf y9b 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 xf hf y9c 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 x1 hf y9d ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y9e 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 x1 hf y9f 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 xf hf ya0 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 x1 hf ya1 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf ya2 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 x1 hf ya3 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjklEQVR42u3YsUlEQRSG0Rl5F6PBGmSjrUDEWLAzm7AcA4uwg42WifYmz0CwgAXxjpxTwfBP8nH74eGpAQBAGZ8f7zdWAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMCPnplWAACgjohwSQUAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAACL2BZ665zThwEAXGeMsdBrXVIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAWmutZ6YVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAPwj20JvnXP6MACA64wxFnqtSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAAquqZaQUAAOqICJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAA+G3b+fXeCsC30/ObEQD4c8fHl97vbvfzpbV93w0CAEAJX7ZCIADNkCwQAAAAAElFTkSuQmCC"/><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 ya4 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 x1 he ya5 ff4 fs8 fc0 sc0 ls0 ws0">Concrete<span class="_ _b"> </span>type<span class="_ _f"> </span>overloading<span class="_ _f"> </span>has<span class="_ _b"> </span>higher<span class="_ _f"> </span>precedence</div><div class="t m0 x1 hf ya6 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 x1 hf ya7 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="_ _11"> </span><span class="ff6 fc6">return<span class="_ _9"> </span></span>a<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>b;<span class="_ _11"> </span>}<span class="_ _22"> </span><span class="ffd fc8">//<span class="_ _9"> </span>e.g<span class="_ _9"> </span>add(3,<span class="_ _11"> </span>4);</span></div><div class="t m0 x1 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 x1 hf ya9 ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">add(</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 class="_ _11"> </span></span><span class="fc6">return<span class="_ _9"> </span><span class="ffc fc0">a<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>b<span class="_ _11"> </span><span class="fc7">+<span class="_ _9"> </span>1</span>;<span class="_ _9"> </span>}<span class="_ _11"> </span><span class="ffd fc8">//<span class="_ _9"> </span>higher<span class="_ _9"> </span>precendence<span class="_ _9"> </span>over</span></span></span></div><div class="t m0 x12 hf yaa ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>the<span class="_ _9"> </span>generic<span class="_ _11"> </span>version</div><div class="t m0 x1 hf yab ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span>different<span class="_ _9"> </span>number<span class="_ _11"> </span>of<span class="_ _9"> </span>parameters</div><div class="t m0 x1 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 x1 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="ff6 fc6">return<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="_ _11"> </span></span>c;}<span class="_ _12"> </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 yae 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 x1 hf yaf 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 class="_ _23"> </span><span class="ffd fc8">//<span class="_ _9"> </span>it<span class="_ _9"> </span>is<span class="_ _11"> </span>not<span class="_ _9"> </span>in<span class="_ _9"> </span>conflict<span class="_ _11"> </span>with</span></span></span></div><div class="t m0 x1 hf yb0 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="_ _11"> </span><span class="ff6 fc6">return<span class="_ _9"> </span></span>a<span class="_ _9"> </span><span class="fc7">+<span class="_ _9"> </span></span>b<span class="_ _11"> </span><span class="fc7">+<span class="_ _9"> </span></span>C;<span class="_ _1f"> </span>}<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _9"> </span>T<span class="_ _11"> </span>add(T<span class="_ _9"> </span>a,<span class="_ _9"> </span>T<span class="_ _9"> </span>b)</span></div><div class="t m0 x13 hf yb1 ffd fs7 fc8 sc0 ls0 ws0">//<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</div><div class="t m0 x10 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="_ _24"> </span>1/2</div><div class="t m0 xd he yb2 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 yb3 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 yb4 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 yb5 ff1 fs8 fc0 sc0 ls0 ws0">The<span class="_ _8"> </span>p<span class="_ _5"></span>roblem:</div><div class="t m0 x1 hf yb6 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 x1 hf yb7 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 xf hf yb8 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 x1 hf yb9 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he yba 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 ybb ff4 fs8 fc0 sc0 ls0 ws0">erro<span class="_ _5"></span>rs</div><div class="t m0 x10 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="_ _24"> </span>2/2</div><div class="t m0 x1 he ybc 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 x1 hf ybd ff6 fs7 fc6 sc0 ls0 ws0">template<span class="ffc fc7">&lt;&gt;</span></div><div class="t m0 x1 hf ybe 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 xf hf ybf 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 x1 hf yc0 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 he yc1 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 yc2 ff4 fs8 fc0 sc0 ls0 ws0">a<span class="_ _5"></span>rguments<span class="_ _f"> </span>are<span class="_ _b"> </span>specialized</div><div class="t m0 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoElEQVR42u3aMWoCQRiG4R3ZH6vBM4RUniCIteARvIeHSG+dQ+QQFjlEbpBKpoljsXbpAkESmInPc4Kfb5qXZdPj03oAAIBmvL8dZ1YAAKA1IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgC+p1moFAADaERG+pAIA0ByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgBA88aObi2leDAAgNvknDu61pdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBALh3owngt3xeLrvDwQ4/9LrfGwGA76Raay+3llI8GADAbXLOvZwaET1FKgAA9yAi/JMKAEBzRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQDgL42n5wcrAD362LwYAeBfWq62KS3m0+k8DNM0GQQAgCZcARX1JgATAkRhAAAAAElFTkSuQmCC"/><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 yc3 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="_ _f"> </span>a<span class="_ _b"> </span>sp<span class="_ _d"></span>ecial<span class="_ _f"> </span>case<span class="_ _f"> </span>of<span class="_ _b"> </span>a<span class="_ _f"> </span><span class="ffa">class<span class="_ _f"> </span>template<span class="_ _8"> </span></span>(see<span class="_ _f"> </span>next</div><div class="t m0 x1 he yc4 ff4 fs8 fc0 sc0 ls0 ws0">lecture)</div><div class="t m0 x1 hf yc5 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 x1 hf yc6 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 x1 hf yc7 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 x1 hf yc8 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 xf hf yc9 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 x1 hf yca ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf ycb 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 x1 hf ycc 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 x1 hd ycd 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 x10 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 yce 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 ycf 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 yd0 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 yd1 ffb fs8 fc0 sc0 ls0 ws0"></div><div class="t m0 x14 he yd2 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 yd3 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 yd4 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 yd5 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 yd6 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">generic<span class="_ _b"> </span>type<span class="_ _26"> </span><span class="ff11">typename</span></span></div><div class="t m0 x1 he yd7 ff4 fs8 fc0 sc0 ls0 ws0">and<span class="_ _b"> </span>rarely:</div><div class="t m0 xe he yd8 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _6"> </span><span class="ffa">function</span></div><div class="t m0 xe he yd9 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 yda 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 ydb ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </span><span class="ff11">nullptr_t<span class="_ _18"> </span><span class="ff4 fc3">C++14</span></span></div><div class="t m0 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIo0lEQVR42u3ZMUoDQRTH4R3Zh9XgGSRVTiBiLaT3KDmEZS7gITyERQ7hDazCVD4wa5fCQmQlMEu+7wSP/zY/Zsvq7mEAAIBuvO/frqwAAEBvRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACclM60AAEA/IsJLKgAA3RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACcjAu6tbXmgwEAzFNrXdC1XlIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgwowmgB++jsen3c4O5/O63RoBgN+VzFzKra01HwwAYJ5a61JOjQi/+wEA6I5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAgLlKZloBAIB+RISXVAAAuiNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAD/MR6eb60A8Ecfjy9GADi39f2mlJvr6fA5DNM0GQQAgC58A6kYJgCPJJfxAAAAAElFTkSuQmCC"/><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 x1 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 x1 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 x1 hf y8a 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 x1 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 xf 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="fca">&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 x1 hf y31 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 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 xf 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 xf hf ydc 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 x1 hf y8c ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 hf y8e 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjklEQVR42u3YsU0DQRCG0VvrRkQrarCIqABZxJbojCYoxwFF0AGRtRGTHBmxZQl5Vn6vgtV/F3ya9vTyugAAQBlfn6edFQAAqEakAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAADwp2WmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBAKhrneitY4xZntp7928BAFzNJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAADuTMtMKwAAUEdEuKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAt7VO9NYxhg8GAHCd3vtEr3VJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAmFnLTCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAAprKe3/dWAPhv38cPIwBc6Pnw1trjw3b+WZZt2wwCAEAJv27WIABlu85TAAAAAElFTkSuQmCC"/><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="_ _f"> </span>the</span></div><div class="t m0 xd he ydd 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 x1 hf yde 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 x1 hf ydf 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 x1 hf ye0 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 x1 hf ye1 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 x1 hf ye2 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 x1 hf ye3 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 x1 hf ye4 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="_ _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>int</span></div><div class="t m0 x1 hf ye5 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 fca">&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 x1 hf ye6 ffc fs7 fc0 sc0 ls0 ws0">g2<span class="fc7">&lt;2</span>,<span class="_ _9"> </span><span class="ff13 fca">&apos;<span class="ffc">a</span>&apos;</span><span class="fc7">&gt;</span>();<span class="_ _23"> </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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdUlEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSNmMJRiHgiHYgCpKhRvTMQDVN5wzgfXcXP28O5wSAACE8bjfVlYAACAakQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwEeutVoBAIA4SikuqQAAhCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAH7I0NFbl2XxYQAA3xnHsaPXuqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQCge7nWagUAAOIopbikAgAQjkgFACCcYb5srQAQ2fN8NQLwV/bHKefNus2vlFprBgEAIIQ3TdUaAsUtS2UAAAAASUVORK5CYII="/><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 x15 h10 ye7 ff14 fs5 fc1 sc0 ls0 ws0"></div><div class="t m0 x16 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">2/2</div><div class="t m0 x1 he y2b ff1 fs8 fc0 sc0 ls0 ws0">F<span class="_ _5"></span>unction</div><div class="t m0 x1 h11 ye8 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="_ _25"> </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 x1 h11 ye9 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 x17 h11 yea 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 x1 h11 yeb ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 h11 yec 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 x1 h11 yed 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 x1 h11 yee 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 x1 h11 yef 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 x17 h11 yf0 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 x1 h11 yf1 ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 h11 yf2 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 x17 h11 yf3 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 x17 h11 yf4 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 x1 h11 yf5 ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 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 yce ff1 fs0 fc0 sc0 ls0 ws0">Compile-Time</div><div class="t m0 xc h2 ycf 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="_ _8"> </span>an<span class="_ _f"> </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 y99 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 yf6 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="_ _f"> </span>the<span class="_ _b"> </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 x1 hf yf7 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="fca">&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 x1 hd yf8 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="fca">&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 class="_ _5"></span><span class="ffd">,<span class="_ _11"> </span>print<span class="_ _9"> </span>&quot;test2&quot;</span></span></span></span></div><div class="t m0 x1 he yf9 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 x1 hf yfa 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 x1 hf yfb 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 x1 hf yfc 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 x1 hd yfd 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 yfe 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 x1 hf yff 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="fca">&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 x10 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJAUlEQVR42u3YvW1VQRCA0bfojhytqAERuQLLQgQESHRGE/RCgAN34MQdOLImYpLnDJG9H0v2rH1OBbuzulefZny++rIDAIA27m9vPpgCAADdiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAP4ZVWUKAAD0ERE2qQAAtCNSAQAQqQAAIFIBABCpAADwXNtCZ738+s2DAQCc5+7P74VOa5MKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAAC8qFFVq5w1Mz0YAMB55pyrHDUibFIBAGhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAID3bVSVKQAA0EdE2KQCANCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAADPsxnB8TJz9SvMOb0jvi/fJkB/NqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAwElGVZkCAAB9RIRNKgAA7YhUAABEKgAAiFQAAJazGcHxMnP1K8w5vSPgt/xm+KvzhtmkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAnGVVlCgAA9BERNqkAALQjUgEAEKkAAHDIZgTHy8zVrzDn9I4AQH82qQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAYG2jqkwBAIA+IsImFQCAdkQqAAAiFQAADtmM4HiZufoV5pzeEQDozyYVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAADjJqCpTAACgj4iwSQUAoB2RCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAA1rYtdNbM9GAAAOeZcy50WptUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAJY3qsoUAADoIyJsUgEAaEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAeL+2x5+fTAGA/z18/2UIwCu6vP4xxseL/ePf3W6/3xsIAAAtPAECHkP0f0KoFgAAAABJRU5ErkJggg=="/><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 y100 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 y101 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 y102 ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y103 ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y104 ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y105 ffb fs4 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 x1 hf y106 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 x1 hf y107 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 x1 hf y108 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="_ _1d"> </span>equal<span class="_ _11"> </span>to:</span></span></span></div><div class="t m0 x1 hf y109 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIjUlEQVR42u3YsU0DQRCG0Vt0I6IVNViOXAFCxEh0RhOU44Ai6MCRtZEnOTIKOBCaFe9VsPo3+TTt+Pi8AABAGZ8f5zsrAABQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOBby0wrAABQR0S4pAIAUI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQCYyDrRW8cYPgwAYJ/e+0SvdUkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA+E9aZloBAIA6IsIlFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCA/daJ3jrG8GEAAPv03id6rUsqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAYI+WmVYAAKCOiHBJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAMCfWa9vBysA8CsuL+9GAH7u9PTa2sP9dr0ty7ZtBgEAoIQvFCAgAPG5EwoAAAAASUVORK5CYII="/><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 y10a 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 x1 hf y10b 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 x1 hf y10c 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 x18 hf y10d 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 x1 hf y10e 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 x1 hf y10f 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 x1 hf y110 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 y111 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 x1 hf y112 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 xf hf y113 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 x1 hf y114 ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 hf y115 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 x10 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,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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="_ _2b"> </span>1/4</span></div><div class="t m0 x1 he y116 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="_ _8"> </span>deduces<span class="_ _f"> </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 y117 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y118 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y119 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _f"> </span>of<span class="_ _b"> </span>the<span class="_ _f"> </span>expression</span></span></div><div class="t m0 x2 he y11a 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="_ _f"> </span>exp<span class="_ _5"></span>ression,<span class="_ _f"> </span>i.e.<span class="_ _4"> </span><span class="ff11">decltype((var))<span class="_ _c"> </span></span>,<span class="_ _b"> </span>is<span class="_ _b"> </span>deduced<span class="_ _f"> </span>as</span></div><div class="t m0 x19 he y11b ff4 fs8 fc0 sc0 ls0 ws0">an<span class="_ _b"> </span><span class="ffa">lvalue</span></div><div class="t m0 x2 he y11c 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 x10 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4YtcsDqcQaycQMRacDOXcBwLh3ADqyOVaWLnADb+OZ5ngvClefnT7nAaAAAgjOfjvrICAADRiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAL5SrdUKAADEkXN2SQUAIByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAIDejR29tZTiwwAAfjNNU0evdUkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkmgAAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEg1AQAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAP4s1VqtAABAHDlnl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBg2cb5urUCAP16nW9GgIXZHy8pbdZtfg9Da80gAACE8AG7MxoCeZhJDwAAAABJRU5ErkJggg=="/><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 x1 hf y11d 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 x1 hf y11e 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 x1 hf y11f 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 x1 hf y120 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 x1 hf y121 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 x1 hf y122 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 x1 hf y123 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 x1 hf y124 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 x1 hf y125 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 x1 hf y126 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 x1 hf y127 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 x1 hf y128 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 x1 hf y129 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 x1 hf y12a 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIlklEQVR42u3csY3CMBiG4RjFuipiBkTFBAhdjZQVKJiHJdiAghmQKBiCDahQigM3oWMAKPjDPc8E1ufmlQun6fy3AgCAMM6n48gKAABEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAHhKpRQrAAAQR87ZSyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAL5OPaCzdl3nwgAAXtM0zYBO6yUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAAPiwVEqxAgAAceScvaQCABCOSAUAQKQCAIBIBQBApAIAwLvqoRz073ZrV2sXBsNy2O+MAMALfEEFAEAsvqACACAikQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAvlt93UysAMA/dFlujQAxzRZtSuOf/nqvqr7vDQIAQAgPih0jAOdB5uoAAAAASUVORK5CYII="/><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 x18 h10 ye7 ff14 fs5 fc1 sc0 ls0 ws0"></div><div class="t m0 x16 h7 y8 ff1 fs3 fc1 sc0 ls0 ws0">3/4</div><div class="t m0 x1 hf y12b 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 x1 hf y12c 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 xf hf y12d ff6 fs7 fc4 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x;</span></div><div class="t m0 x1 hf y12e ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 x1 hf y12f 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 x1 hf y130 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 x1 hf y131 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 x1 hf y132 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 x1 hf y133 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 x1 hf y134 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 x1 hf y135 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 x1 hf y136 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 y137 ffc fs7 fcb sc0 ls0 ws0">www.ibm.com/support/knowledgecenter</div><div class="t m0 x10 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.895000px;width:166.750000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
<div id="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 y10a ff4 fs8 fc3 sc0 ls0 ws0">C++11</div><div class="t m0 x1 hf y10b 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 x1 hf y10c 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 xf hf y10d 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 x1 hf y10e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y138 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 x1 hf y110 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 y111 ff4 fs8 fc3 sc0 ls0 ws0">C++14</div><div class="t m0 x1 hf y112 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 x1 hf y113 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 xf hf y114 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 x1 hf y115 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x10 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 y139 ff1 fs8 fc1 sc0 ls0 ws0">Introsp<span class="_ _d"></span>ection</div><div class="t m0 xd he y13a 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="_ _f"> </span>p<span class="_ _5"></span>rop<span class="_ _d"></span>erties</span></div><div class="t m0 xd he y13b ff1 fs8 fc1 sc0 ls0 ws0">Reflection</div><div class="t m0 xd he y13c 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="_ _f"> </span>examine,<span class="_ _b"> </span>introsp<span class="_ _d"></span>ect,<span class="_ _f"> </span>and<span class="_ _f"> </span>mo<span class="_ _d"></span>dify</span></div><div class="t m0 xd he y13d 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 y13e 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 y13f 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI4ElEQVR42u3ZMUpcURTH4bnyDqkuriFYuYGEICksBEnhttyEq7CwTZEUIRtI4w5SDbfyNM8uXQQHHc6d+b4VHP6v+XFfO/t8sQEAgDIef/08sQIAANWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAA/mmZaQUAAOqICC+pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAOCNLRPdev710gcDANjNnx/fJ7rWSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAOGwtM2e5dYzhgwEA7Kb3PsupEeElFQCAckQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAqG0xAXz6dmOEd/X74d4IALxKy8xZbh1j+GAAALvpvc9yakT43Q8AQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAA8JKWmVYAAKCOiPCSCgBAOSIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgiCwT3TrG8MEAAHbTe5/oWi+pAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVBMAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAALAvLTOtAABAHRHhJRUAgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAABSzmACA/xljGOGw9d6NQE1eUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAwNxaZloBAIA6IsJLKgAA5YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBgr5bt7UcrAEBxf6/ujMDxOP9y3drph3X7tNms62oQAABKeAbCBjT4vLieGgAAAABJRU5ErkJggg=="/><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="_ _8"> </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="_ _f"> </span><span class="ffa">query<span class="_ _9"> </span></span>or<span class="_ _b"> </span><span class="ffa">mo<span class="_ _d"></span>dify<span class="_ _11"> </span></span>the<span class="_ _b"> </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 x1 hf y140 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 x1 hf y141 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 xf hf y142 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 x1 hf y143 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y144 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 x1 hf y145 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 x1 hf y146 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 y147 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGIt3GYu4TgWDuEGVsdVpomdAwjCf+fzTBC+NC9/3h1OCQAAwnjcbysrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAj11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIA8Ce6Gb11miYfBgDwnb7vZ/Ral1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAgCXLtVYrAAAQRynFJRUAgHBEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQCA3+nGy9YKALBUz/PVCMzO/jjkvFm38ZVSa80gAACE8AZ9/hoCnN+RCAAAAABJRU5ErkJggg=="/><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 y99 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>types</div><div class="t m0 x1 h11 y148 ff6 fs5 fc6 sc0 ls0 ws0">template<span class="ff15 fc7">&lt;</span>typename<span class="_ _8"> </span><span class="fc5">T<span class="ff15 fc7">&gt;</span></span></div><div class="t m0 x1 h11 y149 ff15 fs5 fc0 sc0 ls0 ws0">T<span class="_ _8"> </span>integral_div(T<span class="_ _1d"> </span>a,<span class="_ _1d"> </span>T<span class="_ _8"> </span>b)<span class="_ _1d"> </span><span class="fc7">=<span class="_ _1d"> </span><span class="ff6 fc6">delete</span></span>;<span class="_ _1d"> </span><span class="ffd fc8">//<span class="_ _8"> </span>declaration,<span class="_ _1d"> </span>error<span class="_ _8"> </span>for<span class="_ _1d"> </span>other<span class="_ _8"> </span>types</span></div><div class="t m0 x1 h11 y14a ff6 fs5 fc6 sc0 ls0 ws0">template<span class="ff15 fc7">&lt;&gt;</span></div><div class="t m0 x1 h11 y14b ff6 fs5 fc4 sc0 ls0 ws0">char<span class="_ _8"> </span><span class="ff15 fc0">integral_div<span class="fc7">&lt;</span></span>char<span class="ff15 fc7">&gt;<span class="fc0">(</span></span>char<span class="_ _1d"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>char<span class="_ _8"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{<span class="_ _31"> </span><span class="ffd fc8">//<span class="_ _8"> </span>specialization</span></span></div><div class="t m0 x17 h11 y14c ff6 fs5 fc6 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ff15 fc0">a<span class="_ _1d"> </span><span class="fc7">/<span class="_ _1d"> </span></span>b;</span></div><div class="t m0 x1 h11 y14d ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 h11 y14e ff6 fs5 fc6 sc0 ls0 ws0">template<span class="ff15 fc7">&lt;&gt;</span></div><div class="t m0 x1 h11 y14f ff6 fs5 fc4 sc0 ls0 ws0">int<span class="_ _25"> </span><span class="ff15 fc0">integral_div<span class="fc7">&lt;</span></span>int<span class="ff15 fc7">&gt;<span class="fc0">(</span></span>int<span class="_ _8"> </span><span class="ff15 fc0">a,<span class="_ _1d"> </span></span>int<span class="_ _1d"> </span><span class="ff15 fc0">b)<span class="_ _1d"> </span>{<span class="_ _32"> </span><span class="ffd fc8">//<span class="_ _8"> </span>specialization</span></span></div><div class="t m0 x17 h11 y150 ff6 fs5 fc6 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ff15 fc0">a<span class="_ _1d"> </span><span class="fc7">/<span class="_ _1d"> </span></span>b;</span></div><div class="t m0 x1 h11 y151 ff15 fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 h11 y152 ff15 fs5 fc0 sc0 ls0 ws0">...<span class="ff6 fc4">unsigned<span class="_ _8"> </span>char</span></div><div class="t m0 x1 h11 y153 ff15 fs5 fc0 sc0 ls0 ws0">...<span class="ff6 fc4">short</span></div><div class="t m0 x1 h11 y154 ff15 fs5 fc0 sc0 ls0 ws0">...</div><div class="t m0 x1 he y155 ff1 fs8 fc0 sc0 ls0 ws0">V<span class="_ _5"></span>ery<span class="_ _8"> </span>redundant!!</div><div class="t m0 x10 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,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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>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 x1 hf y156 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </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 x1 hf y157 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 x1 hf y158 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 xf hf y159 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 x8 hf y15a ffc fs7 fca 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 xf hf y15b 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 x1 hf y15c ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h6 y15d 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 y15e 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="_ _c"> </span><span class="ff4">,<span class="_ _2a"> </span></span>short<span class="_ _34"> </span><span class="ff4">,<span class="_ _2a"> </span></span>int<span class="_ _34"> </span><span class="ff4">,<span class="_ _2a"> </span></span>long<span class="_ _c"> </span><span class="ff4">,<span class="_ _2a"> </span></span>long<span class="_ _6"> </span>long<span class="_ _34"> </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 y15f 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 x1 hf y160 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 x10 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="_ _35"> </span>1/3</div><div class="t m0 xe he y7c ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">bool<span class="_ _34"> </span></span>,<span class="_ _18"> </span><span class="ff11">char<span class="_ _c"> </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 x14 he y161 ff11 fs8 fc0 sc0 ls0 ws0">short<span class="_ _34"> </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="_ _c"> </span><span class="ff4">,<span class="_ _b"> </span>etc.)</span></div><div class="t m0 xe he y162 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">float<span class="_ _34"> </span></span>,<span class="_ _18"> </span><span class="ff11">double<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y163 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y164 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">float<span class="_ _34"> </span></span>,<span class="_ _18"> </span><span class="ff11">int<span class="_ _c"> </span></span>,<span class="_ _b"> </span>etc.)</span></div><div class="t m0 xe he y165 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">unsigned<span class="_ _34"> </span></span>,<span class="_ _18"> </span><span class="ff11">bool<span class="_ _c"> </span></span>,<span class="_ _b"> </span>etc.)</span></div><div class="t m0 xe he y166 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _34"> </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="_ _c"> </span></span>)</span></div><div class="t m0 xe he y167 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">void<span class="_ _34"> </span></span>)</span></div><div class="t m0 xe he y168 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _34"> </span><span class="ff11">T*<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y169 ffb fs8 fc0 sc0 ls0 ws0"></div><div class="t m0 x14 he y16a 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 x10 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="_ _36"> </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 y16b ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span></span>)</span></div><div class="t m0 xe he y16c ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _34"> </span><span class="ff11">T<span class="_ _15"> </span>(&amp;)[N]<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y16d ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y16e ff1 fs8 fc0 sc0 ls0 ws0">Class<span class="_ _8"> </span>queries:</div><div class="t m0 xe he y16f ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">struct<span class="_ _34"> </span></span>,<span class="_ _18"> </span><span class="ff11">class<span class="_ _c"> </span></span>)</span></div><div class="t m0 xe he y170 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y171 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 x10 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="_ _37"> </span>3/3</div><div class="t m0 x1 he y172 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 y173 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>is<span class="_ _18"> </span><span class="ff11">const</span></span></div><div class="t m0 x1 he y174 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 y175 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y176 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y177 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _f"> </span>converted<span class="_ _b"> </span>to<span class="_ _18"> </span></span>R</span></span></div><div class="t m0 xe hc y178 ff8 fs7 fcb 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 x10 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,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"/><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 x1 hf y179 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y17a 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 x1 hf y17b 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="_ _1d"> </span><span class="fc7">&lt;&lt;<span class="_ _11"> </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 x1 hf y17c 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 x1 hf y17d 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="_ _1d"> </span><span class="fc7">&lt;&lt;<span class="_ _11"> </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 x1 hf y17e 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 x1 hf y17f 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 x1 hf y180 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 x1 hf y181 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 x1 hf y182 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 x1 hf y183 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 x1 hf y184 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 x10 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,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"/><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 x1 hf y185 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y186 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 x1 hf y187 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 xf hf y188 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="fca">&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 xf hf y189 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 x1 hf y18a ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y18b 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 x1 hd y18c 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="_ _9"> </span>have<span class="_ _11"> </span>the<span class="_ _9"> </span>same<span class="_ _9"> </span>type&quot;</div><div class="t m0 x1 hf y18d ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y18e 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 x1 hf y18f 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 x1 hf y190 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="_ _22"> </span><span class="ffd fc8">//<span class="_ _9"> </span>true</span></div><div class="t m0 x1 hf y191 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 x10 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,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIv0lEQVR42u3YsUlEQRSG0R15F6OLNYiRFYgYC3ZmE5ZjYBF2YLRM5CTPQBBMFt0Hemc5p4Lhn+Tjtqubux0AAJTx+vJ8ZgUAAKoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAfGljDCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAcspgAAH6o9z7RazPTlzEvl1QAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEA4FfaGMMKAADUEREuqQAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAABbLCZgFr13IxwhM33xCY8GcKpcUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDA/1pMABSRmUYA4JNLKgAAIhUAAEQqAAAiFQAAtmpjDCsAAFBHRLikAgBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAYpaJ3tp792EAAMfJzIle65IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAMBmbYxhBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAA5rVM9Nbeuw8DADhOZk70WpdUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgmzbGsAIAAHVEhEsqAADliFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAmMSyf7y0AgDAX3q7fzLCAde3D61dnK/7991uXVeDAABQwgdYwy8lpExY0QAAAABJRU5ErkJggg=="/><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 y192 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 y193 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 x1 hf y194 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y195 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 x1a hf y196 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 x1 hf y197 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="_ _1d"> </span>unsigned</span></div><div class="t m0 x1 he y198 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 x1 hf y199 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 x10 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="_ _38"> </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 y19a ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y19b ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y19c 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 y19d ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">T*<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T<span class="_ _34"> </span></span>)</span></div><div class="t m0 xe he y19e ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">T&amp;<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T<span class="_ _34"> </span></span>)</span></div><div class="t m0 xe he y19f ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">T<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T*<span class="_ _34"> </span></span>)</span></div><div class="t m0 xe he y1a0 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _c"> </span><span class="ff11">T<span class="_ _18"> </span><span class="fff"><span class="_ _18"> </span></span>T&amp;<span class="_ _34"> </span></span>)</span></div><div class="t m0 x10 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="_ _39"> </span>2/2</div><div class="t m0 xd he y1a1 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 y1a2 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _34"> </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="_ _c"> </span></span>)</span></div><div class="t m0 xe he y1a3 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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 y1a4 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 y1a5 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _18"> </span><span class="ff11">T<span class="_ _2a"> </span></span>and<span class="_ _18"> </span><span class="ff11">R</span></span></span></span></div><div class="t m0 xe he y1a6 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _34"> </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 y1a7 ffb fs8 fc0 sc0 ls0 ws0"><span class="_ _25"> </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="_ _f"> </span>t<span class="_ _5"></span>yp<span class="_ _d"></span>e<span class="_ _f"> </span>as<span class="_ _b"> </span>a<span class="_ _f"> </span>function<span class="_ _f"> </span>pa<span class="_ _5"></span>rameter<span class="_ _f"> </span>passed<span class="_ _f"> </span>b<span class="_ _5"></span>y-value</span></span></span></div><div class="t m0 x10 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 x1 hf y179 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y17a 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 x1 hf y17b 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 xf hf y1a8 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 xf hf y17c 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 x1 hf y17d ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y17e 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 x1 hf y17f 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 xf hf y180 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 xf hf y1a9 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 x1 hd y181 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 x1 hf y182 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y183 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="fca">&quot;abc&quot;</span></span>;</span></div><div class="t m0 x1 hf y184 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 x1 hf y1aa 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 x10 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/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIoElEQVR42u3ZMUrEUBCA4TzJYPXwDGLlCUSsBUvvsoew2ht4CA9h4SG8gdXyKqfJdpYKYVkm+H19yGSS4uel3dw9TAAAUMbnx/uFLQAAUI1IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgR8tMWwAAoI6IcJIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAzmze0KxjDC8MAGCd3vuGpnWSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASLUCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQCoaf7PD/+835//pm+7nc8OAOB3LTO3MusYwwsDAFin976VUSPC734AAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAABwIi0zbQEAgDoiwkkqAADliFQAAEQqAAD8ZT68XNsCAAAn9/X4uu7C2/un1q4ul8P3NC3LYpMAAJRwBI5DIwDzfjurAAAAAElFTkSuQmCC"/><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 x1 hf y1ab ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y1ac 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 x1 hf y1ad 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 x1 hf y1ae 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 xf hf y1af 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 x1 hf y1b0 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y1b1 ff6 fs7 fc6 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">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>);<span class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span><span class="ff16">&apos;</span>x<span class="ff16">&apos;<span class="_ _9"> </span></span>has<span class="_ _9"> </span>type<span class="_ _9"> </span>float</span></span></div><div class="t m0 x1 hf y1b2 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 x1 hf y1b3 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 class="_ _9"> </span><span class="ffd fc8">//<span class="_ _11"> </span><span class="ff16">&apos;</span>result_t<span class="ff16">&apos;<span class="_ _9"> </span></span>is<span class="_ _9"> </span>float</span></span></div><div class="t m0 x1 hf y1b4 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 x1 hf y1b5 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _9"> </span><span class="ffe">NOTE</span></div><div class="t m0 x1 hf y1b6 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _12"> </span>decltype(T{}<span class="_ _9"> </span>+<span class="_ _9"> </span>R{})<span class="_ _11"> </span>is<span class="_ _9"> </span>not<span class="_ _9"> </span>the<span class="_ _11"> </span>same<span class="_ _9"> </span>of<span class="_ _9"> </span>std::common_type_t&lt;R,<span class="_ _9"> </span>T&gt;,<span class="_ _11"> </span>e.g.</div><div class="t m0 x1 hf y1b7 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _13"> </span>decltype(short{}<span class="_ _9"> </span>+<span class="_ _9"> </span>short{})<span class="_ _20"> </span>-&gt;<span class="_ _11"> </span>int</div><div class="t m0 x1 hf y1b8 ffd fs7 fc8 sc0 ls0 ws0">//<span class="_ _13"> </span>std::common_type_t&lt;short,<span class="_ _9"> </span>short&gt;<span class="_ _9"> </span>-&gt;<span class="_ _11"> </span>short</div><div class="t m0 x10 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 x1 hf y1b9 ffd fs7 fcc sc0 ls0 ws0">#<span class="_ _33"> </span>include<span class="_ _2a"> </span><span class="fc8">&lt;type_traits&gt;</span></div><div class="t m0 x1 hf y1ba 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 x1 hf y1bb 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 xf hf y1bc 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 xf hf y1bd 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 xf hf y1be 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 x1 hf y1bf ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hf y1c0 ffc fs7 fc0 sc0 ls0 ws0">f(<span class="_ _12"> </span><span class="fc7">2</span>,<span class="_ _1f"> </span><span class="ff13 fca">&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 x1 hf y1c1 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 x1 hf y1c2 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 x10 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>