https://d.puremagic.com/issues/show_bug.cgi?id=3490
Nick Sabalausky <cbkbbej...@mailinator.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cbkbbej...@mailinator.com --- Comment #5 from Nick Sabalausky <cbkbbej...@mailinator.com> 2014-03-12 07:54:51 PDT --- While DMD still doesn't inline functions that (directly) contain a "throw" statement, the original poster's issues with std.range and emplace have largely been addressed several versions ago (at least as far back as 2.060, maybe more): - Many uses of enforce in std.range, such as the ones in Take, have been replaced by asserts. - Functions like Take.popFront() and Take.front() are inlined (likely due to the switch to assert). - Some of the enforce functions (except for errnoEnforce and the enforce that takes a lazy Throwable as a param) are inlineable because they don't use "throw" directly. Instead, they call the private helper "bailOut" which does the actual throwing. The "bailOut" function isn't inlineable, but that shouldn't be a problem since it only gets called when the condition fails. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------