digitalmars.D.bugs - [Issue 9164] New: Can't easily assign one Nullable to another
- d-bugmail puremagic.com (23/23) Dec 16 2012 http://d.puremagic.com/issues/show_bug.cgi?id=9164
- d-bugmail puremagic.com (41/41) Dec 16 2012 http://d.puremagic.com/issues/show_bug.cgi?id=9164
- d-bugmail puremagic.com (6/6) Dec 16 2012 http://d.puremagic.com/issues/show_bug.cgi?id=9164
- d-bugmail puremagic.com (10/10) Mar 03 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9164
- d-bugmail puremagic.com (12/13) Mar 03 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9164
http://d.puremagic.com/issues/show_bug.cgi?id=9164 Summary: Can't easily assign one Nullable to another Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: minor Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: lomereiter gmail.com PST --- Example: import std.typecons; void main() { Nullable!int a, b; a = b; // what seems to happen is a.opAssign(b.get) => enforcement fails } The workaround is simple but ugly: if (b.isNull) a.nullify(); else a = b; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 16 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9164 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc Adding an opAssign overload to Nullable is maybe enough: /** Assigns $(D value) to the internally-held state. If the assignment succeeds, $(D this) becomes non-null. */ void opAssign()(T value) { _value = value; _isNull = false; } /// ditto void opAssign()(Nullable other) { _value = other._value; _isNull = other._isNull; } Or maybe just (no templated): /** Assigns $(D value) to the internally-held state. If the assignment succeeds, $(D this) becomes non-null. */ void opAssign(T value) { _value = value; _isNull = false; } /// ditto void opAssign(Nullable other) { _value = other._value; _isNull = other._isNull; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 16 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9164 See also Issue 9166 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 16 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9164 Nick Sabalausky <cbkbbejeap mailinator.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cbkbbejeap mailinator.com 00:03:02 PST --- This appears to be fixed as of 2.062. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 03 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9164 Artem Tarasov <lomereiter gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED PST ---This appears to be fixed as of 2.062.Indeed. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 03 2013