* don't abuse Intrinsic, it also has drawbacks
* refine natvis snippet for dispatcher class
This commit is contained in:
Michele Caini
2021-11-28 17:47:41 +01:00
parent 3fcccae241
commit 8db78b2190
2 changed files with 5 additions and 16 deletions

View File

@@ -1,40 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="entt::dense_hash_map&lt;*&gt;">
<Intrinsic Name="capacity" Expression="packed.first_base::value.capacity()"/>
<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
<Intrinsic Name="element" Expression="packed.first_base::value[idx].element">
<Parameter Name="idx" Type="int"/>
</Intrinsic>
<DisplayString>{{ size={ size() } }}</DisplayString>
<Expand>
<Item Name="[capacity]" ExcludeView="simple">capacity()</Item>
<Item Name="[capacity]" ExcludeView="simple">packed.first_base::value.capacity()</Item>
<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
<IndexListItems>
<Size>size()</Size>
<ValueNode>element($i)</ValueNode>
<ValueNode>packed.first_base::value[$i].element</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="entt::dense_hash_set&lt;*&gt;">
<Intrinsic Name="capacity" Expression="packed.first_base::value.capacity()"/>
<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
<Intrinsic Name="element" Expression="packed.first_base::value[idx].element">
<Parameter Name="idx" Type="int"/>
</Intrinsic>
<DisplayString>{{ size={ size() } }}</DisplayString>
<Expand>
<Item Name="[capacity]" ExcludeView="simple">capacity()</Item>
<Item Name="[capacity]" ExcludeView="simple">packed.first_base::value.capacity()</Item>
<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
<IndexListItems>
<Size>size()</Size>
<ValueNode>element($i)</ValueNode>
<ValueNode>packed.first_base::value[$i].element</ValueNode>
</IndexListItems>
</Expand>
</Type>

View File

@@ -11,9 +11,6 @@
</Expand>
</Type>
<Type Name="entt::dispatcher">
<Intrinsic Name="pool_at" Expression="pools.packed.first_base::value[idx].element.second">
<Parameter Name="idx" Type="int"/>
</Intrinsic>
<DisplayString>{{ size={ pools.size() } }}</DisplayString>
<Expand>
<Synthetic Name="[pools]">
@@ -21,7 +18,7 @@
<Expand>
<IndexListItems>
<Size>pools.size()</Size>
<ValueNode>pool_at($i)</ValueNode>
<ValueNode>*pools.packed.first_base::value[$i].element.second</ValueNode>
</IndexListItems>
</Expand>
</Synthetic>