digitalmars.D.bugs - [Issue 2909] New: Get the name of function and its parameters
- d-bugmail puremagic.com (49/49) Apr 28 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2909
- d-bugmail puremagic.com (12/12) Jan 11 2013 http://d.puremagic.com/issues/show_bug.cgi?id=2909
http://d.puremagic.com/issues/show_bug.cgi?id=2909 Summary: Get the name of function and its parameters Product: D Version: unspecified Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P3 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: georg iki.fi Phobos should provide an easy and documented way to get the name of the function and its parameters. The function name and its parameters are unneeded in "straight" code, but with mixins and templates it is important. And it's essential for debugging them and their usage. Here's some code from D.learn, as a starting point: // Name of a function? Yes. public template NameOfFunc(alias f) { version(LDC) const char[] NameOfFunc = (&f).stringof[1 .. $]; else const char[] NameOfFunc = (&f).stringof[2 .. $]; } debug { private void _foo_(){} static assert(NameOfFunc!(_foo_) == "_foo_", "Oh noes, NameOfFunc needs to be updated."); } // It has to be used at compile time with an alias of course, but it works. // // Name of params? No, not that I've found. // // Don't you love it? // "Most C++ template features are discovered." So are D's. // Thanks. // // I found that this: void main () { pragma(msg, typeof(&foo).stringof); } // gave this result: void function(int x, int y) // So now I just have to get the names out of there. --
Apr 28 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2909 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |andrej.mitrovich gmail.com Resolution| |DUPLICATE 19:39:54 PST --- *** This issue has been marked as a duplicate of issue 5140 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 11 2013