The line above is an explicit object construction. That's why D allows that syntax. Unlike C++, there is no implicit conversion when passing to a function:

void func(Integer i)
{}

  func(1L);  // Does not call the constructor


Ali

Sorry for not being clear in my first port. I was not referring to implicit vs explicit conversion. I would also like to avoid explicit call to constructors.

For example I would like to avoid.

long ll;
Integer foo = ll;

But I want something like this to be enabled.

long ll;
Integer foo = cast(foo) ll;

Unfortunately for casting of native types, D seems to rely only on constructor functions.

Regards
- Cherry

Reply via email to