using __traits to get line number of a member

forkit forkit at
Sat Nov 13 05:31:51 UTC 2021

Code below is self explanatory.

Any assistance on how to get the line number is welcome ;-)

// ++++++++++++++++++++++++++

module test;

import std;

class myClass{ void foo(){}}

void myFunction1(){}

void main()
     // list the first user defined member of this module (other 
than main)

     int i;
     foreach(m; __traits(allMembers, mixin(__MODULE__)))
         // we can ignore these members
         // "std" and "object" are created by the compiler, and 
"main" I'm not interested in.
         if(m == "std" || m == "object" || m == "main")
             i = 1;

         writefln("The name of the first user member is: %s", m);

         // On this next line, m.lineNumber is just a stub holder 
till an actual solution is found
         //writefln("The line number on which that member begins, 
is: %s, m.lineNumber);

         if(i == 1)

     //writeln("Nothing to see here.");

void myFunction2(){}

// +++++++++++++++++++++++++

More information about the Digitalmars-d-learn mailing list