Stewart Gordon <> changed:

           What    |Removed                     |Added
                 CC|                            |

--- Comment #3 from Stewart Gordon <> 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:
------- You are receiving this mail because: -------

Reply via email to