On Saturday, 13 August 2016 at 13:02:09 UTC, Liam McSherry wrote:
On Saturday, 13 August 2016 at 12:47:40 UTC, Ethan Watson wrote:

                             |  Rust   |  Swift  |    C#   |
-----------------------------|---------+---------+---------|
Template Constraints | Y | Y | where | [1]
-----------------------------|---------+---------+---------|
  Template "if" Constraints  |  where  |  where  |  where  |
-----------------------------|---------+---------+---------|
        static if            |    N    |    N    |    N    |
-----------------------------|---------+---------+---------|

It might be something to note that C# doesn't have templates.

Not true. C# use generic (aka type erasure) for objects, but use template for value types. C# doesn't make the difference at the language level, but that is obvious from the fact that there is no way to do generic for value types.

C# even does virtual dispatch on them, by storing a hashmap in the vtable and looking up implementation from typeinfos.

Reply via email to