http://d.puremagic.com/issues/show_bug.cgi?id=5467


Stewart Gordon <s...@iname.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |s...@iname.com


--- Comment #3 from Stewart Gordon <s...@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: -------

Reply via email to