| <?xml version="1.0" encoding="utf-8" ?> |
| <AutoVisualizer |
| xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> |
| |
| <Type Name="std::__Cr::array<*,*>"> |
| <DisplayString>{{ size={$T2} }}</DisplayString> |
| <Expand> |
| <ArrayItems> |
| <Size>$T2</Size> |
| <ValuePointer>__elems_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::atomic<*>"> |
| <Intrinsic Optional="true" Name="value" Expression="*($T1*)this"/> |
| <DisplayString>{value()}</DisplayString> |
| <Expand> |
| <Item Name="[value]">value()</Item> |
| </Expand> |
| </Type> |
| |
| <!--libc++'s short string optimization: |
| A basic_string is 3 size_t words long. In the "alternate string layout" |
| that we use, they are: pointer to data, size, capacity. |
| (In the normal layout, it's capacity, size, data instead.) |
| If a string is short enough that it fits in these three size_ts instead, |
| the string data is stored inline in these 3 words, with the last byte of |
| the storage storing the length of the string. |
| The highest bit of the "capacity" word is set for normal, "long" strings, |
| and that bit needs to be masked out to know the real capacity. |
| If this bit is not set, the string data is stored inline. |
| (In the normal layout, if the lowest bit in the first byte is set, |
| it's a "long" string, requiring a long string to always have even |
| capacity. A short string here stores its length in the first byte |
| and the inline data in the remaining storage.) |
| --> |
| <Type Name="std::__Cr::basic_string<*>"> |
| <Intrinsic Name="is_wide" Expression="sizeof($T1) > 1" /> |
| <Intrinsic Name="is_long" Expression="__rep_.__s.__is_long_" /> |
| <Intrinsic Name="size" Expression="is_long() ? __rep_.__l.__size_ : (size_t)__rep_.__s.__size_" /> |
| <!-- Mask off the top bit which stores __is_long_. --> |
| <Intrinsic Name="long_cap" Expression="__rep_.__l.__cap_ & 0x7FFFFFFFFFFFFFFF" /> |
| <!-- Short string capacity is buffer size minus 1 for null terminator. --> |
| <Intrinsic Name="short_cap" Expression="sizeof(__rep_.__s.__data_) / sizeof($T1) - 1" /> |
| <Intrinsic Name="data" Expression="is_long() ? __rep_.__l.__data_ : __rep_.__s.__data_" /> |
| <Intrinsic Name="contains_embedded_nul" Expression="size() != (is_wide() ? wcslen(data()) : strlen(data()))" /> |
| |
| <DisplayString Condition="contains_embedded_nul() && !is_wide()">{data(),[size()]s} (data after NUL exists)</DisplayString> |
| <DisplayString Condition="contains_embedded_nul()">{data(),[size()]su} (data after NUL exists)</DisplayString> |
| <DisplayString Condition="!is_wide()">{data(),[size()]s}</DisplayString> |
| <DisplayString>{data(),[size()]su}</DisplayString> |
| |
| <StringView>data(),[size()]</StringView> |
| |
| <Expand> |
| <Item Name="[size]" ExcludeView="simple">size()</Item> |
| <Item Name="[capacity]" Condition="is_long()" ExcludeView="simple">long_cap()</Item> |
| <Item Name="[capacity]" Condition="!is_long()" ExcludeView="simple">short_cap()</Item> |
| <Item Name="[data]" Condition="!is_long()" ExcludeView="simple">data()</Item> |
| <ArrayItems> |
| <Size>size()</Size> |
| <ValuePointer>data()</ValuePointer> |
| </ArrayItems> |
| <!-- Offer to show nul-delimited substrings if there are any (the debugger will not show it at all otherwise). --> |
| <Synthetic Name="[nul-delimited substrings]" Condition="contains_embedded_nul()"> |
| <Expand> |
| <CustomListItems> |
| <Variable Name="p" InitialValue="is_wide() ? (const wchar*)data() : (const char*)data()" /> |
| <Variable Name="end" InitialValue="p + (size())" /> |
| <Loop> |
| <Break Condition="p >= end" /> |
| <Item>p</Item> |
| <!-- +1 to advance past the nul character. --> |
| <Exec>p += (is_wide() ? wcslen(p) : strlen(p)) + 1</Exec> |
| </Loop> |
| </CustomListItems> |
| </Expand> |
| </Synthetic> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::deque<*,*>"> |
| <Intrinsic Name="size" Expression="*(size_type*)&__size_" /> |
| <Intrinsic Name="block_size" |
| Expression="sizeof($T1) < 256 ? 4096 / sizeof($T1) : 16" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <IndexListItems> |
| <Size>size()</Size> |
| <ValueNode> |
| *(*(__map_.__begin_ + ($i + __start_) / block_size()) + |
| ($i + __start_) % block_size()) |
| </ValueNode> |
| </IndexListItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::forward_list<*>"> |
| <Intrinsic Name="head" |
| Expression="((__node_pointer)&__before_begin_)->__next_" /> |
| <DisplayString Condition="head() == 0">empty</DisplayString> |
| <DisplayString Condition="head() != 0">non-empty</DisplayString> |
| <Expand> |
| <LinkedListItems> |
| <HeadPointer>head()</HeadPointer> |
| <NextPointer>__next_</NextPointer> |
| <ValueNode>__value_</ValueNode> |
| </LinkedListItems> |
| </Expand> |
| </Type> |
| |
| <!-- Note: Not in Cr! But will win over the one in stl.natvis --> |
| <Type Name="std::initializer_list<*>"> |
| <DisplayString>{{ size={__size_} }}</DisplayString> |
| <Expand> |
| <ArrayItems> |
| <Size>__size_</Size> |
| <ValuePointer>__begin_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::list<*>"> |
| <Intrinsic Name="size" Expression="__size_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <LinkedListItems> |
| <Size>size()</Size> |
| <HeadPointer>__end_.__next_</HeadPointer> |
| <NextPointer>__next_</NextPointer> |
| <ValueNode> |
| ((std::__Cr::list<$T1,$T2>::__node_pointer)this) |
| ->__value_ |
| </ValueNode> |
| </LinkedListItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::map<*>"> |
| <Intrinsic Name="size" Expression="__tree_.__size_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <TreeItems> |
| <Size>size()</Size> |
| <HeadPointer> |
| ((__node_pointer)&__tree_.__end_node_)->__left_ |
| </HeadPointer> |
| <LeftPointer> |
| ((std::__Cr::map<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__left_ |
| </LeftPointer> |
| <RightPointer> |
| ((std::__Cr::map<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__right_ |
| </RightPointer> |
| <ValueNode> |
| ((std::__Cr::map<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__value_ |
| </ValueNode> |
| </TreeItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::multimap<*>"> |
| <Intrinsic Name="size" Expression="__tree_.__size_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <TreeItems> |
| <Size>size()</Size> |
| <HeadPointer> |
| ((__node_pointer)&__tree_.__end_node_)->__left_ |
| </HeadPointer> |
| <LeftPointer> |
| ((std::__Cr::multimap<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__left_ |
| </LeftPointer> |
| <RightPointer> |
| ((std::__Cr::multimap<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__right_ |
| </RightPointer> |
| <ValueNode> |
| ((std::__Cr::multimap<$T1,$T2,$T3,$T4>::__node_pointer)this) |
| ->__value_ |
| </ValueNode> |
| </TreeItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::multiset<*>"> |
| <Intrinsic Name="size" Expression="__tree_.__size_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <TreeItems> |
| <Size>size()</Size> |
| <HeadPointer> |
| ((__base::__node_pointer)&__tree_.__end_node_)->__left_ |
| </HeadPointer> |
| <LeftPointer> |
| ((std::__Cr::multiset<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__left_ |
| </LeftPointer> |
| <RightPointer> |
| ((std::__Cr::multiset<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__right_ |
| </RightPointer> |
| <ValueNode> |
| ((std::__Cr::multiset<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__value_ |
| </ValueNode> |
| </TreeItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::optional<*>"> |
| <DisplayString Condition="!__engaged_">nullopt</DisplayString> |
| <DisplayString>{__val_}</DisplayString> |
| <Expand> |
| <ExpandedItem Condition="__engaged_">__val_</ExpandedItem> |
| </Expand> |
| </Type> |
| |
| <!-- Inspired by https://github.com/microsoft/STL/blob/main/stl/debugger/STL.natvis --> |
| <Type Name="std::__Cr::variant<*>"> |
| <Intrinsic Name="index" Expression="(int)__impl_.__index"/> |
| <DisplayString Condition="index() < 0">[valueless_by_exception]</DisplayString> |
| <DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={__impl_.__data.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={__impl_.__data.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={__impl_.__data.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={__impl_.__data.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={__impl_.__data.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <DisplayString Condition="index() == 31" Optional="true">{{ index=31, value={__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value} }}</DisplayString> |
| <Expand> |
| <Item Name="index">index()</Item> |
| <Item Name="[value]" Condition="index() == 0" Optional="true">__impl_.__data.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 1" Optional="true">__impl_.__data.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 2" Optional="true">__impl_.__data.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 3" Optional="true">__impl_.__data.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 4" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 5" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 6" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 7" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 8" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 9" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 10" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 11" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 12" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 13" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 14" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 15" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 16" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 17" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 18" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 19" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 20" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 21" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 22" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 23" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 24" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 25" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 26" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 27" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 28" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 29" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 30" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| <Item Name="[value]" Condition="index() == 31" Optional="true">__impl_.__data.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__tail.__head.__value</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::pair<*,*>"> |
| <DisplayString>{first}, {second}</DisplayString> |
| <Expand> |
| <Item Name="first">first</Item> |
| <Item Name="second">second</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::priority_queue<*>"> |
| <DisplayString>{c}</DisplayString> |
| <Expand> |
| <ExpandedItem>c</ExpandedItem> |
| <Item Name="[comp]">comp</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::set<*>"> |
| <Intrinsic Name="size" Expression="__tree_.__size_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <TreeItems> |
| <Size>size()</Size> |
| <HeadPointer> |
| ((__base::__node_pointer)&__tree_.__end_node_)->__left_ |
| </HeadPointer> |
| <LeftPointer> |
| ((std::__Cr::set<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__left_ |
| </LeftPointer> |
| <RightPointer> |
| ((std::__Cr::set<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__right_ |
| </RightPointer> |
| <ValueNode> |
| ((std::__Cr::set<$T1,$T2,$T3>::__base::__node_pointer)this) |
| ->__value_ |
| </ValueNode> |
| </TreeItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::stack<*>"> |
| <AlternativeType Name="std::__Cr::queue<*>" /> |
| <DisplayString>{c}</DisplayString> |
| <Expand> |
| <ExpandedItem>c</ExpandedItem> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::__tuple_leaf<*,*,0>"> |
| <DisplayString>{__value_}</DisplayString> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<>"> |
| <DisplayString>()</DisplayString> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_}, {(std::__Cr::__tuple_leaf<2,$T3,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| <Item Name="[2]">(std::__Cr::__tuple_leaf<2,$T3,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*,*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_}, {(std::__Cr::__tuple_leaf<2,$T3,0>)__base_}, {(std::__Cr::__tuple_leaf<3,$T4,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| <Item Name="[2]">(std::__Cr::__tuple_leaf<2,$T3,0>)__base_</Item> |
| <Item Name="[3]">(std::__Cr::__tuple_leaf<3,$T4,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*,*,*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_}, {(std::__Cr::__tuple_leaf<2,$T3,0>)__base_}, {(std::__Cr::__tuple_leaf<3,$T4,0>)__base_}, {(std::__Cr::__tuple_leaf<4,$T5,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| <Item Name="[2]">(std::__Cr::__tuple_leaf<2,$T3,0>)__base_</Item> |
| <Item Name="[3]">(std::__Cr::__tuple_leaf<3,$T4,0>)__base_</Item> |
| <Item Name="[4]">(std::__Cr::__tuple_leaf<4,$T5,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*,*,*,*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_}, {(std::__Cr::__tuple_leaf<2,$T3,0>)__base_}, {(std::__Cr::__tuple_leaf<3,$T4,0>)__base_}, {(std::__Cr::__tuple_leaf<4,$T5,0>)__base_}, {(std::__Cr::__tuple_leaf<5,$T6,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| <Item Name="[2]">(std::__Cr::__tuple_leaf<2,$T3,0>)__base_</Item> |
| <Item Name="[3]">(std::__Cr::__tuple_leaf<3,$T4,0>)__base_</Item> |
| <Item Name="[4]">(std::__Cr::__tuple_leaf<4,$T5,0>)__base_</Item> |
| <Item Name="[5]">(std::__Cr::__tuple_leaf<5,$T6,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::tuple<*,*,*,*,*,*,*>"> |
| <DisplayString>({(std::__Cr::__tuple_leaf<0,$T1,0>)__base_}, {(std::__Cr::__tuple_leaf<1,$T2,0>)__base_}, {(std::__Cr::__tuple_leaf<2,$T3,0>)__base_}, {(std::__Cr::__tuple_leaf<3,$T4,0>)__base_}, {(std::__Cr::__tuple_leaf<4,$T5,0>)__base_}, {(std::__Cr::__tuple_leaf<5,$T6,0>)__base_}, {(std::__Cr::__tuple_leaf<6,$T7,0>)__base_})</DisplayString> |
| <Expand> |
| <Item Name="[0]">(std::__Cr::__tuple_leaf<0,$T1,0>)__base_</Item> |
| <Item Name="[1]">(std::__Cr::__tuple_leaf<1,$T2,0>)__base_</Item> |
| <Item Name="[2]">(std::__Cr::__tuple_leaf<2,$T3,0>)__base_</Item> |
| <Item Name="[3]">(std::__Cr::__tuple_leaf<3,$T4,0>)__base_</Item> |
| <Item Name="[4]">(std::__Cr::__tuple_leaf<4,$T5,0>)__base_</Item> |
| <Item Name="[5]">(std::__Cr::__tuple_leaf<5,$T6,0>)__base_</Item> |
| <Item Name="[6]">(std::__Cr::__tuple_leaf<6,$T7,0>)__base_</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::unique_ptr<*>"> |
| <Intrinsic Name="value" Expression="*($T1**)&__ptr_" /> |
| <SmartPointer Usage="Minimal">value()</SmartPointer> |
| <DisplayString Condition="value() == 0">empty</DisplayString> |
| <DisplayString Condition="value() != 0"> |
| unique_ptr {value()}</DisplayString> |
| <Expand> |
| <Item Condition="value() != 0" Name="[ptr]">value()</Item> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::unordered_map<*>"> |
| <AlternativeType Name="std::__Cr::unordered_multimap<*>" /> |
| <Intrinsic Name="size" Expression="__table_.__size_" /> |
| <Intrinsic Name="bucket_count" Expression="__table_.__bucket_list_.__deleter_.__size_" /> |
| <Intrinsic Name="max_load_factor" Expression="__table_.__max_load_factor_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <Item Name="[bucket_count]">bucket_count()</Item> |
| <Item Name="[load_factor]">bucket_count() != 0 ? (float)size() / bucket_count() : 0.f</Item> |
| <Item Name="[max_load_factor]">max_load_factor()</Item> |
| <LinkedListItems> |
| <Size>size()</Size> |
| <HeadPointer>__table_.__first_node_.__next_</HeadPointer> |
| <NextPointer>__next_</NextPointer> |
| <ValueNode>((std::__Cr::__hash_node<std::__Cr::__hash_value_type<$T1,$T2>,void *> *)this)->__value_</ValueNode> |
| </LinkedListItems> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::unordered_set<*>"> |
| <AlternativeType Name="std::__Cr::unordered_multiset<*>" /> |
| <Intrinsic Name="size" Expression="__table_.__size_" /> |
| <Intrinsic Name="bucket_count" Expression="__table_.__bucket_list_.__deleter_.__size_" /> |
| <Intrinsic Name="max_load_factor" Expression="__table_.__max_load_factor_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <Item Name="[size]">size()</Item> |
| <Item Name="[bucket_count]">bucket_count()</Item> |
| <Item Name="[load_factor]">bucket_count() != 0 ? (float)size() / bucket_count() : 0.f</Item> |
| <Item Name="[max_load_factor]">max_load_factor()</Item> |
| <LinkedListItems> |
| <Size>size()</Size> |
| <HeadPointer>__table_.__first_node_.__next_</HeadPointer> |
| <NextPointer>__next_</NextPointer> |
| <ValueNode>((std::__Cr::__hash_node<$T1,void *> *)this)->__value_</ValueNode> |
| </LinkedListItems> |
| </Expand> |
| </Type> |
| |
| <!-- This is the node __value_ of an unordered_(multi)map. Expand it through |
| a separate formatter instead of in the <Item> expression above so that the |
| same <Type> works for unordered_(multi)set and unordered_(multi)map. --> |
| <Type Name="std::__Cr::__hash_value_type<*>"> |
| <DisplayString>{__cc_}</DisplayString> |
| <Expand> |
| <ExpandedItem>__cc_</ExpandedItem> |
| </Expand> |
| </Type> |
| |
| <Type Name="std::__Cr::vector<*>"> |
| <Intrinsic Name="size" Expression="__end_ - __begin_" /> |
| <DisplayString>{{ size={size()} }}</DisplayString> |
| <Expand> |
| <ArrayItems> |
| <Size>size()</Size> |
| <ValuePointer>__begin_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| </AutoVisualizer> |