On 10/31/2016 12:08 PM, Gary Willoughby wrote:
Can someone please explain why the following assertion fails?

import std.stdio;
import std.conv;

void main(string[] args)
{
    auto x = 1;

    assert(hashOf(x.to!(string)) == hashOf(x.to!(string)));
}

Thanks.

I think you need TypeInfo.getHash.

  https://dlang.org/phobos/object.html#.TypeInfo.getHash

import std.conv;

auto myHashOf(T)(auto ref T value) {
    return typeid(T).getHash(&value);
}

void main() {
    auto x = 1;
    auto s = "1";
    assert(myHashOf(x.to!string) == myHashOf(x.to!string));
    assert(myHashOf(s) == myHashOf(s));
    assert(myHashOf(s) == myHashOf(x.to!string));
}

Ali

Reply via email to