<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div>Hello Matt!</div><div><br class=""><blockquote type="cite" class=""><div class="">Hi Tino, Thanks for making your proposal.</div></blockquote><div>well, it has to be decided yet if that document turns into a real proposal (but I hope so ;-) &nbsp;</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">got me thinking. &nbsp;What if parameters marked with static, or constexpr, or some such, could complement template parameters, rather than being an alternative to them. &nbsp;Basically, stuff between the angle brackets is relevant for determining storage needed, and other constexpr parameters enable arbitrary compile time checks. &nbsp;I hope the mailing list doesn’t mind a little brainstorming about these further off features.</div></div></blockquote></div>imho the list is quite good at simply ignoring stuff it doesn't care for :-) — but I would expect some feedback if you open a thread for the topic:<div class="">I'm still waiting for someone asking for compile-time execution with a reference to&nbsp;</div><div class=""><a href="https://www.youtube.com/watch?v=UTqZNujQOlA" class="">https://www.youtube.com/watch?v=UTqZNujQOlA</a></div><div class="">(it's such a cool concept — we really should have a use case for it :), and your idea is a variant of this feature.</div><div class=""><br class=""></div><div class="">I have read several times that Swift 3 won't have macros, but have the impression that this is a huge topic, so even if proposals heading in this direction won't (most likely) be accepted now, they might become important next year.</div><div class="">As far as I know, some compilers are already clever enough to replace simple calculations (like secondsPerDay = 60*60*24; f = pi * 2.0;…), so it is not that strange to extend that concept.</div><div class="">In theory, this could work without new keywords (when all input is known at compile time, just evaluate), but as speed at runtime isn't always the most important aspect, some sort of hint might be better.</div><div class=""><br class=""></div><div class="">I'm sure that checks at compile-time would not only be useful for calculations:</div><div class="">NSURL, for example, can be initialized with a string that simply does not represent an URL (therefore, init can return nil). But if the parameter is a string literal, you'll always have the same result at runtime…</div><div class=""><br class=""></div><div class="">Best regards,</div><div class="">Tino</div></body></html>