Home | History | Annotate | Download | only in etc
      1 ;------------------------------------------------------------------------------
      2 ; This is the description of STLport data structures in Visual Studio debugger
      3 ; language. Those descriptions has been tested with Visual C++ 2005 Express
      4 ; Edition, you are welcome to report successful usage with any other Visual
      5 ; Studio version.
      6 ; Those descriptions has been tested with STLport 5.2.0.
      7 ; How to use: Copy/Paste this file content in the autoexp.dat file you will find
      8 ; in your Visual Studio install, for instance
      9 ; C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger, in the
     10 ; [Visualizer] section.
     11 ; TODO: Enhance debug iterator visualization to report end iterators.
     12 ; TODO: Add visualization for rope.
     13 ; TODO: Fix bitset visualization.
     14 ;------------------------------------------------------------------------------
     15 ;------------------------------------------------------------------------------
     16 ; stlport::basic_string
     17 ;------------------------------------------------------------------------------
     18 stlp_std::basic_string<char,*>|stlpx_std::basic_string<char,*>|stlpmtx_std::basic_string<char,*>|stlpxmtx_std::basic_string<char,*>|stlpd_std::priv::_NonDbg_str<char,*>|stlpdx_std::priv::_NonDbg_str<char,*>|stlpdmtx_std::priv::_NonDbg_str<char,*>|stlpdxmtx_std::priv::_NonDbg_str<char,*>{
     19     preview
     20     (
     21         [$c._M_start_of_storage._M_data, s]
     22     )
     23 
     24     stringview
     25     (
     26         [$c._M_start_of_storage._M_data, s]
     27     )
     28 
     29     children
     30     (
     31         #(
     32             [raw view]: [$c,!],
     33             buffer: [(unsigned int)$c._M_start_of_storage._M_data, x],
     34             length: $c._M_finish - $c._M_start_of_storage._M_data,
     35             capacity: #if($c._M_start_of_storage._M_data == $c._M_buffers._M_static_buf)
     36                     (
     37                         $c._DEFAULT_SIZE
     38                     )
     39                     #else
     40                     (
     41                         $c._M_buffers._M_end_of_storage - $c._M_start_of_storage._M_data
     42                     ),
     43             #array
     44             (
     45 				expr: $c._M_start_of_storage._M_data[$i],
     46 				size: $c._M_finish - $c._M_start_of_storage._M_data
     47 			)
     48         )
     49     )
     50 }
     51 
     52 stlp_std::basic_string<unsigned short,*>|stlp_std::basic_string<wchar_t,*>|stlpx_std::basic_string<unsigned short,*>|stlpx_std::basic_string<wchar_t,*>|stlpmtx_std::basic_string<unsigned short,*>|stlpmtx_std::basic_string<wchar_t,*>|stlpxmtx_std::basic_string<unsigned short,*>|stlpxmtx_std::basic_string<wchar_t,*>|stlpd_std::priv::_NonDbg_str<unsigned short,*>|stlpd_std::priv::_NonDbg_str<wchar_t,*>|stlpdx_std::priv::_NonDbg_str<unsigned short,*>|stlpdx_std::priv::_NonDbg_str<wchar_t,*>|stlpdmtx_std::priv::_NonDbg_str<unsigned short,*>|stlpdmtx_std::priv::_NonDbg_str<wchar_t,*>|stlpdxmtx_std::priv::_NonDbg_str<unsigned short,*>|stlpdxmtx_std::priv::_NonDbg_str<wchar_t,*>{
     53     preview
     54     (
     55         [$c._M_start_of_storage._M_data, su]
     56     )
     57 
     58     stringview
     59     (
     60         [$c._M_start_of_storage._M_data, su]
     61     )
     62 
     63     children
     64     (
     65         #(
     66             [raw view]: [$c,!],
     67             buffer: [(unsigned int)$c._M_start_of_storage._M_data, x],
     68             length: $c._M_finish - $c._M_start_of_storage._M_data,
     69             capacity: #if($c._M_start_of_storage._M_data == $c._M_buffers._M_static_buf)
     70                     (
     71                         $c._DEFAULT_SIZE
     72                     )
     73                     #else
     74                     (
     75                         $c._M_buffers._M_end_of_storage - $c._M_start_of_storage._M_data
     76                     ),
     77             #array
     78             (
     79 				expr: $c._M_start_of_storage._M_data[$i],
     80 				size: $c._M_finish - $c._M_start_of_storage._M_data
     81 			)
     82         )
     83     )
     84 }
     85 
     86 stlpd_std::basic_string<*>|stlpdx_std::basic_string<*>|stlpdmtx_std::basic_string<*>|stlpdxmtx_std::basic_string<*>{
     87     preview
     88     (
     89 		$c._M_non_dbg_impl
     90 	)
     91 
     92     stringview
     93     (
     94 		$c._M_non_dbg_impl
     95     )
     96 
     97     children
     98     (
     99         #(
    100             [raw view]: [$c,!],
    101             string: $c._M_non_dbg_impl
    102          )
    103     )
    104 }
    105 
    106 ;------------------------------------------------------------------------------
    107 ; stlport::vector
    108 ;------------------------------------------------------------------------------
    109 stlp_std::vector<bool,*>|stlpx_std::vector<bool,*>|stlpmtx_std::vector<bool,*>|stlpxmtx_std::vector<bool,*>|stlpd_std::priv::_NonDbg_vector<bool,*>|stlpdx_std::priv::_NonDbg_vector<bool,*>|stlpdmtx_std::priv::_NonDbg_vector<bool,*>|stlpdxmtx_std::priv::_NonDbg_vector<bool,*>{
    110     preview
    111     (
    112         #(
    113 			"[",
    114 			($c._M_finish._M_p - $c._M_start._M_p) * sizeof(unsigned int) * 8 + $c._M_finish._M_offset,
    115 			"](",
    116 			#array
    117 			(
    118 				expr : ($c._M_start._M_p[$i / (sizeof(unsigned int) * 8)] >> ($i % (sizeof(unsigned int) * 8))),
    119 				size : (($c._M_finish._M_p - $c._M_start._M_p) * sizeof(unsigned int) * 8 + $c._M_finish._M_offset)
    120 			)  : (bool)($e & 1),
    121 			")"
    122 		)
    123 	)
    124 	children
    125 	(
    126 		#(
    127 			[raw view]: [$c,!],
    128 			buffer : [(unsigned int)$c._M_start._M_p, x],
    129 			size : (($c._M_finish._M_p - $c._M_start._M_p) * sizeof(unsigned int) * 8 + $c._M_finish._M_offset),
    130 			#array
    131 			(
    132 				expr : ($c._M_start._M_p[$i / (sizeof(unsigned int) * 8)] >> ($i % (sizeof(unsigned int) * 8))),
    133 				size : (($c._M_finish._M_p - $c._M_start._M_p) * sizeof(unsigned int) * 8 + $c._M_finish._M_offset)
    134 			)  : (bool)($e & 1)
    135 		)
    136 	)
    137 }
    138 
    139 stlp_std::priv::_Bit_iter<*>|stlpx_std::priv::_Bit_iter<*>|stlpmtx_std::priv::_Bit_iter<*>|stlpxmtx_std::priv::_Bit_iter<*>|stlpd_std::priv::_Bit_iter<*>|stlpdx_std::priv::_Bit_iter<*>|stlpdmtx_std::priv::::_Bit_iter<*>|stlpdxmtx_std::priv::_Bit_iter<*>{
    140 	preview
    141 	(
    142 		#(
    143 			(bool) (((*$c._M_p) >> $c._M_offset) & 1)
    144 		)
    145 	)
    146 	children
    147 	(
    148 		#(
    149 			[raw view]: [$c,!],
    150 			value : (bool) (((*$c._M_p) >> $c._M_offset) & 1)
    151 		)
    152 	)
    153 }
    154 
    155 stlp_std::vector<*>|stlpx_std::vector<*>|stlpmtx_std::vector<*>|stlpxmtx_std::vector<*>|stlpd_std::priv::_NonDbg_vector<*>|stlpdx_std::priv::_NonDbg_vector<*>|stlpdmtx_std::priv::_NonDbg_vector<*>|stlpdxmtx_std::priv::_NonDbg_vector<*>{
    156     preview
    157     (
    158         #(
    159             "[",
    160             $c._M_finish - $c._M_start,
    161             "/",
    162             $c._M_end_of_storage._M_data - $c._M_start,
    163             "](",
    164             #array
    165             (
    166                 expr :  ($c._M_start)[$i],
    167                 size :  $c._M_finish - $c._M_start
    168             ),
    169             ")"
    170         )
    171     )
    172     children
    173     (
    174         #(
    175             [raw view]: [$c,!],
    176             size : $c._M_finish - $c._M_start,
    177             capacity : $c._M_end_of_storage._M_data - $c._M_start,
    178             #array
    179             (
    180                 expr :  ($c._M_start)[$i],
    181                 size :  $c._M_finish - $c._M_start
    182             )
    183         )
    184     )
    185 }
    186 
    187 stlpd_std::vector<*>|stlpdx_std::vector<*>|stlpdmtx_std::vector<*>|stlpdxmtx_std::vector<*>{
    188     preview
    189     (
    190 		$c._M_non_dbg_impl
    191     )
    192     children
    193     (
    194         #(
    195             [raw view] : [$c,!],
    196             vector : $c._M_non_dbg_impl
    197          )
    198     )
    199 }
    200 
    201 ;------------------------------------------------------------------------------
    202 ; stlport::deque
    203 ;------------------------------------------------------------------------------
    204 stlp_std::deque<*,*>|stlpx_std::deque<*,*>|stlpmtx_std::deque<*,*>|stlpxmtx_std::deque<*,*>|stlpd_std::priv::_NonDbg_deque<*,*>|stlpdx_std::priv::_NonDbg_deque<*,*>|stlpdmtx_std::priv::_NonDbg_deque<*,*>|stlpdxmtx_std::priv::_NonDbg_deque<*,*>{
    205     preview
    206     (
    207 		#if (((unsigned int)($c._M_start._M_cur + 1) - ((unsigned int)$c._M_start._M_cur)) < _MAX_BYTES)
    208 		(
    209 			#(
    210 				"[",
    211 				(($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1))) - ($c._M_start._M_cur - $c._M_start._M_first) - ($c._M_finish._M_last - $c._M_finish._M_cur),
    212 				"/",
    213 				($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1)) - 1,
    214 				"](",
    215 				#array
    216 				(
    217 					expr : *(*($c._M_start._M_node + (($i + ($c._M_start._M_cur - $c._M_start._M_first)) / (_MAX_BYTES / sizeof($T1)))) + (($i + ($c._M_start._M_cur - $c._M_start._M_first)) % (_MAX_BYTES / sizeof($T1)))),
    218 					size : (($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1))) - ($c._M_start._M_cur - $c._M_start._M_first) - ($c._M_finish._M_last - $c._M_finish._M_cur)
    219 				),
    220 				")"
    221 			)
    222 		)
    223 		#else
    224 		(
    225 			#(
    226 				"[",
    227 				$c._M_finish._M_node - $c._M_start._M_node,
    228 				"/",
    229 				$c._M_finish._M_node - $c._M_start._M_node,
    230 				"](",
    231 				#array
    232 				(
    233 					expr : **($c._M_start._M_node + $i),
    234 					size : $c._M_finish._M_node - $c._M_start._M_node
    235 				),
    236 				")"
    237 			)
    238 		)
    239     )
    240     children
    241     (
    242 		#if (((unsigned int)($c._M_start._M_cur + 1) - ((unsigned int)$c._M_start._M_cur)) < _MAX_BYTES)
    243 		(
    244 			#(
    245 				[raw view]: [$c,!],
    246 				size : (($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1))) - ($c._M_start._M_cur - $c._M_start._M_first) - ($c._M_finish._M_last - $c._M_finish._M_cur),
    247 				capacity : ($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1)) - 1,
    248 				front free space : $c._M_start._M_cur - $c._M_start._M_first,
    249 				back free space : $c._M_finish._M_last - $c._M_finish._M_cur - 1,
    250 				#array
    251 				(
    252 					expr : *(*($c._M_start._M_node + (($i + ($c._M_start._M_cur - $c._M_start._M_first)) / (_MAX_BYTES / sizeof($T1)))) + (($i + ($c._M_start._M_cur - $c._M_start._M_first)) % (_MAX_BYTES / sizeof($T1)))),
    253 					size : (($c._M_finish._M_node - $c._M_start._M_node + 1) * (_MAX_BYTES / sizeof($T1))) - ($c._M_start._M_cur - $c._M_start._M_first) - ($c._M_finish._M_last - $c._M_finish._M_cur)
    254 				)
    255 			)
    256 		)
    257 		#else
    258 		(
    259 			#(
    260 				[raw view] : [$c,!],
    261 				size : $c._M_finish._M_node - $c._M_start._M_node,
    262 				capacity : $c._M_finish._M_node - $c._M_start._M_node,
    263 				front free space : $c._M_start._M_cur - $c._M_start._M_first,
    264 				back free space : $c._M_finish._M_last - $c._M_finish._M_cur - 1,
    265 				#array
    266 				(
    267 					expr : **($c._M_start._M_node + $i),
    268 					size : $c._M_finish._M_node - $c._M_start._M_node
    269 				)
    270 			)
    271 		)
    272     )
    273 }
    274 
    275 stlp_std::priv::_Deque_iterator<*>|stlpx_std::priv::_Deque_iterator<*>|stlpmtx_std::priv::_Deque_iterator<*>|stlpxmtx_std::priv::_Deque_iterator<*>|stlpd_std::priv::_Deque_iterator<*>|stlpdx_std::priv::_Deque_iterator<*>|stlpdmtx_std::priv::_Deque_iterator<*>|stlpdxmtx_std::priv::_Deque_iterator<*>{
    276 	preview
    277 	(
    278 		*($c._M_cur)
    279 	)
    280     children
    281     (
    282         #(
    283             [raw view] : [$c, !],
    284             ptr : [(unsigned int)($c._M_cur), x],
    285             value : *($c._M_cur)
    286         )
    287     )
    288 }
    289 
    290 stlpd_std::deque<*>|stlpdx_std::deque<*>|stlpdmtx_std::deque<*>|stlpdxmtx_std::deque<*>{
    291     preview
    292     (
    293 		$c._M_non_dbg_impl
    294 	)
    295     children
    296     (
    297         #(
    298             [raw view] : [$c,!],
    299             deque : $c._M_non_dbg_impl
    300         )
    301     )
    302 }
    303 
    304 ;------------------------------------------------------------------------------
    305 ; stlport::list
    306 ;------------------------------------------------------------------------------
    307 stlp_std::list<*,*>|stlpx_std::list<*,*>|stlpmtx_std::list<*,*>|stlpxmtx_std::list<*,*>|stlpd_std::priv::_NonDbg_list<*,*>|stlpdx_std::priv::_NonDbg_list<*,*>|stlpdmtx_std::priv::_NonDbg_list<*,*>|stlpdxmtx_std::priv::_NonDbg_list<*,*>{
    308     preview
    309     (
    310 		#(
    311 			"(",
    312 			#list
    313 			(
    314 				head : $c._M_node._M_data._M_next,
    315 				skip : &($c._M_node._M_data),
    316 				next : _M_next,
    317 			): #( *($T1*)(&($e) + 1)),
    318 			")"
    319 		)
    320     )
    321     children
    322     (
    323         #(
    324             [raw view]: [$c,!],
    325             #list
    326             (
    327                 head : $c._M_node._M_data._M_next,
    328 				skip : &($c._M_node._M_data),
    329                 next : _M_next,
    330             ): #( *($T1*)(&($e) + 1))
    331         )
    332     )
    333 }
    334 
    335 stlp_std::priv::_List_iterator<*,*>|stlpx_std::priv::_List_iterator<*,*>|stlpmtx_std::priv::_List_iterator<*,*>|stlpxmtx_std::priv::_List_iterator<*,*>|stlpd_std::priv::_List_iterator<*,*>|stlpdx_std::priv::_List_iterator<*,*>|stlpdmtx_std::priv::_List_iterator<*,*>|stlpdxmtx_std::priv::_List_iterator<*,*>{
    336     preview
    337     (
    338         #(*($T1 *)($c._M_node + 1))
    339     )
    340     children
    341     (
    342         #(
    343             [raw view] : [$c, !],
    344             ptr : [(unsigned int)($c._M_node + 1), x],
    345             value : *($T1 *)($c._M_node + 1)
    346         )
    347     )
    348 }
    349 
    350 stlpd_std::list<*,*>|stlpdx_std::list<*,*>|stlpdmtx_std::list<*,*>|stlpdxmtx_std::list<*,*>{
    351     preview
    352     (
    353 		$c._M_non_dbg_impl
    354     )
    355     children
    356     (
    357         #(
    358             [raw view] : [$c,!],
    359             list : $c._M_non_dbg_impl
    360         )
    361     )
    362 }
    363 
    364 ;------------------------------------------------------------------------------
    365 ; stlport::slist
    366 ;------------------------------------------------------------------------------
    367 stlp_std::slist<*,*>|stlpx_std::slist<*,*>|stlpmtx_std::slist<*,*>|stlpxmtx_std::slist<*,*>|stlpd_std::priv::_NonDbg_slist<*,*>|stlpdx_std::priv::_NonDbg_slist<*,*>|stlpdmtx_std::priv::_NonDbg_slist<*,*>|stlpdxmtx_std::priv::_NonDbg_slist<*,*>{
    368     preview
    369     (
    370 		#(
    371 			"(",
    372 			#list
    373 			(
    374 				head : $c._M_head._M_data._M_next,
    375 				skip : &($c._M_head._M_data),
    376 				next : _M_next,
    377 			): #( *($T1*)(&($e) + 1)),
    378 			")"
    379 		)
    380     )
    381     children
    382     (
    383         #(
    384             [raw view]: [$c,!],
    385             #list
    386             (
    387                 head : $c._M_head._M_data._M_next,
    388 				skip : &($c._M_head._M_data),
    389                 next : _M_next,
    390             ): #( *($T1*)(&($e) + 1))
    391         )
    392     )
    393 }
    394 
    395 stlp_std::priv::_Slist_iterator<*,*>|stlpx_std::priv::_Slist_iterator<*,*>|stlpmtx_std::priv::_Slist_iterator<*,*>|stlpxmtx_std::priv::_Slist_iterator<*,*>|stlpd_std::priv::_Slist_iterator<*,*>|stlpdx_std::priv::_Slist_iterator<*,*>|stlpdmtx_std::priv::_Slist_iterator<*,*>|stlpdxmtx_std::priv::_Slist_iterator<*,*>{
    396     preview
    397     (
    398         #(*($T1 *)($c._M_node + 1))
    399     )
    400     children
    401     (
    402         #(
    403             [raw view] : [$c,!],
    404             ptr : [(unsigned int)($c._M_node + 1), x],
    405             value : *($T1 *)($c._M_node + 1)
    406         )
    407     )
    408 }
    409 
    410 stlpd_std::slist<*,*>|stlpdx_std::slist<*,*>|stlpdmtx_std::slist<*,*>|stlpdxmtx_std::slist<*,*>{
    411     preview
    412     (
    413 		$c._M_non_dbg_impl
    414     )
    415     children
    416     (
    417         #(
    418             [raw view] : [$c,!],
    419             [slist] : $c._M_non_dbg_impl
    420         )
    421     )
    422 }
    423 
    424 ;------------------------------------------------------------------------------
    425 ; stlport::pair
    426 ;------------------------------------------------------------------------------
    427 stlp_std::pair<*,*>|stlpx_std::pair<*,*>|stlpmtx_std::pair<*,*>|stlpxmtx_std::pair<*,*>|stlpd_std::pair<*,*>|stlpdx_std::pair<*,*>|stlpdmtx_std::pair<*,*>|stlpdxmtx_std::pair<*,*>{
    428     preview
    429     (
    430         #(
    431             "(",
    432             $c.first,
    433             ", ",
    434             $c.second,
    435             ")"
    436         )
    437     )
    438 }
    439 
    440 ;------------------------------------------------------------------------------
    441 ; stlport::map, stlport::multimap, stlport::set, stlport::multiset
    442 ;------------------------------------------------------------------------------
    443 stlp_std::map<*>|stlpx_std::map<*>|stlpmtx_std::map<*>|stlpxmtx_std::map<*>|stlp_std::multimap<*>|stlpx_std::multimap<*>|stlpmtx_std::multimap<*>|stlpxmtx_std::multimap<*>|stlp_std::set<*>|stlpx_std::set<*>|stlpmtx_std::set<*>|stlpxmtx_std::set<*>|stlp_std::multiset<*>|stlpx_std::multiset<*>|stlpmtx_std::multiset<*>|stlpxmtx_std::multiset<*>{
    444     preview
    445     (
    446 		#(
    447 			"[",
    448 			$c._M_t._M_node_count,
    449 			"](",
    450 			$c._M_t,
    451 			")"
    452 		)
    453     )
    454     children
    455     (
    456         #(
    457             [raw view]: [$c,!],
    458             size: [$c._M_t._M_node_count],
    459             tree: $c._M_t
    460         )
    461     )
    462 }
    463 
    464 stlpd_std::map<*>|stlpdx_std::map<*>|stlpdmtx_std::map<*>|stlpdxmtx_std::map<*>|stlpd_std::multimap<*>|stlpdx_std::multimap<*>|stlpdmtx_std::multimap<*>|stlpdxmtx_std::multimap<*>|stlpd_std::set<*>|stlpdx_std::set<*>|stlpdmtx_std::set<*>|stlpdxmtx_std::set<*>|stlpd_std::multiset<*>|stlpdx_std::multiset<*>|stlpdmtx_std::multiset<*>|stlpdxmtx_std::multiset<*>{
    465     preview
    466     (
    467 		#(
    468 			"[",
    469 			$c._M_t._M_non_dbg_impl._M_node_count,
    470 			"](",
    471 			$c._M_t._M_non_dbg_impl,
    472 			")"
    473 		)
    474     )
    475     children
    476     (
    477         #(
    478             [raw view]: [$c,!],
    479             size: $c._M_t._M_non_dbg_impl._M_node_count,
    480             tree: $c._M_t._M_non_dbg_impl
    481         )
    482     )
    483 }
    484 
    485 stlp_std::priv::_Rb_tree<*,*,*,*,*>|stlpx_std::priv::_Rb_tree<*,*,*,*,*>|stlpmtx_std::priv::_Rb_tree<*,*,*,*,*>|stlpxmtx_std::priv::_Rb_tree<*,*,*,*,*>|stlpd_std::priv::_NonDbg_Rb_tree<*,*,*,*,*>|stlpdx_std::priv::_NonDbg_Rb_tree<*,*,*,*,*>|stlpdmtx_std::priv::_NonDbg_Rb_tree<*,*,*,*,*>|stlpdxmtx_std::priv::_NonDbg_Rb_tree<*,*,*,*,*>{
    486     preview
    487     (
    488 		#tree
    489 		(
    490 			head : $c._M_header._M_data._M_parent,
    491 			skip : &($c._M_header._M_data),
    492 			size : $c._M_node_count,
    493 			left : _M_left,
    494 			right : _M_right
    495 		): #(*($T3 *)(&($e) + 1))
    496     )
    497     children
    498     (
    499         #(
    500             [raw view]: [$c,!],
    501             #tree
    502             (
    503                 head : $c._M_header._M_data._M_parent,
    504 				skip : &($c._M_header._M_data),
    505 				size : $c._M_node_count,
    506                 left : _M_left,
    507                 right : _M_right
    508             ) : #(*($T3 *)(&($e) + 1))
    509         )
    510     )
    511 }
    512 
    513 stlp_std::priv::_Rb_tree_iterator<*,*>|stlpx_std::priv::_Rb_tree_iterator<*,*>|stlpmtx_std::priv::_Rb_tree_iterator<*,*>|stlpxmtx_std::priv::_Rb_tree_iterator<*,*>|stlpd_std::priv::_Rb_tree_iterator<*,*>|stlpdx_std::priv::_Rb_tree_iterator<*,*>|stlpdmtx_std::priv::_Rb_tree_iterator<*,*>|stlpdxmtx_std::priv::_Rb_tree_iterator<*,*>{
    514     preview
    515     (
    516         [*($T1*)($c._M_node + 1)]
    517     )
    518     children
    519     (
    520         #(
    521             [raw view]: [$c,!],
    522             value: [*($T1*)($c._M_node + 1)],
    523             ptr: [(unsigned int)($c._M_node + 1), x]
    524         )
    525     )
    526 }
    527 
    528 ;------------------------------------------------------------------------------
    529 ; stlport::hash_map, stlport::hash_multimap, stlport::hash_set, stlport::hash_multiset
    530 ; stlport::unordered_map, stlport::unordered_multimap, stlport::unordered_set, stlport::unordered_multiset
    531 ;------------------------------------------------------------------------------
    532 stlp_std::hash_map<*>|stlpx_std::hash_map<*>|stlpmtx_std::hash_map<*>|stlpxmtx_std::hash_map<*>|stlp_std::hash_multimap<*>|stlpx_std::hash_multimap<*>|stlpmtx_std::hash_multimap<*>|stlpxmtx_std::hash_multimap<*>|stlp_std::hash_set<*>|stlpx_std::hash_set<*>|stlpmtx_std::hash_set<*>|stlpxmtx_std::hash_set<*>|stlp_std::hash_multiset<*>|stlpx_std::hash_multiset<*>|stlpmtx_std::hash_multiset<*>|stlpxmtx_std::hash_multiset<*>|stlp_std::tr1::unordered_map<*>|stlpx_std::tr1::unordered_map<*>|stlpmtx_std::tr1::unordered_map<*>|stlpxmtx_std::tr1::unordered_map<*>|stlp_std::tr1::unordered_multimap<*>|stlpx_std::tr1::unordered_multimap<*>|stlpmtx_std::tr1::unordered_multimap<*>|stlpxmtx_std::tr1::unordered_multimap<*>|stlp_std::tr1::unordered_set<*>|stlpx_std::tr1::unordered_set<*>|stlpmtx_std::tr1::unordered_set<*>|stlpxmtx_std::tr1::unordered_set<*>|stlp_std::tr1::unordered_multiset<*>|stlpx_std::tr1::unordered_multiset<*>|stlpmtx_std::tr1::unordered_multiset<*>|stlpxmtx_std::tr1::unordered_multiset<*>{
    533     preview
    534     (
    535 		#(
    536 			"[",
    537 			$c._M_ht._M_num_elements,
    538 			"]",
    539 			$c._M_ht
    540 		)
    541     )
    542     children
    543     (
    544         #(
    545             [raw view]: [$c,!],
    546             hashtable: $c._M_ht
    547         )
    548     )
    549 }
    550 
    551 stlpd_std::hash_map<*>|stlpdx_std::hash_map<*>|stlpdmtx_std::hash_map<*>|stlpdxmtx_std::hash_map<*>|stlpd_std::hash_multimap<*>|stlpdx_std::hash_multimap<*>|stlpdmtx_std::hash_multimap<*>|stlpdxmtx_std::hash_multimap<*>|stlpd_std::hash_set<*>|stlpdx_std::hash_set<*>|stlpdmtx_std::hash_set<*>|stlpdxmtx_std::hash_set<*>|stlpd_std::hash_multiset<*>|stlpdx_std::hash_multiset<*>|stlpdmtx_std::hash_multiset<*>|stlpdxmtx_std::hash_multiset<*>|stlpd_std::tr1::unordered_map<*>|stlpdx_std::tr1::unordered_map<*>|stlpdmtx_std::tr1::unordered_map<*>|stlpdxmtx_std::tr1::unordered_map<*>|stlpd_std::tr1::unordered_multimap<*>|stlpdx_std::tr1::unordered_multimap<*>|stlpdmtx_std::tr1::unordered_multimap<*>|stlpdxmtx_std::tr1::unordered_multimap<*>|stlpd_std::tr1::unordered_set<*>|stlpdx_std::tr1::unordered_set<*>|stlpdmtx_std::tr1::unordered_set<*>|stlpdxmtx_std::tr1::unordered_set<*>|stlpd_std::tr1::unordered_multiset<*>|stlpdx_std::tr1::unordered_multiset<*>|stlpdmtx_std::tr1::unordered_multiset<*>|stlpdxmtx_std::tr1::unordered_multiset<*>{
    552     preview
    553     (
    554 		#(
    555 			"[",
    556 			$c._M_ht._M_non_dbg_impl._M_num_elements,
    557 			"]",
    558 			$c._M_ht._M_non_dbg_impl
    559 		)
    560     )
    561     children
    562     (
    563         #(
    564             [raw view]: [$c,!],
    565             hashtable: $c._M_ht._M_non_dbg_impl
    566         )
    567     )
    568 }
    569 
    570 stlp_std::hashtable<*,*>|stlpx_std::hashtable<*,*>|stlpmtx_std::hashtable<*,*>|stlpxmtx_std::hashtable<*,*>|stlpd_std::priv::_NonDbg_hashtable<*,*>|stlpdx_std::priv::_NonDbg_hashtable<*,*>|stlpdmtx_std::priv::_NonDbg_hashtable<*,*>|stlpdxmtx_std::priv::_NonDbg_hashtable<*,*>{
    571     preview
    572     (
    573 		$c._M_elems
    574     )
    575     children
    576     (
    577         #(
    578             [raw view]: [$c,!],
    579             size : $c._M_num_elements,
    580             load factor : (float)$c._M_num_elements / ($c._M_buckets._M_finish - $c._M_buckets._M_start),
    581             max load factor: $c._M_max_load_factor,
    582             buckets : $c._M_buckets,
    583             elements : $c._M_elems
    584         )
    585     )
    586 }
    587 
    588 ;------------------------------------------------------------------------------
    589 ; stlport::queue, stlport::priority_queue, stlport::stack
    590 ;------------------------------------------------------------------------------
    591 stlp_std::queue<*>|stlpx_std::queue<*>|stlpmtx_std::queue<*>|stlpxmtx_std::queue<*>|stlpd_std::queue<*>|stlpdx_std::queue<*>|stlpdmtx_std::queue<*>|stlpdxmtx_std::queue<*>|stlp_std::priority_queue<*>|stlpx_std::priority_queue<*>|stlpmtx_std::priority_queue<*>|stlpxmtx_std::priority_queue<*>|stlpd_std::priority_queue<*>|stlpdx_std::priority_queue<*>|stlpdmtx_std::priority_queue<*>|stlpdxmtx_std::priority_queue<*>|stlp_std::stack<*>|stlpx_std::stack<*>|stlpmtx_std::stack<*>|stlpxmtx_std::stack<*>|stlpd_std::stack<*>|stlpdx_std::stack<*>|stlpdmtx_std::stack<*>|stlpdxmtx_std::stack<*>{
    592 	preview
    593 	(
    594 		$c.c
    595 	)
    596 	children
    597 	(
    598 		#(
    599 			[raw view] : [$c,!],
    600 			container : $c.c
    601 		)
    602 	)
    603 }
    604 
    605 ;------------------------------------------------------------------------------
    606 ; stlport debug iterator
    607 ;------------------------------------------------------------------------------
    608 stlp_std::priv::_DBG_iter<*>|stlpx_std::priv::_DBG_iter<*>|stlpmtx_std::priv::_DBG_iter<*>|stlpxmtx_std::priv::_DBG_iter<*>|stlpd_std::priv::_DBG_iter<*>|stlpdx_std::priv::_DBG_iter<*>|stlpdmtx_std::priv::_DBG_iter<*>|stlpdxmtx_std::priv::_DBG_iter<*>{
    609 	preview
    610 	(
    611 		#if($c._M_owner != 0)
    612 		(
    613 			$c._M_iterator
    614 		)
    615 		#else
    616 		(
    617 			"undefined"
    618 		)
    619 	)
    620 	children
    621 	(
    622 		#(
    623 			#if($c._M_owner != 0)
    624 			(
    625 				#(
    626 					[raw view] : [$c,!],
    627 					[iterator] : $c._M_iterator,
    628 					[valid] : [true]
    629 				)
    630 			)
    631 			#else
    632 			(
    633 				#(
    634 					[raw view] : [$c,!],
    635 					[valid] : [false]
    636 				)
    637 			)
    638 		)
    639 	)
    640 }
    641 
    642 ;------------------------------------------------------------------------------
    643 ; stlport::bitset
    644 ; TODO: Fix it, it doesn't work as expected even when adding an enum to the bitset
    645 ; class to get access to the bitset static size rather than using $T1.
    646 ;------------------------------------------------------------------------------
    647 stdp_std::bitset<*,*>|stdpx_std::bitset<*,*>|stdpmtx_std::bitset<*,*>|stdpxmtx_std::bitset<*,*>|stdpd_std::bitset<*>|stdpdx_std::bitset<*>|stdpdmtx_std::bitset<*>|stdpdxmtx_std::bitset<*>{
    648 	preview
    649 	(
    650 		#(
    651 		"[",
    652 			$T1,
    653 		"](",
    654 		#array
    655 		(
    656 			expr : ($c._M_w[$i / (sizeof(unsigned long) * 8)] >> ($i % (sizeof(unsigned long) * 8))),
    657 			size : $T1
    658 		) : [($e & 1),d],
    659 		")"
    660 		)
    661 	)
    662 	children
    663 	(
    664 		#array
    665 		(
    666 			expr : 	($c._M_w[$i / (sizeof(unsigned long) * 8)] >> ($i % (sizeof(unsigned long) * 8))),
    667 			size : 	$T1
    668 		) : (bool)($e & 1)
    669 	)
    670 }
    671 
    672 stdp_std::bitset<*>::reference|stdpx_std::bitset<*>::reference|stdpmtx_std::bitset<*>::reference|stdpxmtx_std::bitset<*>::reference|stdpd_std::bitset<*>::reference|stdpdx_std::bitset<*>::reference|stdpdmtx_std::bitset<*>::reference|stdpdxmtx_std::bitset<*>{
    673     preview
    674     (
    675 		#(
    676 			"bitset[", $c._M_bpos, "] = ",
    677 			(bool)(*($c._M_wp) >> $c._M_bpos) & 1)
    678 		)
    679     )
    680 }
    681 
    682 ;------------------------------------------------------------------------------
    683 ; stlport::auto_ptr
    684 ;------------------------------------------------------------------------------
    685 stlp_std::auto_ptr<*>|stlpx_std::auto_ptr<*>|stlpmtx_std::auto_ptr<*>|stlpxmtx_std::auto_ptr<*>|stlpd_std::auto_ptr<*>|stlpdx_std::auto_ptr<*>|stlpdmtx_std::auto_ptr<*>|stlpdxmtx_std::auto_ptr<*>{
    686     preview
    687     (
    688         #if(($c._M_p) != 0)
    689         (
    690             [*($T1 *)$c._M_p]
    691         )
    692         #else
    693         (
    694             "null"
    695         )
    696     )
    697     children
    698     (
    699         #if(($c._M_p) != 0)
    700         (
    701             #(
    702                 [raw view]: [$c,!],
    703                 ptr: [(unsigned int)$c._M_p, x],
    704                 value: [*($T1 *)$c._M_p]
    705             )
    706         )
    707         #else
    708         (
    709             #(
    710                 [raw view]: [$c,!]
    711             )
    712         )
    713     )
    714 }
    715 
    716 ;------------------------------------------------------------------------------
    717 ;  stlport::complex
    718 ;------------------------------------------------------------------------------
    719 stlp_std::complex<*>|stlpx_std::complex<*>|stlpmtx_std::complex<*>|stlpxmtx_std::complex<*>|stlpd_std::complex<*>|stlpdx_std::complex<*>|stlpdmtx_std::complex<*>|stlpdxmtx_std::complex<*>{
    720 	children
    721 	(
    722 		#(
    723 			real: $e._M_re,
    724 			imaginary: $e._M_im
    725 		)
    726 	)
    727 	preview
    728 	(
    729 		#if($e._M_im != 0)
    730 		(
    731 			#if ($e._M_re != 0)
    732 			(									; Real and Imaginary components
    733 				#if ($e._M_im >= 0)
    734 				(
    735 					#($e._M_re,"+i*", $e._M_im)
    736 				)
    737 				#else
    738 				(
    739 					#($e._M_re,"-i*", -$e._M_im)
    740 				)
    741 			)
    742 			#else
    743 			(									; Purely imaginary
    744 				#if ($e._M_im >= 0.0)
    745 				(
    746 					#("i*", $e._M_im)
    747 				)
    748 				#else
    749 				(
    750 					#("-i*", -$e._M_im)
    751 				)
    752 			)
    753 		)
    754 		#else
    755 		(										; Purely real
    756 			$e._M_re
    757 		)
    758 	)
    759 }
    760 
    761 ;------------------------------------------------------------------------------
    762 ;  stlport::valarray
    763 ;------------------------------------------------------------------------------
    764 
    765 stlp_std::valarray<*>|stlpx_std::valarray<*>|stlpmtx_std::valarray<*>|stlpxmtx_std::valarray<*>|stlpd_std::valarray<*>|stlpdx_std::valarray<*>|stlpdmtx_std::valarray<*>|stlpdxmtx_std::valarray<*>{
    766     preview
    767     (
    768 		#(
    769 			"[",
    770             $c._M_size ,
    771             "](",
    772             #array
    773             (
    774 				expr : 	($c._M_first)[$i],
    775 				size : 	$c._M_size
    776 			),
    777 			")"
    778 		)
    779 	)
    780 
    781 	children
    782 	(
    783 		#array
    784 		(
    785 			expr :	($c._M_first)[$i],
    786 			size :	$c._M_size
    787 		)
    788 	)
    789 }
    790 
    791 stlp_std::slice|stlpx_std::slice|stlpmtx_std::slice|stlpxmtx_std::slice|stlpd_std::slice|stlpdx_std::slice|stlpdmtx_std::slice|stlpdxmtx_std::slice{
    792 	preview
    793 	(
    794 		#(
    795 			"start = ",
    796 			$c._M_start,
    797 			", size = ",
    798 			$c._M_length,
    799 			", stride = ",
    800 			$c._M_stride
    801 		)
    802 	)
    803 	children
    804 	(
    805 		#(
    806 			[raw view] : [$c,!],
    807 			start : $c._M_start,
    808 			size : $c._M_length,
    809 			stride : $c._M_stride
    810 		)
    811 	)
    812 }
    813 
    814 stlp_std::gslice|stlpx_std::gslice|stlpmtx_std::gslice|stlpxmtx_std::gslice|stlpd_std::gslice|stlpdx_std::gslice|stlpdmtx_std::gslice|stlpdxmtx_std::gslice{
    815 	preview
    816 	(
    817 		#(
    818 			"start = ",
    819 			$c._M_start,
    820 			", sizes = ",
    821 			$c._M_lengths,
    822 			", strides = ",
    823 			$c._M_strides
    824 		)
    825 	)
    826 	children
    827 	(
    828 		#(
    829 			[raw view] : [$c,!],
    830 			start : $c._M_start,
    831 			sizes : $c._M_lengths,
    832 			strides : $c._M_strides
    833 		)
    834 	)
    835 }
    836