i need a discreet handle on the calling/instantiating source file (module). 
using __FILE__, it is surprisingly easy for functions (via argument) and 
templated functions (via template parameter) but i cannot get it working for 
templated classes. how can i make them aware of the calling module?

thx, det


module other;

string fun(string infile = __FILE__){ return infile; }
string tfun(string infile = __FILE__)(){ return infile; }
class tclass(string infile = __FILE__){ string from = infile; }

//...//

module main;    
import other;

void main(){
    auto _fun = fun();                  //_fun == "main.d"
    auto _tfun = tfun();                //_tfun == "main.d"
    auto _tclass = new tclass!();       //_tclass.from == "other.d" !!!

    //this works but i do not want to provide __FILE__ explicitly:
    auto _tclassx = new tclass!(__FILE__)();    //_tclass.from == "main.d"
    //and why do i get 2 different results for the last 2 cases?
}

Reply via email to