Is it possible to disallow import for certain functions?
Mike Parker
aldacron at gmail.com
Sat Jul 27 12:05:27 UTC 2019
On Saturday, 27 July 2019 at 11:54:09 UTC, BoQsc wrote:
> I would like to make sure that function in module that I have
> won't be imported, is this possible to achieve?
>
> Test subject:
>
>
> mainFile.d
>> import otherFile;
>> void main(){
>>
>> }
>
> otherFile.d
>>import std.stdio : writeln;
>>import std.file : mkdir;
>>
>>int main(){
>> writeln("test ");
>> return 0;
>>}
>
>
> Error, main() method has been imported:
> how to disallow main() method from being imported?
>> otherFile.d(5): Error: only one main, WinMain, or DllMain
>> allowed. Previously found main at mainFile.d(3)
This has nothing to do with main being imported. It's because you
*compiled* two main functions. If you absolutely want two main
functions and can't see a better way to achieve whatever it is
you're doing, then you can wrap them in version blocks:
module mainFile;
version(defaultMain) {
...
}
=========
module otherFile;
version otherMain() {
...
}
More information about the Digitalmars-d-learn
mailing list