[Issue 5467] library-based typedef
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jan 1 13:50:18 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=5467
Stewart Gordon <smjg at iname.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |smjg at iname.com
--- Comment #3 from Stewart Gordon <smjg at iname.com> 2012-01-01 13:50:10 PST ---
(In reply to comment #0)
> ParallelTypdef!(double, "allow_arithmetic", "allow_mixed:*,/,%")
> Miles;
This leaves much to be desired: we want to allow Miles * double but not Miles *
Miles, and Miles + Miles but not Miles + double. Moreover, Miles / Miles wants
to return double.
Maybe we need a more specialised version of ParallelTypedef that does primitive
units checking. opMul and opDiv would themselves be templates therein. Maybe
I'll have a go at implementing something when I have a bit more time....
> 2. Opaque "handle" types that can be used with overloading. The base type of
> the typedef is just the storage strategy:
So it's basically a struct wrapper.
> 3. Proper subtype. Create a true subtype of a type that allows explicit
> initialization from the type and implicit conversion to the type.
This seems the closest to how typedefs behave at the moment.
> 4. Proper supertype. The base type implicitly converts to the introduced type,
> but not vice versa.
Makes sense, but I'm not sure what practical it would have....
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list