Skip to content

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

Description

@CzB404

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions