equivalent of C++ implicit constructors and conversion operators
Robert Clipsham
robert at octarineparrot.com
Fri Apr 23 09:46:21 PDT 2010
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;
}
----
More information about the Digitalmars-d-learn
mailing list