boostorg / unordered

Boost.org unordered module
http://boost.org/libs/unordered
Boost Software License 1.0
62 stars 55 forks source link

Implement natvis visualizations #249

Closed k3DW closed 3 months ago

k3DW commented 3 months ago

Partial work on #162. This applies to containers with raw pointers as the allocator pointer type. This does not account for fancy pointers.

joaquintides commented 3 months ago

Some preliminary comments:

k3DW commented 3 months ago

Thanks for the comments. I'll address each one of them below.

joaquintides commented 3 months ago

Non-SIMD layout does work for me, so we can sort that out in private. Typically when I switch, it requires an entire "rebuild" in Visual Studio, not just a "build".

I confirm it works for non-SIMD and/or x86 on my side after rebuilding. Thank you!

"mo" just means "match occupied" [...] Likewise "issen" means "is sentinel".

OK, no need to change names if it works for you.

The baseN aliases are following the same naming scheme as boost::unordered::detail::compressed, which has base1 and base2 aliases.

All right, makes sense. Please do add the comment, though.

The link you provided does not show table_iterator::operator*() [...]

Thank you for the explanation. I stand corrected.

Supporting individual types of fancy pointers is possible, but I will make the case that support for generalized fancy pointers is impossible as a single unified implementation[...]

Yes, you're right. I got sidetracked by my wrong assumption that code functions could indeed be invoked, which is not the case as discussed above. So, let's forget about fancy pointers for now.

One additional observation:

k3DW commented 3 months ago

OK, no need to change names if it works for you.

I disagree. If there's a point of possible confusion, I want to remove it. I don't want to be the only one who can maintain this code. I'll change the names.

So, you probably can retain only the non-regular-layout loop...

Huh you're right. That removed over 100 lines. Good catch.

cppalliance-bot commented 3 months ago

An automated preview of the documentation is available at https://249.unordered.prtest2.cppalliance.org/libs/unordered/doc/html/unordered.html

cppalliance-bot commented 3 months ago

An automated preview of the documentation is available at https://249.unordered.prtest2.cppalliance.org/libs/unordered/doc/html/unordered.html