Skip to content

Commit 517652e

Browse files
committed
vtrutil: Fix potential template error
The previous implementation would cause compiler errors in some cases (reason unclear). The new one should be equivalent but doesn't cause errors.
1 parent 1e1339e commit 517652e

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

libs/libvtrutil/src/vtr_vector.h

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,22 @@ class vector : private std::vector<V> {
6666

6767
//Don't include operator[] and at() from std::vector,
6868
//since we redine them to take K instead of size_t
69-
reference operator[](const K id) { return std::vector<V>::operator[](size_t(id)); }
70-
const_reference operator[](const K id) const { return std::vector<V>::operator[](size_t(id)); }
71-
reference at(const K id) { return std::vector<V>::at(size_t(id)); }
72-
const_reference at(const K id) const { return std::vector<V>::at(size_t(id)); }
69+
reference operator[](const K id) {
70+
auto i = size_t(id);
71+
return std::vector<V>::operator[](i);
72+
}
73+
const_reference operator[](const K id) const {
74+
auto i = size_t(id);
75+
return std::vector<V>::operator[](i);
76+
}
77+
reference at(const K id) {
78+
auto i = size_t(id);
79+
return std::vector<V>::at(i);
80+
}
81+
const_reference at(const K id) const {
82+
auto i = size_t(id);
83+
return std::vector<V>::at(i);
84+
}
7385
};
7486

7587

0 commit comments

Comments
 (0)