digitalmars.D.learn - Behavior of __FILE__ in mixin template
- Andre Pany (33/33) Jun 22 2016 Hi,
- =?UTF-8?Q?Ali_=c3=87ehreli?= (8/13) Jun 22 2016 Apparently its the whole template that supports that. Is moving the
- Andre Pany (4/19) Jun 22 2016 Perfekt, thanks a lot.
Hi,
I thought a mixin template is copied into the place where the
mixin statement
exists and then the coding is evaluated.
This seems not to be true for __FILE__
I have a module form, which has a class Form. This module also
contains
following mixin template
mixin template formTemplate()
{
void generateForm()
{
string getFormName(string file = __FILE__)()
{
import std.string: indexOf;
return file[0..file.indexOf(".")]~".frm";
}
enum fileContent = import(getFormName());
}
}
In another module myform I have a class MyForm in which I call
the mixin statement:
mixin formTemplate.
The purpose of the template coding is: The enum fileContent
should contain
the text of a file, which has the same name as the module but the
file ending .frm.
I tried different things, but either it doesn't compile or
__FILE__ returns "form"
instead of "myform".
Is this behavior correct? Do you have any tip?
Kind regards
André
Jun 22 2016
On 06/22/2016 10:07 AM, Andre Pany wrote:Hi, I thought a mixin template is copied into the place where the mixin statement exists and then the coding is evaluated. This seems not to be true for __FILE__Apparently its the whole template that supports that. Is moving the 'file' parameter to the entire template acceptable? mixin template formTemplate(string file = __FILE__) { // ... } Ali
Jun 22 2016
On Wednesday, 22 June 2016 at 17:52:26 UTC, Ali Çehreli wrote:On 06/22/2016 10:07 AM, Andre Pany wrote:Perfekt, thanks a lot. Kind regards AndréHi, I thought a mixin template is copied into the place where themixinstatement exists and then the coding is evaluated. This seems not to be true for __FILE__Apparently its the whole template that supports that. Is moving the 'file' parameter to the entire template acceptable? mixin template formTemplate(string file = __FILE__) { // ... } Ali
Jun 22 2016








Andre Pany <andre s-e-a-p.de>