On 6/19/14, 1:48 AM, Vlad Levenfeld wrote:
I'm instantiating a couple of template structs that conflict with each
other. I'd like them to be unique types, automatically. So I tried this:
template Foo (string unique_id = __FILE__~__LINE__.to!string)
{...}
but it didn't work. When I use this for templated functions, I get the
file and line number where the function is instantiated. But in this
case, I got the file and line number where the template was defined.
Is there anything I can do to make sure each instantiated type is unique?
I don't think you want to set a default value. If you pass
"__FILE__~__LINE__.to!string" during instantiation, it works every time:
template Foo(string uniqueId)
{
alias Foo = uniqueId;
}
void main()
{
Foo!(__FILE__~__LINE__.to!string).writeln;
}