Fix access of protected member, and add test for templated swap()

This commit is contained in:
greg7mdp
2022-09-11 12:16:35 -04:00
parent 0d912f754f
commit f0409c6d05
4 changed files with 37 additions and 2 deletions
+7 -2
View File
@@ -3372,6 +3372,11 @@ public:
fCallback(set);
}
// unsafe, for internal use only
Inner& get_inner(size_t idx) {
return sets_[idx];
}
// Extension API: support for heterogeneous keys.
//
// std::unordered_set<std::string> s;
@@ -3485,8 +3490,8 @@ public:
for (size_t i=0; i<num_tables; ++i)
{
typename Lockable::UniqueLock l(sets_[i]);
typename Lockable2::UniqueLock l2(that.sets_[i]);
swap(sets_[i].set_, that.sets_[i].set_);
typename Lockable2::UniqueLock l2(that.get_inner(i));
swap(sets_[i].set_, that.get_inner(i).set_);
}
}