<div class="gmail_quote">On Fri, Aug 27, 2010 at 01:09, Andrej Mitrovic <span dir="ltr">&lt;<a href="mailto:andrej.mitrovich@gmail.com">andrej.mitrovich@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
import Python<br>
dir()<br>
<br>
etc.. :)<br>
<br>
I want more reflection as well, it&#39;s plenty of fun.<br>
<div><div></div><br></div></blockquote><div><br>I will use my mangling/demangling trick, and do it at CT using<br><br><a href="http://digitalmars.com/d/2.0/abi.html">http://digitalmars.com/d/2.0/abi.html</a><br><br>I wonder if one can get the name of function while being inside ?<br>
Ah, yes, you can:<br><br>module main;<br>import std.stdio;<br>import std.traits;<br>import std.demangle;<br><br>void foo(int i) {<br>    double test;<br>    writeln(i.mangleof);<br>    writeln(test.mangleof);<br>    writeln(demangle(i.mangleof));<br>
    writeln(demangle(test.mangleof));<br>    writeln(mangledName!i);<br>    writeln(mangledName!test);<br>    writeln(demangle(mangledName!i));<br>    writeln(demangle(mangledName!test));<br>}<br><br>void main()<br>{<br>    foo(1);<br>
    int i;<br>    double test;<br>    writeln(i.mangleof);<br>    writeln(test.mangleof);<br>    writeln(demangle(i.mangleof));<br>    writeln(demangle(test.mangleof));<br>    writeln(mangledName!i);<br>    writeln(mangledName!test);<br>
    writeln(demangle(mangledName!i));<br>    writeln(demangle(mangledName!test));<br>}<br><br>Extracting &#39;main&#39; or &#39;foo&#39; from the right place in the mangle shouldn&#39;t be too difficult. So doing a template that alias itself to the name of the current function or module is doable. std.demangle use a try catch statement -&gt; it&#39;s not usable at compile-time.<br>
Hmm, that pretty interesting! I was wondering how to create generic recursive functions from strings like &quot;a + self(b)&quot;. Now, I can get the function name, replace self with it and mix the code in the right place.<br>
<br><br>The built-in .mangleof property is a bit strange. Does it work correctly?<br><br><br>Philippe<br><br></div></div>