Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions stl/debugger/STL.natvis
Original file line number Diff line number Diff line change
Expand Up @@ -1084,6 +1084,7 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
<Type Name="std::_Array_iterator&lt;*&gt;" Priority="MediumLow">
<AlternativeType Name="std::_Array_const_iterator&lt;*&gt;" />
<SmartPointer Usage="Indexable">_Ptr,na</SmartPointer>
<DisplayString>{*_Ptr}</DisplayString>
<Expand>
<Item Name="[ptr]">_Ptr</Item>
</Expand>
Expand Down Expand Up @@ -1227,14 +1228,27 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
</Expand>
</Type>

<Type Name="std::_Vector_iterator&lt;*&gt;">
<!-- This is for _ITERATOR_DEBUG_LEVEL == 0 and must have lower priority. -->
<Type Name="std::_Vector_iterator&lt;*&gt;" Priority="MediumLow">
<AlternativeType Name="std::_Vector_const_iterator&lt;*&gt;" />
<SmartPointer Usage="Indexable">_Ptr,na</SmartPointer>
<DisplayString>{*_Ptr}</DisplayString>
<Expand>
<Item Name="[ptr]">_Ptr</Item>
</Expand>
</Type>

<!-- This is for _ITERATOR_DEBUG_LEVEL != 0 and must have higher priority. -->
<Type Name="std::_Vector_iterator&lt;*&gt;" Priority="Medium">
<AlternativeType Name="std::_Vector_const_iterator&lt;*&gt;" />
<Intrinsic Name="my_cont_end" Expression="((_Myvec_t *)_Myproxy-&gt;_Mycont)-&gt;_Mylast" />
<SmartPointer Usage="Indexable">_Ptr,na</SmartPointer>
<DisplayString Condition="_Ptr == my_cont_end()">end</DisplayString>
<DisplayString Condition="_Ptr != my_cont_end()">{*_Ptr}</DisplayString>
<Expand>
<Item Name="[ptr]">_Ptr</Item>
</Expand>
</Type>

<!-- VC 2015 -->
<Type Name="std::map&lt;*&gt;" Priority="Medium">
Expand Down Expand Up @@ -1837,13 +1851,25 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
</Expand>
</Type>

<Type Name="std::_Span_iterator&lt;*&gt;">
<!-- This is for _ITERATOR_DEBUG_LEVEL == 0 and must have lower priority. -->
<Type Name="std::_Span_iterator&lt;*&gt;" Priority="MediumLow">
<SmartPointer Usage="Indexable">_Myptr,na</SmartPointer>
<DisplayString>{*_Myptr}</DisplayString>
<Expand>
<Item Name="[ptr]">_Myptr</Item>
</Expand>
</Type>

<!-- This is for _ITERATOR_DEBUG_LEVEL != 0 and must have higher priority. -->
<Type Name="std::_Span_iterator&lt;*&gt;" Priority="Medium">
<SmartPointer Usage="Indexable">_Myptr,na</SmartPointer>
<DisplayString Condition="_Myptr == _Myend">end</DisplayString>
<DisplayString Condition="_Myptr != _Myend">{*_Myptr}</DisplayString>
<Expand>
<Item Name="[ptr]">_Myptr</Item>
</Expand>
</Type>

<Type Name="std::default_sentinel_t">
<DisplayString>default sentinel</DisplayString>
</Type>
Expand Down
3 changes: 2 additions & 1 deletion stl/inc/vector
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ public:
using pointer = typename _Myvec::const_pointer;
using reference = const value_type&;

using _Tptr = typename _Myvec::pointer;
using _Tptr = typename _Myvec::pointer;
using _Myvec_t = _Myvec; // helper for expression evaluator

_CONSTEXPR20 _Vector_const_iterator() noexcept : _Ptr() {}

Expand Down