Proposal?

FeepingCreature feepingcreature at gmail.com
Wed May 30 12:22:28 UTC 2018


On Wednesday, 30 May 2018 at 10:05:42 UTC, H. S. Teoh wrote:
> What about this?
>
> ------
> struct EndOfArgs { }
> EndOfArgs eoa;
>
> void func(string s, EndOfArgs _ = eoa,
> 	string file = __FILE__, size_t line = __LINE__)
> {
> 	import std.stdio;
> 	writefln("%s:%d: msg=%s", file, line, s);
> }
>
> void main() {
> 	func("hello");
> 	func("there");
> }
> ------
>
>
> Basically, use a dummy empty struct to differentiate between 
> real arguments and context info.
>
>
> T

Thank you, this seems to work well!

We're using struct Fence { } Fence _ = Fence(), and it doesn't 
add much overhead.

Barring the proposed compiler change, this seems the cleanest fix.


More information about the Digitalmars-d mailing list