On Thu, 9 Aug 2012, François Dumont wrote:
Here is an updated version considering the good catch from Marc. However
I prefer to use an explicit instantiation of tuple rather than using cref
that would have imply inclusion of <functional> in addition to <tuple>.
I wouldn't have used make_tuple at all (tuple<>() is shorter than
make_tuple()), but I wanted to stick to your style as much as possible ;-)
I don't know if std:: is needed, but it looks strange to have it only on
some functions:
std::forward_as_tuple(forward<key_type>(__k)),
Looking at this line again, you seem to be using std::forward on something
that is not a deduced parameter type. I guess it is equivalent to
std::move in this case, it just confuses me a bit.
* include/std/unordered_map: Include tuple.
* include/std/unordered_set: Likewise.
Is it a libstdc++ policy to put all includes in the topmost headers, as
opposed to the header where they are used? I never paid much attention to
it, I was just surprised because it doesn't match what I do in my code.
But since hashtable*.h currently include nothing, it is consistent. Does
that help with compile-time?
(ok, it is a bit obvious that I pretended to make a review just so I had
an excuse to ask a question at the end ;-)
--
Marc Glisse