On Tuesday, 1 January 2013 at 17:27:10 UTC, d coder wrote:
I observed that struct type function call arguments do not implicitly convert even when I define a valid constructor for type conversion.
That's not how you define implicit conversions in D. It's a weird hack from C++.
In D, you use alias this for implicit type conversions. http://dlang.org/class.html#AliasThis If you change Foo to this: struct Foo { Bar asBar() { return Bar(this); } alias asBar this; } Your code will work. Note however that alias this has a few bugs. http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&short_desc=alias%20this&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&short_desc_type=allwordssubstr
