On 23/04/10 17:22, #ponce wrote:
In C++ implicit constructors and conversion operators allow a user-defined type
to act quite like a builtin-type.
struct half
{
half(float x);l
inline operator float() const;
}
allows to write:
half x = 1.f;
float f = x;
and this is especially useful for templates.
I couldn't find a similar construct in D, is there any?
A combination of alias this and opAssign should work:
----
struct half
{
float f;
alias f this;
half opAssign(float fl)
{
f = fl;
return this;
}
}
void main()
{
half x;
// For some reason I got a compilation error with half x = 1f;
x = 1f;
float f = x;
}
----