diff --git a/README.md b/README.md index f81f691f560..1d2ab321af3 100644 --- a/README.md +++ b/README.md @@ -362,6 +362,20 @@ The `SKIPPED` result code indicates that a given test was explicitly skipped by * taking a very long time to run * failing or passing for the incorrect reason +# Editing And Testing The Debugger Visualizer + +### Modify The Visualizer + +To modify how components are visualized in the debugger edit the file `stl\debugger\STL.natvis`. For more information on +how to modify this file check the [natvis documentation][]. + +### Test Your Changes + +You can add the natvis file to any Visual Studio C++ project if you right click your project > Add > Existing Item and +select the STL.natvis file. After doing this you should be able to see your changes in a Visual Studio debugging +session. + + # Block Diagram The STL is built atop other compiler support libraries that ship with Windows and Visual Studio, like the UCRT, @@ -423,3 +437,4 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception [opencode@microsoft.com]: mailto:opencode@microsoft.com [redistributables]: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads [vcpkg]: https://github.com/microsoft/vcpkg +[natvis documentation]: https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects diff --git a/stl/debugger/STL.natvis b/stl/debugger/STL.natvis new file mode 100644 index 00000000000..008bb6ddb97 --- /dev/null +++ b/stl/debugger/STL.natvis @@ -0,0 +1,1622 @@ + + + + + + + {*($T1 *)this} + + *($T1 *)this + + + + + + {_Myval1} + + _Myval1 + + + + + + + null + + + + + + {{ size={_Last - _First} }} + + + _Last - _First + _First + + + + + + + {first}, {second} + ({first}, {second}) + + first + second + + + + + + + ({*this,view(noparens)}) + + + + + {_Myfirst._Val} + ({*this,view(noparens)}) + + _Myfirst._Val + + + + + {_Myfirst._Val}, {((_Mybase *) this)->_Myfirst._Val} + ({*this,view(noparens)}) + + _Myfirst._Val + ((_Mybase *) this)->_Myfirst._Val + + + + + {_Myfirst._Val}, {((_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase *) this)->_Myfirst._Val} + ({*this,view(noparens)}) + + _Myfirst._Val + ((_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase *) this)->_Myfirst._Val + + + + + {_Myfirst._Val}, {((_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val} + ({*this,view(noparens)}) + + _Myfirst._Val + ((_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val + + + + + {_Myfirst._Val}, {((_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val} + ({*this,view(noparens)}) + + _Myfirst._Val + ((_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val + + + + + {_Myfirst._Val}, {((_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val}, {((_Mybase::_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val}, {*((_Mybase::_Mybase::_Mybase::_Mybase::_Mybase *) this),view(noparens)} + ({*this,view(noparens)}) + + _Myfirst._Val + ((_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val + ((_Mybase::_Mybase::_Mybase::_Mybase *) this)->_Myfirst._Val + Next five elements: + *((_Mybase::_Mybase::_Mybase::_Mybase::_Mybase *) this) + + + + + + nullopt + + + + + + nullopt + {value()} + + value() + + + + + + {_Elem} + + + + + [valueless_by_exception] + {{ index=0, value={_Head} }} + {{ index=1, value={_Tail._Head} }} + {{ index=2, value={_Tail._Tail._Head} }} + {{ index=3, value={_Tail._Tail._Tail._Head} }} + {{ index=4, value={_Tail._Tail._Tail._Tail._Head} }} + {{ index=5, value={_Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=6, value={_Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=7, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=8, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=9, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=10, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=11, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=12, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=13, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=14, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=15, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=16, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=17, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=18, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=19, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=20, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=21, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=22, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=23, value={_Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head} }} + {{ index=24, value={_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} }} + {{ index=25, value={_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} }} + {{ index=26, value={_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} }} + {{ index=27, value={_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} }} + {{ index=28, value={_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} }} + {{ index=29, value={_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} }} + {{ index=30, value={_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} }} + {{ index=31, value={_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} }} + + index() + _Head + _Tail._Head + _Tail._Tail._Head + _Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Tail._Head + _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 + _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 + _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 + _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 + _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 + _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 + _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 + _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 + + + + + monostate + + + + + + + + + + + [empty] + [not empty (Small)] + [not empty (Large)] + + + {has_value()} + + + {type()} + + + (Small/Trivial Object) + + + (Small Object) + + + (Dynamic Allocation) + + + + + + + {{ size={$T1} }} + + + $T1 + (_Array[$i / _Bitsperword] >> ($i % _Bitsperword)) & 1,d + + + + + + {(_Pbitset->_Array[_Mypos / _Pbitset->_Bitsperword] >> (_Mypos % _Pbitset->_Bitsperword)) & 1,d} + + _Pbitset + _Mypos + + + + + + allocator + + + + + + default_delete + + + + + + _Myptr + empty + unique_ptr {*_Myptr} + + _Myptr + + + + + + _Mypair._Myval2 + empty + unique_ptr {*_Mypair._Myval2} + + _Mypair._Myval2 + _Mypair + + + + + + default + + _Ptr + + + + + + custom deleter + + _Ptr + _Dtor + + + + + + custom deleter + + _Mypair._Myval2 + _Mypair + + + + + + custom deleter, custom allocator + + _Ptr + _Dtor + _Myal + + + + + + custom deleter, custom allocator + + _Mypair._Myval2._Myval2 + _Mypair + _Mypair._Myval2 + + + + + make_shared + + ($T1 *) &_Storage + + + + + + allocate_shared + + ($T1 *) &_Storage + _Myal + + + + + + allocate_shared + + ($T1 *) &_Mypair._Myval2 + _Mypair + + + + + + custom deleter + + _Mypair._Myval2 + _Mypair + + + + + + custom deleter, custom allocator + + _Mypair._Myval2._Myval2 + _Mypair + _Mypair._Myval2 + + + + + _Ptr + empty + nullptr + {*_Ptr} + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong ref] [{*_Rep}] + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong ref, {_Rep->_Weaks - 1} weak ref] [{*_Rep}] + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong ref, {_Rep->_Weaks - 1} weak refs] [{*_Rep}] + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong refs] [{*_Rep}] + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong refs, {_Rep->_Weaks - 1} weak ref] [{*_Rep}] + shared_ptr {*this,view(ptr)} [{_Rep->_Uses} strong refs, {_Rep->_Weaks - 1} weak refs] [{*_Rep}] + + _Ptr + *_Rep + + + + + empty + nullptr + {*_Ptr} + expired [{_Rep->_Weaks} weak ref] [{*_Rep}] + expired [{_Rep->_Weaks} weak refs] [{*_Rep}] + weak_ptr {*this,view(ptr)} [{_Rep->_Uses} strong ref, {_Rep->_Weaks - 1} weak ref] [{*_Rep}] + weak_ptr {*this,view(ptr)} [{_Rep->_Uses} strong ref, {_Rep->_Weaks - 1} weak refs] [{*_Rep}] + weak_ptr {*this,view(ptr)} [{_Rep->_Uses} strong refs, {_Rep->_Weaks - 1} weak ref] [{*_Rep}] + weak_ptr {*this,view(ptr)} [{_Rep->_Uses} strong refs, {_Rep->_Weaks - 1} weak refs] [{*_Rep}] + + _Ptr + *_Rep + + + + + + + {*_Ptr} + + _Ptr + + + + + + {_Object} + + + + + + {_Callee} + + _Callee + + + + + + {*_Ptr} + + _Ptr + + + + + plus<> + minus<> + multiplies<> + divides<> + modulus<> + negate<> + equal_to<> + not_equal_to<> + greater<> + less<> + greater_equal<> + less_equal<> + logical_and<> + logical_or<> + logical_not<> + bit_and<> + bit_or<> + bit_xor<> + bit_not<> + + + + plus + + + + + minus + + + + + multiplies + + + + + divides + + + + + modulus + + + + + negate + + + + + equal_to + + + + + not_equal_to + + + + + greater + + + + + less + + + + + greater_equal + + + + + less_equal + + + + + logical_and + + + + + logical_or + + + + + logical_not + + + + + bit_and + + + + + bit_or + + + + + bit_xor + + + + + bit_not + + + + + + not1({_Functor}) + + _Functor + + + + + not2({_Functor}) + + _Functor + + + + + + _{$T1,d} + + + + + + bind({_Myfun}, {_Mybargs,view(noparens)}) + + _Myfun + _Mybargs + + + + + + bind({_Mypair}, {_Mypair._Myval2,view(noparens)}) + + _Mypair + _Mypair._Myval2 + + + + + + + mem_fn({_Callee._Object}) + + + + + + mem_fn({_Pm}) + + + + + + + {_Callee._Object} + + _Callee._Object + _Myal + + + + + + {_Mypair._Myval2} + + _Mypair._Myval2 + _Mypair + + + + + {_Callee} + + _Callee + + + + + + empty + {*_Impl} + + *_Impl + + + + + + empty + {*_Mystorage._Ptrs[_EEN_IMPL]} + + *_Mystorage._Ptrs[_EEN_IMPL] + + + + + + hash + + + + + + {_MyRep} nanoseconds + + + + + {_MyRep} microseconds + + + + + {_MyRep} milliseconds + + + + + {_MyRep} seconds + + + + + {_MyRep} minutes + + + + + {_MyRep} hours + + + + + + + {_Bx._Buf,na} + {_Bx._Ptr,na} + _Bx._Buf,na + _Bx._Ptr,na + + _Mysize + _Myres + + _Mysize + _Bx._Buf + _Bx._Ptr + + + + + + + + {_Bx._Buf,su} + {_Bx._Ptr,su} + _Bx._Buf,su + _Bx._Ptr,su + + _Mysize + _Myres + + _Mysize + _Bx._Buf + _Bx._Ptr + + + + + + + + + + + + + {_Mypair._Myval2._Bx._Buf,na} + {_Mypair._Myval2._Bx._Ptr,na} + _Mypair._Myval2._Bx._Buf,na + _Mypair._Myval2._Bx._Ptr,na + + size() + capacity() + _Mypair + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Bx._Buf + _Mypair._Myval2._Bx._Ptr + + + + + + + + + + + + + + + {_Mypair._Myval2._Bx._Buf,su} + {_Mypair._Myval2._Bx._Ptr,su} + _Mypair._Myval2._Bx._Buf,su + _Mypair._Myval2._Bx._Ptr,su + + size() + capacity() + _Mypair + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Bx._Buf + _Mypair._Myval2._Bx._Ptr + + + + + + + + + + + + {_Mypair._Myval2._Bx._Buf,s32} + {_Mypair._Myval2._Bx._Ptr,s32} + _Mypair._Myval2._Bx._Buf,s32 + _Mypair._Myval2._Bx._Ptr,s32 + + size() + capacity() + _Mypair + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Bx._Buf + _Mypair._Myval2._Bx._Ptr + + + + + + + _Ptr,na + + _Ptr + + + + + + + + + + _Ptr,su + + _Ptr + + + + + + _Ptr,s32 + + _Ptr + + + + + + + {_Mydata,[_Mysize]} + _Mydata,[_Mysize] + + size() + + size() + data() + + + + + + + _Myptr + + _Myptr + + + + + + _Mydata + _Myoff + + _Mydata + _Myoff + _Myoff + _Mydata,[_Mysize] + + + + + + {{ size={$T2} }} + + + $T2 + _Elems + + + + + + + + _Ptr,na + + _Ptr + + + + + + + _Ptr + _Idx + {_Ptr[_Idx]} + end + + _Ptr + _Idx + + + + + + {{ size={_Mysize} }} + + + _Mysize + _Map[(($i + _Myoff) / _EEN_DS) % _Mapsize][($i + _Myoff) % _EEN_DS] + + + + + + + {{ size={_Mypair._Myval2._Mysize} }} + + _Mypair + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Map[(($i + _Mypair._Myval2._Myoff) / _EEN_DS) % _Mypair._Myval2._Mapsize][($i + _Mypair._Myval2._Myoff) % _EEN_DS] + + + + + + + {((_Mydeque_t *)_Myproxy->_Mycont)->_Map[(_Myoff / _EEN_DS) % ((_Mydeque_t *)_Myproxy->_Mycont)->_Mapsize][_Myoff % _EEN_DS]} + end + + _Myoff - ((_Mydeque_t *)_Myproxy->_Mycont)->_Myoff + &((_Mydeque_t *)_Myproxy->_Mycont)->_Map[(_Myoff / _EEN_DS) % ((_Mydeque_t *)_Myproxy->_Mycont)->_Mapsize][_Myoff % _EEN_DS] + + + + + + + empty + non-empty + + + _Myhead + _Next + _Myval + + + + + + + empty + non-empty + + _Mypair + + _Mypair._Myval2._Myhead + _Next + _Myval + + + + + + + &_Ptr->_Myval,na + end + {**this} + + + + + + {{ size={_Mysize} }} + + + _Mysize + _Myhead->_Next + _Next + _Myval + + + + + + + {{ size={_Mypair._Myval2._Mysize} }} + + _Mypair + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Myhead->_Next + _Next + _Myval + + + + + + + &_Ptr->_Myval,na + + + + + + {{ size={_Mysize} }} + + (_Myvec._Myend - _Myvec._Myfirst) * _EEN_VBITS + + _Mysize + (bool)((_Myvec._Myfirst[$i / _EEN_VBITS] >> ($i % _EEN_VBITS)) & 1) + + + + + + + + + {{ size={size()} }} + + capacity() + _Myvec._Mypair + + _Mysize + (bool)((_Myvec._Mypair._Myval2._Myfirst[$i / _EEN_VBITS] >> ($i % _EEN_VBITS)) & 1) + + + + + + + + {(bool)((*_Myptr >> _Myoff) & 1)} + + _Myptr + _Myoff + + + + + + + {{ size={_Mylast - _Myfirst} }} + + _Myend - _Myfirst + + _Mylast - _Myfirst + _Myfirst + + + + + + + + + {{ size={size()} }} + + capacity() + _Mypair + + size() + _Mypair._Myval2._Myfirst + + + + + + + _Ptr,na + + _Ptr + + + + + + + + + + {{ size={_Mysize} }} + + + _Mysize + _Myhead->_Parent + _Left + _Right + _Myval + + + + + + + + + + {{ size={_Mypair._Myval2._Myval2._Mysize} }} + + _Mypair + _Mypair._Myval2 + + _Mypair._Myval2._Myval2._Mysize + _Mypair._Myval2._Myval2._Myhead->_Parent + _Left + _Right + _Myval + + + + + + + + {{ size={_Mypair._Myval2._Myval2._Mysize} }} + + _Mypair + _Mypair._Myval2 + + _Mypair._Myval2._Myval2._Mysize + _Mypair._Myval2._Myval2._Myhead->_Parent + _Left + _Right + _Myval,view(MapHelper) + + + + + + {second} + + + + + _Ptr->_Isnil ? nullptr : &_Ptr->_Myval + {_Ptr->_Myval} + end + + &_Ptr->_Myval + + + + + + + + + + + + + + {_List} + + _List + + + + + + + + + + + + + {_List} + + _Maxidx + ((float)_List._Mypair._Myval2._Mysize) / ((float)_Maxidx) + _Traitsobj._Mypair._Myval2._Myval2 + _Traitsobj._Mypair + _Traitsobj._Mypair._Myval2 + _List._Mypair + _List,view(simple) + + + + + + {_List} + + _Maxidx + ((float)_List._Mypair._Myval2._Mysize) / ((float)_Maxidx) + _Traitsobj._Mypair._Myval2._Myval2 + _Traitsobj._Mypair + _Traitsobj._Mypair._Myval2 + _List._Mypair + _List,view(MapHelper) + + + + + + Test + + + _Mypair._Myval2._Mysize + _Mypair._Myval2._Myhead->_Next + _Next + _Myval + + + + + + + + {c} + + c + + + + + + {c} + + c + comp + + + + + + + + current._Ptr - 1,na + reverse_iterator {current._Ptr[-1]} + + current._Ptr - 1 + + + + + + + current._Ptr + current._Idx - 1,na + reverse_iterator {current._Ptr[current._Idx - 1]} + reverse_iterator rend + + current._Ptr + current._Idx - 1 + + + + + + &current._Ptr->_Prev->_Myval,na + reverse_iterator {**this} + + + + + current._Ptr - 1,na + reverse_iterator {**this} + + current._Ptr - 1 + + + + + reverse_iterator base() {current} + + NOTE: *ri is equivalent to *prev(ri.base()) + current + + + + + + current - 1 + reverse_iterator {current[-1]} + + current - 1 + + + + + + back_insert_iterator into {container} + + container + + + + + + front_insert_iterator into {container} + + container + + + + + + insert_iterator into {container} at {iter} + + container + iter + + + + + + move_iterator {current} + + current + + + + + + -i*{-_Val[1]} + {_Val[0]}-i*{-_Val[1]} + {_Val[0]} + i*{_Val[1]} + {_Val[0]}+i*{_Val[1]} + + _Val[0] + _Val[1] + + + + + + {{ size={_Mysize} }} + + + _Mysize + _Myptr + + + + + + + + + {data(),[size()]} + + + + + {_Stringbuffer} + + _Stringbuffer + + + + + {_Stringbuffer} + + _Stringbuffer + + + + + {_Stringbuffer} + + _Stringbuffer + + + + + + empty + {_Visualization} + _Visualization + + + + + + {first,[second - first]na} + false + + matched + first + second + + + + + + {first._Ptr,[second._Ptr - first._Ptr]na} + false + + matched + first + second + + + + + + not ready + {_Matches} + + _Matches,view(simple) + _Prefix + _Suffix + + + + + + &_MyVal + end + {_MyVal} + + _Begin + _End + _MyRe + _Flags + _MyVal + + + + + + _Res + end + {*_Res} + + _Pos + _Res + _Suffix + _Cur + _Subs + + + + + + + + + + {value()} + + value() + + + + + + + + + + {value()} + + + + + + + unlocked + locked + unlocked + locked + + *(long *)((char *)(&_Mtx_storage) + 40) + *(long *)((char *)(&_Mtx_storage) + 72) + *(int *)((char *)(&_Mtx_storage) + 44) + *(int *)((char *)(&_Mtx_storage) + 76) + + + + + + + + _Retrieved + _Result + _Exception + + + + + + + empty + pending + has_result + + *_MyPromise._State._Assoc_state + _MyPromise._Future_retrieved + + + + + + + empty + pending + has_result + + *_Assoc_state + + + + + + + ptr_fun({_Pfun}) + + + + + + + + mem_fun({_Pmemfun}) + + + + + + + + mem_fun_ref({_Pmemfun}) + + + + + bind1st({op}, {value}) + + op + value + + + + + bind2nd({op}, {value}) + + op + value + + + + + empty + auto_ptr {*_Myptr} + + _Myptr + + + + + + + {_Ptr->_Fn,na}, #initial suspend + {_Ptr->_Fn,na}, #final suspend + {_Ptr->_Fn,na}, suspend point #{(_Ptr->_Index)/2 - 1} + {_Ptr->_Fn,na} + + "initial suspend" + "final suspend" + (_Ptr->_Index)/2 - 1 + this,view(ViewPromise) + + + + + + + + + + + + *reinterpret_cast<$T1 *>(reinterpret_cast<char*>(_Ptr) - _ALIGNED_SIZE) + + + + + + + *reinterpret_cast<$T1 *>(reinterpret_cast<char*>(_Ptr) + 2*sizeof(void*)) + + + + + {*reinterpret_cast<void(__cdecl**)(void*)>(_Ptr),na} + {*(reinterpret_cast<void(__cdecl**)(void*)>(_Ptr) + 1),na} + + this,view(ViewPromise) + + + + + + + + +