Files
Bigfoot/Vendor/NatVis/EASTL/EASTL.natvis
Romain BOULLARD 65727753c0
All checks were successful
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m23s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m14s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 5m40s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 5m41s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m53s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m54s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m0s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m57s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m56s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m55s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m35s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m30s
Bigfoot / Clang Format Checks (push) Successful in 12s
Cleanup linking
2026-05-15 16:25:56 +02:00

909 lines
48 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
This is a Microsoft natvis file, which allows visualization of complex variables in the
Microsoft debugger starting with VS2012. It's a successor to the AutoExp.dat file format.
This file needs to go into your C:\Users\<user>\Documents\Visual Studio 2011\Visualizers\
folder. Microsoft documentation states that it should go into a 2012 folder, but testing
in June of 2013 suggests that it still needs to be the 2011 folder.
You don't need to restart Visual Studio to use it, you just need to restart the debug
session. You can have multiple .natvis files and they will all be used.
VS2017 natvis documentation:
https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects
-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="eastl::unique_ptr&lt;*&gt;">
<DisplayString Condition="mPair.mFirst != nullptr">({(void*)mPair.mFirst} = {*mPair.mFirst})</DisplayString>
<DisplayString Condition="mPair.mFirst == nullptr">({nullptr})</DisplayString>
<Expand>
<Item Name="[pointer]">(void*)mPair.mFirst</Item>
<Item Name="[value]">*mPair.mFirst</Item>
</Expand>
</Type>
<Type Name="eastl::shared_ptr&lt;*&gt;">
<DisplayString Condition="mpValue != nullptr">({(void*)mpValue} = {*mpValue})</DisplayString>
<DisplayString Condition="mpValue == nullptr">({nullptr})</DisplayString>
<Expand>
<Item Name="[pointer]">(void*)mpValue</Item>
<Item Name="[value]">*mpValue</Item>
<Item Name="[reference count]">mpRefCount->mRefCount</Item>
<Item Name="[weak reference count]">mpRefCount->mWeakRefCount</Item>
</Expand>
</Type>
<Type Name="eastl::weak_ptr&lt;*&gt;">
<DisplayString>{((mpRefCount &amp;&amp; mpRefCount-&gt;mRefCount) ? mpValue : nullptr)}</DisplayString>
<Expand>
<ExpandedItem>mpRefCount &amp;&amp; mpRefCount-&gt;mRefCount ? mpValue : nullptr</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::array&lt;*,*&gt;">
<DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString>
<DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mValue} }}</DisplayString>
<DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mValue}, {*(mValue+1)} }}</DisplayString>
<DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)} }}</DisplayString>
<DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)} }}</DisplayString>
<DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)} }}</DisplayString>
<DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)} }}</DisplayString>
<DisplayString Condition="$T2 &gt; 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)}, ... }}</DisplayString>
<Expand>
<Item Name="[size]">$T2</Item>
<ArrayItems>
<Size>$T2</Size>
<ValuePointer>mValue</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="eastl::basic_string&lt;*&gt;">
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">"{mPair.mFirst.heap.mpBegin,sb}"</DisplayString>
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">"{mPair.mFirst.sso.mData,sb}"</DisplayString>
<Expand>
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.heap.mnSize</Item>
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">(mPair.mFirst.heap.mnCapacity &amp; ~kHeapMask)</Item>
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.heap.mpBegin,sb</Item>
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.sso.mData,sb</Item>
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)</Item>
</Expand>
</Type>
<Type Name="eastl::basic_string&lt;wchar_t,*&gt;">
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">{mPair.mFirst.heap.mpBegin,su}</DisplayString>
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">{mPair.mFirst.sso.mData,su}</DisplayString>
<Expand>
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.heap.mnSize</Item>
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">(mPair.mFirst.heap.mnCapacity &amp; ~kHeapMask)</Item>
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.heap.mpBegin,su</Item>
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)">mPair.mFirst.sso.mData,su</Item>
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize &amp; kSSOMask)</Item>
</Expand>
</Type>
<Type Name="eastl::pair&lt;*&gt;">
<DisplayString>({first}, {second})</DisplayString>
<Expand>
<Item Name="first">first</Item>
<Item Name="second">second</Item>
</Expand>
</Type>
<Type Name="eastl::span&lt;*,-1&gt;" Priority="High">
<DisplayString Condition="mStorage.mnSize == 0">[{mStorage.mnSize}] {{}}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 1">[{mStorage.mnSize}] {{ {*mStorage.mpData} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 2">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 3">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 4">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 5">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize == 6">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)} }}</DisplayString>
<DisplayString Condition="mStorage.mnSize &gt; 6">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)}, ... }}</DisplayString>
<Expand>
<Synthetic Name="Specialization">
<DisplayString>DynamicSize</DisplayString>
</Synthetic>
<Item Name="[size]">mStorage.mnSize</Item>
<ArrayItems>
<Size>mStorage.mnSize</Size>
<ValuePointer>mStorage.mpData</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="eastl::span&lt;*,*&gt;">
<DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString>
<DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mStorage.mpData} }}</DisplayString>
<DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)} }}</DisplayString>
<DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)} }}</DisplayString>
<DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)} }}</DisplayString>
<DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)} }}</DisplayString>
<DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)} }}</DisplayString>
<DisplayString Condition="$T2 &gt; 6">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)}, ... }}</DisplayString>
<Expand>
<Synthetic Name="Specialization">
<DisplayString>ConstantSize</DisplayString>
</Synthetic>
<Item Name="[size]">$T2</Item>
<ArrayItems>
<Size>$T2</Size>
<ValuePointer>mStorage.mpData</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="eastl::VectorBase&lt;*&gt;">
<DisplayString Condition="mpEnd == mpBegin">[{mpEnd - mpBegin}] {{}}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 1">[{mpEnd - mpBegin}] {{ {*mpBegin} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 2">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 3">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 4">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 5">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin == 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)} }}</DisplayString>
<DisplayString Condition="mpEnd - mpBegin &gt; 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)}, ... }}</DisplayString>
<Expand>
<Item Name="[size]">mpEnd - mpBegin</Item>
<Item Name="[capacity]">mCapacityAllocator.mFirst - mpBegin</Item>
<ArrayItems>
<Size>mpEnd - mpBegin</Size>
<ValuePointer>mpBegin</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="eastl::DequeBase&lt;*,*,*&gt;">
<DisplayString Condition="mItBegin.mpCurrent == mItEnd.mpCurrent">
[0] {{}}
</DisplayString>
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) == 1">
[1] {{ {*mItBegin.mpCurrent} }}
</DisplayString>
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) != 0">
[{(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)}]
{{
{*mItBegin.mpCurrent},
...
}}
</DisplayString>
<Expand>
<Item Name="[size]">(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Item>
<IndexListItems>
<Size>(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Size>
<ValueNode>mItBegin.mpCurrentArrayPtr[(mItBegin.mpCurrent-mItBegin.mpBegin + $i) / $T3][(mItBegin.mpCurrent-mItBegin.mpBegin + $i) % $T3]</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="eastl::DequeIterator&lt;*&gt;">
<DisplayString>{*mpCurrent}</DisplayString>
<Expand>
<Item Name="Value">*mpCurrent</Item>
<Item Name="Previous" Condition="mpCurrent == mpBegin">*(*(mpCurrentArrayPtr-1) + (mpEnd-mpBegin) - 1)</Item>
<Item Name="Previous" Condition="mpCurrent != mpBegin">*(mpCurrent-1)</Item>
<Item Name="Next" Condition="mpCurrent+1 == mpEnd">**(mpCurrentArrayPtr+1)</Item>
<Item Name="Next" Condition="mpCurrent+1 != mpEnd">*(mpCurrent+1)</Item>
<Item Name="Begin">mpCurrent == mpBegin</Item>
<Item Name="End">mpCurrent+1 == mpEnd</Item>
</Expand>
</Type>
<Type Name="eastl::queue&lt;*&gt;">
<AlternativeType Name="eastl::priority_queue&lt;*&gt;" />
<AlternativeType Name="eastl::stack&lt;*&gt;" />
<DisplayString>{c}</DisplayString>
<Expand>
<ExpandedItem>c</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::ListBase&lt;*&gt;">
<DisplayString Condition="mNodeAllocator.mFirst.mpNext == &amp;mNodeAllocator.mFirst">
[0] {{}}
</DisplayString>
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &amp;mNodeAllocator.mFirst &amp;&amp; mNodeAllocator.mFirst.mpNext-&gt;mpNext == &amp;mNodeAllocator.mFirst">
[1] {{ {((eastl::ListNode&lt;$T1&gt;*)mNodeAllocator.mFirst.mpNext)-&gt;mValue} }}
</DisplayString>
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &amp;mNodeAllocator.mFirst &amp;&amp; mNodeAllocator.mFirst.mpNext-&gt;mpNext != &amp;mNodeAllocator.mFirst &amp;&amp; mNodeAllocator.mFirst.mpNext-&gt;mpNext-&gt;mpNext == &amp;mNodeAllocator.mFirst">
[2]
{{
{((eastl::ListNode&lt;$T1&gt;*)mNodeAllocator.mFirst.mpNext)-&gt;mValue},
{((eastl::ListNode&lt;$T1&gt;*)mNodeAllocator.mFirst.mpNext-&gt;mpNext)-&gt;mValue}
}}
</DisplayString>
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &amp;mNodeAllocator.mFirst &amp;&amp; mNodeAllocator.mFirst.mpNext-&gt;mpNext != &amp;mNodeAllocator.mFirst &amp;&amp; mNodeAllocator.mFirst.mpNext-&gt;mpNext-&gt;mpNext != &amp;mNodeAllocator.mFirst">
[?]
{{
{((eastl::ListNode&lt;$T1&gt;*)mNodeAllocator.mFirst.mpNext)-&gt;mValue},
{((eastl::ListNode&lt;$T1&gt;*)mNodeAllocator.mFirst.mpNext-&gt;mpNext)-&gt;mValue},
...
}}
</DisplayString>
<Expand>
<Synthetic Name="NOTE!">
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
</Synthetic>
<LinkedListItems>
<HeadPointer>mNodeAllocator.mFirst.mpNext</HeadPointer>
<NextPointer>mpNext</NextPointer>
<ValueNode>((eastl::ListNode&lt;$T1&gt;*)this)-&gt;mValue</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::ListNode&lt;*&gt;">
<DisplayString>{mValue}</DisplayString>
<Expand>
<Item Name="Value">mValue</Item>
<Item Name="Next">*(eastl::ListNode&lt;$T1&gt;*)mpNext</Item>
<Item Name="Previous">*(eastl::ListNode&lt;$T1&gt;*)mpPrev</Item>
<Synthetic Name="NOTE!">
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
</Synthetic>
<Synthetic Name="List">
<DisplayString>The rest of the list follows:</DisplayString>
</Synthetic>
<LinkedListItems>
<HeadPointer>(eastl::ListNode&lt;$T1&gt;*)mpNext-&gt;mpNext</HeadPointer>
<NextPointer>(eastl::ListNode&lt;$T1&gt;*)mpNext</NextPointer>
<ValueNode>mValue</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::ListIterator&lt;*&gt;">
<DisplayString>{*mpNode}</DisplayString>
<Expand>
<ExpandedItem>*(eastl::ListNode&lt;$T1&gt;*)mpNode</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::SListBase&lt;*&gt;">
<DisplayString Condition="mNode.mpNext == 0">
[0] {{}}
</DisplayString>
<DisplayString Condition="mNode.mpNext != 0 &amp;&amp; mNode.mpNext-&gt;mpNext == 0">
[1]
{{
{((eastl::SListNode&lt;$T1&gt;*)mNode.mpNext)-&gt;mValue}
}}
</DisplayString>
<DisplayString Condition="mNode.mpNext != 0 &amp;&amp; mNode.mpNext-&gt;mpNext != 0 &amp;&amp; mNode.mpNext-&gt;mpNext-&gt;mpNext == 0">
[2]
{{
{((eastl::SListNode&lt;$T1&gt;*)mNode.mpNext)-&gt;mValue},
{((eastl::SListNode&lt;$T1&gt;*)mNode.mpNext-&gt;mpNext)-&gt;mValue}
}}
</DisplayString>
<DisplayString Condition="mNode.mpNext != 0 &amp;&amp; mNode.mpNext-&gt;mpNext != 0 &amp;&amp; mNode.mpNext-&gt;mpNext-&gt;mpNext != 0">
[?]
{{
{((eastl::SListNode&lt;$T1&gt;*)mNode.mpNext)-&gt;mValue},
{((eastl::SListNode&lt;$T1&gt;*)mNode.mpNext-&gt;mpNext)-&gt;mValue},
...
}}
</DisplayString>
<Expand>
<LinkedListItems>
<HeadPointer>mNode.mpNext</HeadPointer>
<NextPointer>mpNext</NextPointer>
<ValueNode>((eastl::SListNode&lt;$T1&gt;*)this)-&gt;mValue</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::SListNode&lt;*&gt;">
<DisplayString>{mValue}</DisplayString>
<Expand>
<Item Name="Value">mValue</Item>
<Item Name="Next">*(eastl::SListNode&lt;$T1&gt;*)mpNext</Item>
<Synthetic Name="List">
<DisplayString>The rest of the list follows:</DisplayString>
</Synthetic>
<LinkedListItems>
<HeadPointer>mpNext == nullptr ? nullptr : (eastl::SListNode&lt;$T1&gt;*)mpNext-&gt;mpNext</HeadPointer>
<NextPointer>(eastl::SListNode&lt;$T1&gt;*)mpNext</NextPointer>
<ValueNode>mValue</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::SListIterator&lt;*&gt;">
<DisplayString>{*mpNode}</DisplayString>
<Expand>
<ExpandedItem>*(eastl::SListNode&lt;$T1&gt;*)mpNode</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::intrusive_list_base">
<DisplayString Condition="mAnchor.mpNext == &amp;mAnchor">[0] {{}}</DisplayString>
<DisplayString Condition="mAnchor.mpNext != &amp;mAnchor &amp;&amp; mAnchor.mpNext-&gt;mpNext == &amp;mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString>
<DisplayString Condition="mAnchor.mpNext != &amp;mAnchor &amp;&amp; mAnchor.mpNext-&gt;mpNext != &amp;mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString>
<Expand>
<Synthetic Name="NOTE!">
<DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString>
</Synthetic>
<LinkedListItems>
<HeadPointer>mAnchor.mpNext</HeadPointer>
<NextPointer>mpNext</NextPointer>
<ValueNode>*this</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::intrusive_list&lt;*&gt;">
<DisplayString Condition="mAnchor.mpNext == &amp;mAnchor">[0] {{}}</DisplayString>
<DisplayString Condition="mAnchor.mpNext != &amp;mAnchor &amp;&amp; mAnchor.mpNext-&gt;mpNext == &amp;mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString>
<DisplayString Condition="mAnchor.mpNext != &amp;mAnchor &amp;&amp; mAnchor.mpNext-&gt;mpNext != &amp;mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString>
<Expand>
<Synthetic Name="NOTE!">
<DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString>
</Synthetic>
<LinkedListItems>
<HeadPointer>mAnchor.mpNext</HeadPointer>
<NextPointer>mpNext</NextPointer>
<ValueNode>*(($T1*)this)</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::intrusive_list_iterator&lt;*&gt;">
<DisplayString>{*($T1*)mpNode}</DisplayString>
<Expand>
<ExpandedItem>*($T1*)mpNode</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::set&lt;*&gt;">
<AlternativeType Name="eastl::multiset&lt;*&gt;" />
<DisplayString Condition="mnSize == 0">
[0] {{}}
</DisplayString>
<DisplayString Condition="mnSize == 1">
[1]
{{
{((eastl::rbtree_node&lt;$T1&gt;*)mAnchor.mpNodeLeft)-&gt;mValue}
}}
</DisplayString>
<DisplayString Condition="mnSize &gt; 1">
[{mnSize}]
{{
{((eastl::rbtree_node&lt;$T1&gt;*)mAnchor.mpNodeLeft)-&gt;mValue},
...
}}
</DisplayString>
<Expand>
<Item Name="[size]">mnSize</Item>
<TreeItems>
<Size>mnSize</Size>
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
<LeftPointer>mpNodeLeft</LeftPointer>
<RightPointer>mpNodeRight</RightPointer>
<ValueNode>((eastl::rbtree_node&lt;$T1&gt;*)this)-&gt;mValue</ValueNode>
</TreeItems>
</Expand>
</Type>
<Type Name="eastl::rbtree&lt;*,*&gt;">
<DisplayString Condition="mnSize == 0">
[0] {{}}
</DisplayString>
<DisplayString Condition="mnSize == 1">
[1]
{{
{((eastl::rbtree_node&lt;$T2&gt;*)mAnchor.mpNodeLeft)-&gt;mValue}
}}
</DisplayString>
<DisplayString Condition="mnSize &gt; 1">
[{mnSize}]
{{
{((eastl::rbtree_node&lt;$T2&gt;*)mAnchor.mpNodeLeft)-&gt;mValue},
...
}}
</DisplayString>
<Expand>
<Item Name="[size]">mnSize</Item>
<TreeItems>
<Size>mnSize</Size>
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
<LeftPointer>mpNodeLeft</LeftPointer>
<RightPointer>mpNodeRight</RightPointer>
<ValueNode>((eastl::rbtree_node&lt;$T2&gt;*)this)-&gt;mValue</ValueNode>
</TreeItems>
</Expand>
</Type>
<Type Name="eastl::rbtree_node&lt;*&gt;">
<DisplayString>{mValue}</DisplayString>
<Expand>
<Item Name="Value">mValue</Item>
<Synthetic Name="NOTE!">
<DisplayString>It is possible to expand parents that do not exist.</DisplayString>
</Synthetic>
<Item Name="Parent">*(eastl::rbtree_node&lt;$T1&gt;*)mpNodeParent</Item>
<Item Name="Left">*(eastl::rbtree_node&lt;$T1&gt;*)mpNodeLeft</Item>
<Item Name="Right">*(eastl::rbtree_node&lt;$T1&gt;*)mpNodeRight</Item>
</Expand>
</Type>
<Type Name="eastl::rbtree_iterator&lt;*&gt;">
<DisplayString>{*(eastl::rbtree_node&lt;$T1&gt;*)mpNode}</DisplayString>
<Expand>
<Item Name="Node">*(eastl::rbtree_node&lt;$T1&gt;*)mpNode</Item>
</Expand>
</Type>
<Type Name="eastl::hashtable&lt;*&gt;">
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
<Expand>
<ArrayItems IncludeView="detailed">
<Size>mnBucketCount</Size>
<ValuePointer>mpBucketArray</ValuePointer>
</ArrayItems>
<CustomListItems ExcludeView="detailed">
<Variable Name="bucketIndex" InitialValue="0"/>
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
<Loop>
<Item Condition="entry != nullptr">entry->mValue</Item>
<If Condition="entry != nullptr">
<Exec>entry = entry->mpNext</Exec>
</If>
<If Condition="entry == nullptr">
<Exec>bucketIndex++</Exec>
<Break Condition="bucketIndex == mnBucketCount"/>
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
</If>
</Loop>
</CustomListItems>
</Expand>
</Type>
<!-- specifically for hash_map (instead of base implementation hashtable),
show the key as name, and value as value, instead of index -> pair<key, value> -->
<Type Name="eastl::hash_map&lt;*&gt;">
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
<Expand>
<CustomListItems ExcludeView="detailed">
<Variable Name="bucketIndex" InitialValue="0"/>
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
<Loop>
<Item Name="[{entry->mValue.first}]" Condition="entry != nullptr">entry->mValue.second</Item>
<If Condition="entry != nullptr">
<Exec>entry = entry->mpNext</Exec>
</If>
<If Condition="entry == nullptr">
<Exec>bucketIndex++</Exec>
<Break Condition="bucketIndex == mnBucketCount"/>
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
</If>
</Loop>
</CustomListItems>
</Expand>
</Type>
<Type Name="eastl::hash_node&lt;*&gt;">
<DisplayString Condition="this != 0 &amp;&amp; mpNext != 0"> {mValue}, {*mpNext}</DisplayString>
<DisplayString Condition="this != 0 &amp;&amp; mpNext == 0"> {mValue}</DisplayString>
<DisplayString Condition="this == 0"></DisplayString>
<Expand>
<LinkedListItems>
<HeadPointer>this</HeadPointer>
<NextPointer>mpNext</NextPointer>
<ValueNode>mValue</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="eastl::hashtable_iterator_base&lt;*&gt;">
<DisplayString>{mpNode-&gt;mValue}</DisplayString>
<Expand>
<ExpandedItem>mpNode-&gt;mValue</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::reverse_iterator&lt;*&gt;">
<DisplayString>{*(mIterator-1)}</DisplayString>
<Expand>
<ExpandedItem>mIterator-1</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::bitset&lt;*&gt;">
<DisplayString>{{count = {kSize}}}</DisplayString>
<Expand>
<Item Name="[count]">kSize</Item>
<CustomListItems>
<Variable Name="iWord" InitialValue="0" />
<Variable Name="iBitInWord" InitialValue="0" />
<Variable Name="bBitValue" InitialValue="false" />
<Size>kSize</Size>
<Loop>
<Exec>bBitValue = ((mWord[iWord] >> iBitInWord) % 2) != 0 ? true : false</Exec>
<Item>bBitValue</Item>
<Exec>iBitInWord++</Exec>
<If Condition="iBitInWord == kBitsPerWord">
<Exec>iWord++</Exec>
<Exec>iBitInWord = 0</Exec>
</If>
</Loop>
</CustomListItems>
</Expand>
</Type>
<Type Name="eastl::ring_buffer&lt;*,*,*&gt;">
<DisplayString>{c}</DisplayString>
<Expand>
<ExpandedItem>c</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::basic_string_view&lt;*&gt;">
<DisplayString>{mpBegin,[mnCount]}</DisplayString>
<StringView>mpBegin,[mnCount]</StringView>
</Type>
<Type Name="eastl::compressed_pair_imp&lt;*&gt;">
<DisplayString Condition="($T3) == 0" Optional="true">({mFirst}, {mSecond})</DisplayString>
<DisplayString Condition="($T3) == 1" Optional="true">({mSecond})</DisplayString>
<DisplayString Condition="($T3) == 2" Optional="true">({mFirst})</DisplayString>
<DisplayString Condition="($T3) == 3" Optional="true">(empty)</DisplayString>
<DisplayString Condition="($T3) == 4" Optional="true">(empty)</DisplayString>
<DisplayString Condition="($T3) == 5" Optional="true">({mFirst}, {mSecond})</DisplayString>
</Type>
<Type Name="eastl::optional&lt;*&gt;">
<Intrinsic Name="value" Expression="*($T1*)&amp;val"/>
<DisplayString Condition="!engaged">nullopt</DisplayString>
<DisplayString Condition="engaged">{value()}</DisplayString>
<Expand>
<Item Condition="engaged" Name="value">value()</Item>
</Expand>
</Type>
<Type Name="eastl::expected&lt;*&gt;">
<DisplayString Condition="!mHasValue">{mError} (Error)</DisplayString>
<DisplayString Condition="mHasValue">{mValue}</DisplayString>
<Expand>
<Item Condition="!mHasValue" Name="mError">mError</Item>
<Item Condition="mHasValue" Name="mValue">mValue</Item>
<Item Name="mHasValue">mHasValue</Item>
</Expand>
</Type>
<Type Name="eastl::expected&lt;void,*&gt;">
<DisplayString Condition="mHasValue">void</DisplayString>
<DisplayString Condition="!mHasValue">{mError} (Error)</DisplayString>
<Expand>
<Item Condition="!mHasValue" Name="mError">mError</Item>
<Item Name="mHasValue">mHasValue</Item>
</Expand>
</Type>
<Type Name="eastl::ratio&lt;*&gt;">
<DisplayString>{$T1} to {$T2}}</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;1,1000000000&gt; &gt;">
<DisplayString>{mRep} nanoseconds</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;1,1000000&gt; &gt;">
<DisplayString>{mRep} microseconds</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;1,1000&gt; &gt;">
<DisplayString>{mRep} milliseconds</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;1,1&gt; &gt;">
<DisplayString>{mRep} seconds</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;60,1&gt; &gt;">
<DisplayString>{mRep} minutes</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;3600,1&gt; &gt;">
<DisplayString>{mRep} hours</DisplayString>
</Type>
<Type Name="eastl::chrono::duration&lt;*,eastl::ratio&lt;*,*&gt; &gt;">
<DisplayString>{mRep} duration with ratio = [{$T2} : {$T3}] </DisplayString>
</Type>
<Type Name="eastl::function&lt;*&gt;">
<DisplayString Condition="mInvokeFuncPtr == nullptr">empty</DisplayString>
<DisplayString>{mInvokeFuncPtr}</DisplayString>
</Type>
<Type Name="eastl::reference_wrapper&lt;*&gt;">
<DisplayString>{*val}</DisplayString>
</Type>
<!--
This implementation isn't ideal because it can't switch between showing inline value vs values stored in a heap allocation.
We are hitting the limit of natvis scripting that we can't workaround unless we change the implementation of eastl::any.
-->
<Type Name="eastl::any">
<DisplayString Condition="m_handler == nullptr">empty</DisplayString>
<DisplayString Condition="m_handler != nullptr">{m_storage.external_storage}</DisplayString>
</Type>
<Type Name="eastl::atomic&lt;*&gt;">
<DisplayString>{mAtomic}</DisplayString>
<Expand>
<ExpandedItem>mAtomic</ExpandedItem>
</Expand>
</Type>
<Type Name="eastl::atomic_flag">
<DisplayString>{mFlag.mAtomic}</DisplayString>
</Type>
<Type Name="eastl::variant&lt;*&gt;">
<Intrinsic Name="index" Expression="(int)mIndex"/>
<DisplayString Condition="index() == size_t(-1)">[valueless_by_exception]</DisplayString>
<DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={($T1*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={($T2*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={($T3*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={($T4*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={($T5*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={($T6*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={($T7*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={($T8*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={($T9*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={($T10*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={($T11*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={($T12*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={($T13*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={($T14*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={($T15*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={($T16*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={($T17*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={($T18*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={($T19*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={($T20*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={($T21*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={($T22*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={($T23*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={($T24*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={($T25*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={($T26*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={($T27*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={($T28*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={($T29*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={($T30*)mBuffer.mCharData}}</DisplayString>
<DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={($T31*)mBuffer.mCharData}}</DisplayString>
<Expand>
<Item Name="index">index()</Item>
<Item Name="[value]" Condition="index() == 0" Optional="true">($T1*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 1" Optional="true">($T2*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 2" Optional="true">($T3*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 3" Optional="true">($T4*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 4" Optional="true">($T5*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 5" Optional="true">($T6*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 6" Optional="true">($T7*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 7" Optional="true">($T8*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 8" Optional="true">($T9*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 9" Optional="true">($T10*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 10" Optional="true">($T11*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 11" Optional="true">($T12*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 12" Optional="true">($T13*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 13" Optional="true">($T14*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 14" Optional="true">($T15*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 15" Optional="true">($T16*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 16" Optional="true">($T17*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 17" Optional="true">($T18*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 18" Optional="true">($T19*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 19" Optional="true">($T20*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 20" Optional="true">($T21*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 21" Optional="true">($T22*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 22" Optional="true">($T23*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 23" Optional="true">($T24*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 24" Optional="true">($T25*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 25" Optional="true">($T26*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 26" Optional="true">($T27*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 27" Optional="true">($T28*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 28" Optional="true">($T29*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 29" Optional="true">($T30*)mBuffer.mCharData</Item>
<Item Name="[value]" Condition="index() == 30" Optional="true">($T31*)mBuffer.mCharData</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;&gt;">
<DisplayString IncludeView="noparens"></DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand/>
</Type>
<Type Name="eastl::tuple&lt;*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[2]">(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*,*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[2]">(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[3]">(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*,*,*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[2]">(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[3]">(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[4]">(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*,*,*,*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;5,$T6,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[2]">(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[3]">(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[4]">(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[5]">(*((eastl::Internal::TupleLeaf&lt;5,$T6,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::tuple&lt;*,*,*,*,*,*,*&gt;">
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;5,$T6,0&gt;*)&amp;mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf&lt;6,$T7,0&gt;*)&amp;mImpl)).mValue}</DisplayString>
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
<Expand>
<Item Name="[0]">(*((eastl::Internal::TupleLeaf&lt;0,$T1,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[1]">(*((eastl::Internal::TupleLeaf&lt;1,$T2,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[2]">(*((eastl::Internal::TupleLeaf&lt;2,$T3,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[3]">(*((eastl::Internal::TupleLeaf&lt;3,$T4,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[4]">(*((eastl::Internal::TupleLeaf&lt;4,$T5,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[5]">(*((eastl::Internal::TupleLeaf&lt;5,$T6,0&gt;*)&amp;mImpl)).mValue</Item>
<Item Name="[6]">(*((eastl::Internal::TupleLeaf&lt;6,$T7,0&gt;*)&amp;mImpl)).mValue</Item>
</Expand>
</Type>
<Type Name="eastl::basic_flags&lt;*,eastl::flag_marshaller&lt;eastl::maskflag_tag,*&gt;&gt;">
<DisplayString Condition="m_mask == 0">(nothing)</DisplayString>
<DisplayString>{static_cast&lt;flag_type&gt;(m_mask),en}</DisplayString>
<Expand>
<Item Name="m_mask">m_mask,bb</Item>
<Item Name="bit 0" Condition="m_mask &amp; (1 &lt;&lt; 0)">(flag_type)(1 &lt;&lt; 0),en</Item>
<Item Name="bit 1" Condition="m_mask &amp; (1 &lt;&lt; 1)">(flag_type)(1 &lt;&lt; 1),en</Item>
<Item Name="bit 2" Condition="m_mask &amp; (1 &lt;&lt; 2)">(flag_type)(1 &lt;&lt; 2),en</Item>
<Item Name="bit 3" Condition="m_mask &amp; (1 &lt;&lt; 3)">(flag_type)(1 &lt;&lt; 3),en</Item>
<Item Name="bit 4" Condition="m_mask &amp; (1 &lt;&lt; 4)">(flag_type)(1 &lt;&lt; 4),en</Item>
<Item Name="bit 5" Condition="m_mask &amp; (1 &lt;&lt; 5)">(flag_type)(1 &lt;&lt; 5),en</Item>
<Item Name="bit 6" Condition="m_mask &amp; (1 &lt;&lt; 6)">(flag_type)(1 &lt;&lt; 6),en</Item>
<Item Name="bit 7" Condition="m_mask &amp; (1 &lt;&lt; 7)">(flag_type)(1 &lt;&lt; 7),en</Item>
<Item Name="bit 8" Condition="m_mask &amp; (1 &lt;&lt; 8)">(flag_type)(1 &lt;&lt; 8),en</Item>
<Item Name="bit 9" Condition="m_mask &amp; (1 &lt;&lt; 9)">(flag_type)(1 &lt;&lt; 9),en</Item>
<Item Name="bit 10" Condition="m_mask &amp; (1 &lt;&lt; 10)">(flag_type)(1 &lt;&lt; 10),en</Item>
<Item Name="bit 11" Condition="m_mask &amp; (1 &lt;&lt; 11)">(flag_type)(1 &lt;&lt; 11),en</Item>
<Item Name="bit 12" Condition="m_mask &amp; (1 &lt;&lt; 12)">(flag_type)(1 &lt;&lt; 12),en</Item>
<Item Name="bit 13" Condition="m_mask &amp; (1 &lt;&lt; 13)">(flag_type)(1 &lt;&lt; 13),en</Item>
<Item Name="bit 14" Condition="m_mask &amp; (1 &lt;&lt; 14)">(flag_type)(1 &lt;&lt; 14),en</Item>
<Item Name="bit 15" Condition="m_mask &amp; (1 &lt;&lt; 15)">(flag_type)(1 &lt;&lt; 15),en</Item>
<Item Name="bit 16" Condition="m_mask &amp; (1 &lt;&lt; 16)">(flag_type)(1 &lt;&lt; 16),en</Item>
<Item Name="bit 17" Condition="m_mask &amp; (1 &lt;&lt; 17)">(flag_type)(1 &lt;&lt; 17),en</Item>
<Item Name="bit 18" Condition="m_mask &amp; (1 &lt;&lt; 18)">(flag_type)(1 &lt;&lt; 18),en</Item>
<Item Name="bit 19" Condition="m_mask &amp; (1 &lt;&lt; 19)">(flag_type)(1 &lt;&lt; 19),en</Item>
<Item Name="bit 20" Condition="m_mask &amp; (1 &lt;&lt; 20)">(flag_type)(1 &lt;&lt; 20),en</Item>
<Item Name="bit 21" Condition="m_mask &amp; (1 &lt;&lt; 21)">(flag_type)(1 &lt;&lt; 21),en</Item>
<Item Name="bit 22" Condition="m_mask &amp; (1 &lt;&lt; 22)">(flag_type)(1 &lt;&lt; 22),en</Item>
<Item Name="bit 23" Condition="m_mask &amp; (1 &lt;&lt; 23)">(flag_type)(1 &lt;&lt; 23),en</Item>
<Item Name="bit 24" Condition="m_mask &amp; (1 &lt;&lt; 24)">(flag_type)(1 &lt;&lt; 24),en</Item>
<Item Name="bit 25" Condition="m_mask &amp; (1 &lt;&lt; 25)">(flag_type)(1 &lt;&lt; 25),en</Item>
<Item Name="bit 26" Condition="m_mask &amp; (1 &lt;&lt; 26)">(flag_type)(1 &lt;&lt; 26),en</Item>
<Item Name="bit 27" Condition="m_mask &amp; (1 &lt;&lt; 27)">(flag_type)(1 &lt;&lt; 27),en</Item>
<Item Name="bit 28" Condition="m_mask &amp; (1 &lt;&lt; 28)">(flag_type)(1 &lt;&lt; 28),en</Item>
<Item Name="bit 29" Condition="m_mask &amp; (1 &lt;&lt; 29)">(flag_type)(1 &lt;&lt; 29),en</Item>
<Item Name="bit 30" Condition="m_mask &amp; (1 &lt;&lt; 30)">(flag_type)(1 &lt;&lt; 30),en</Item>
<Item Name="bit 31" Condition="m_mask &amp; (1 &lt;&lt; 31)">(flag_type)(1 &lt;&lt; 31),en</Item>
</Expand>
</Type>
<Type Name="eastl::basic_flags&lt;*,eastl::flag_marshaller&lt;eastl::bitflag_tag,*&gt;&gt;">
<!-- when we have a single flag, display that -->
<DisplayString Condition="(1 &lt;&lt; __log2(m_mask)) == m_mask">{static_cast&lt;flag_type&gt;(__log2(m_mask)),en}</DisplayString>
<!-- we lack the technology to show every flag, so just say there is multiple -->
<DisplayString Condition="m_mask != 0">(multiple values)</DisplayString>
<!-- empty -->
<DisplayString>(nothing)</DisplayString>
<Expand>
<Item Name="m_mask">m_mask,bb</Item>
<Item Name="bit 0" Condition="m_mask &amp; (1 &lt;&lt; 0)">(flag_type)(0),en</Item>
<Item Name="bit 1" Condition="m_mask &amp; (1 &lt;&lt; 1)">(flag_type)(1),en</Item>
<Item Name="bit 2" Condition="m_mask &amp; (1 &lt;&lt; 2)">(flag_type)(2),en</Item>
<Item Name="bit 3" Condition="m_mask &amp; (1 &lt;&lt; 3)">(flag_type)(3),en</Item>
<Item Name="bit 4" Condition="m_mask &amp; (1 &lt;&lt; 4)">(flag_type)(4),en</Item>
<Item Name="bit 5" Condition="m_mask &amp; (1 &lt;&lt; 5)">(flag_type)(5),en</Item>
<Item Name="bit 6" Condition="m_mask &amp; (1 &lt;&lt; 6)">(flag_type)(6),en</Item>
<Item Name="bit 7" Condition="m_mask &amp; (1 &lt;&lt; 7)">(flag_type)(7),en</Item>
<Item Name="bit 8" Condition="m_mask &amp; (1 &lt;&lt; 8)">(flag_type)(8),en</Item>
<Item Name="bit 9" Condition="m_mask &amp; (1 &lt;&lt; 9)">(flag_type)(9),en</Item>
<Item Name="bit 10" Condition="m_mask &amp; (1 &lt;&lt; 10)">(flag_type)(10),en</Item>
<Item Name="bit 11" Condition="m_mask &amp; (1 &lt;&lt; 11)">(flag_type)(11),en</Item>
<Item Name="bit 12" Condition="m_mask &amp; (1 &lt;&lt; 12)">(flag_type)(12),en</Item>
<Item Name="bit 13" Condition="m_mask &amp; (1 &lt;&lt; 13)">(flag_type)(13),en</Item>
<Item Name="bit 14" Condition="m_mask &amp; (1 &lt;&lt; 14)">(flag_type)(14),en</Item>
<Item Name="bit 15" Condition="m_mask &amp; (1 &lt;&lt; 15)">(flag_type)(15),en</Item>
<Item Name="bit 16" Condition="m_mask &amp; (1 &lt;&lt; 16)">(flag_type)(16),en</Item>
<Item Name="bit 17" Condition="m_mask &amp; (1 &lt;&lt; 17)">(flag_type)(17),en</Item>
<Item Name="bit 18" Condition="m_mask &amp; (1 &lt;&lt; 18)">(flag_type)(18),en</Item>
<Item Name="bit 19" Condition="m_mask &amp; (1 &lt;&lt; 19)">(flag_type)(19),en</Item>
<Item Name="bit 20" Condition="m_mask &amp; (1 &lt;&lt; 20)">(flag_type)(20),en</Item>
<Item Name="bit 21" Condition="m_mask &amp; (1 &lt;&lt; 21)">(flag_type)(21),en</Item>
<Item Name="bit 22" Condition="m_mask &amp; (1 &lt;&lt; 22)">(flag_type)(22),en</Item>
<Item Name="bit 23" Condition="m_mask &amp; (1 &lt;&lt; 23)">(flag_type)(23),en</Item>
<Item Name="bit 24" Condition="m_mask &amp; (1 &lt;&lt; 24)">(flag_type)(24),en</Item>
<Item Name="bit 25" Condition="m_mask &amp; (1 &lt;&lt; 25)">(flag_type)(25),en</Item>
<Item Name="bit 26" Condition="m_mask &amp; (1 &lt;&lt; 26)">(flag_type)(26),en</Item>
<Item Name="bit 27" Condition="m_mask &amp; (1 &lt;&lt; 27)">(flag_type)(27),en</Item>
<Item Name="bit 28" Condition="m_mask &amp; (1 &lt;&lt; 28)">(flag_type)(28),en</Item>
<Item Name="bit 29" Condition="m_mask &amp; (1 &lt;&lt; 29)">(flag_type)(29),en</Item>
<Item Name="bit 30" Condition="m_mask &amp; (1 &lt;&lt; 30)">(flag_type)(30),en</Item>
<Item Name="bit 31" Condition="m_mask &amp; (1 &lt;&lt; 31)">(flag_type)(31),en</Item>
</Expand>
</Type>
</AutoVisualizer>