tbb::concurrent_unordered_set<Key>: shall Key be DefaultConstructible?
While I was replacing an std::unordered_set with a tbb::concurrent_unordered_set, it occurs to me that Key need to be DefaultConstructible for tbb, while std doesn't require it. Is it normal? Maybe I missed something in the documentation, but I don't want my type to be DefaultConstructible (and it would be very cumbersome to change this).
In the meantime, I tried with aconcurrent_hash_map, which doesn't seem to require Key to be DefaultConstructible. Besides thread-safe erasing, are there any difference between those two containers?