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









d-bugmail puremagic.com 