On Monday, 22 February 2016 at 18:28:04 UTC, Dicebot wrote:
On 02/22/2016 08:20 PM, rsw0x wrote:
On Monday, 22 February 2016 at 18:11:58 UTC, H. S. Teoh wrote:
On Mon, Feb 22, 2016 at 06:07:26PM +0000, rsw0x via Digitalmars-d wrote:
On Monday, 22 February 2016 at 17:29:40 UTC, Adam D. Ruppe wrote:
>[...]

explicitly-implicit constructors are badly needed, I could write an essay on this

AFAICT, implicit ctors are not supported by design.


T

It is a bad design.

It is arguable opinion.

Yeah. Sometimes having implicit conversions is great. Other times, it creates tons of problems. C++ allows a lot of implicit stuff, and it becomes really easy to have unexpected conversions going on, and it can be difficult to figure out exactly what code is being called. For the most part, D doesn't have any of those problems, but it arguably loses some usability as a result. So, it's highly debatable.

Personally, I think that the big place that implicit conversions are a disaster is generic code. It makes it really easy to have stuff pass template constraints due to implicit conversions and then have the wrong behavior inside the templated code, because the conversion is never forced, and it doesn't act the same way as it would if the conversion had been forced and possibly even ends up being converted for some of expressions in the function and not converted in others. For non-templated code, it's a lot more debatable, but when it comes to templated code, I really wish that alias this didn't exist.

- Jonathan M Davis

Reply via email to