summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/tanya/container/set.d8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/tanya/container/set.d b/source/tanya/container/set.d
index bd889a1..e5dc2d6 100644
--- a/source/tanya/container/set.d
+++ b/source/tanya/container/set.d
@@ -154,7 +154,7 @@ struct Range(T)
* hasher = Hash function for $(D_PARAM T).
*/
struct Set(T, alias hasher = hash)
-if (is(typeof(hasher(T.init)) == size_t))
+if (is(typeof(((T x) => hasher(x))(T.init)) == size_t))
{
private alias HashArray = .HashArray!(hasher, T);
private alias Buckets = HashArray.Buckets;
@@ -767,3 +767,9 @@ if (is(typeof(hasher(T.init)) == size_t))
}
testFunc(set);
}
+
+@nogc nothrow pure @safe unittest
+{
+ // Using hasher that takes argument by ref.
+ Set!(int, (const ref x) => cast(size_t)x) set;
+}