2 // { dg-do compile { target c++14 } }
4 template <class T, int N> struct carray {
6 constexpr T operator[](long index) const { return data_[index]; }
12 template <int M> struct pmh_tables {
13 carray<seed_or_index, M> first_table_;
14 template <typename KeyType, typename HasherType>
15 constexpr void lookup(KeyType, HasherType) const {
19 template <int N> struct unordered_set {
22 pmh_tables<N> tables_;
23 constexpr unordered_set() : equal_{} {}
24 template <class KeyType, class Hasher>
25 constexpr auto lookup(KeyType key, Hasher hash) const {
26 tables_.lookup(key, hash);
30 constexpr unordered_set<3> ze_set;
31 constexpr auto nocount = ze_set.lookup(4, int());
32 constexpr auto nocount2 = unordered_set<3>{}.lookup(4, int());