Skip to content

boost::intrusive::list visualizer doesn't work if list's size is not constant size #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
CzB404 opened this issue Aug 21, 2023 · 0 comments

Comments

@CzB404
Copy link

CzB404 commented Aug 21, 2023

boost::intrusive::list can be set to omit the constant time size_ field in root_plus_size_ with boost::intrusive::constant_time_size<false> supplied as a template parameter.

The current visualizer implementation fails to load with "Natvis: [redacted]\boost\natvis\boost_IntrusiveContainers.natvis(47,2): Ignoring visualizer for type 'boost::intrusive::list_impl<boost::intrusive::bhtraits<[redacted],[redacted],unsigned __int64,0,[redacted]>' labeled as 'boost::intrusive::list_impl<boost::intrusive::bhtraits<*,*>,*>' because one or more sub-expressions was invalid."

The expressions containing data_.root_plus_size_.size_ were the cause of the problem, removing them made the visualizer work again.

boost::intrusive::constant_time_size<false> can be detected by taking into consideration the bool ConstantTimeSize parameter in the template parameters of boost::intrusive::list_impl.

The Boost version that was used is 1.72.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant