Thanks for now! Now I'll try to make a visualizer for this container and
see if that can be extended to other containers.
OK, here is a visualizer for multi_index_container > >.
I have not succeeded in expanding this to other index combinations, as
the visualizer does not seem to support "::type" to access typedefs.
When I want to access the "member" member of the container, I need to
explicitly specify the header_holder template instantiation, which seems
impossible, since it takes - as the first argument - an index_node type
structure, which seems to be declared as
boost::multi_index::detail::multi_index_node_type::type,
but this is not accessible in the visualizer (it does not like the
"::type" part). I'm afraid that there's no way around this, but I'll try
tomorrow.
Cheers,
Filip
;-------------------------------
; boost::multi_index_container
; template arguments are:
; item type, indexed_by stuff, allocator
;
; *** to get to the member field: A=((boost::multi_index::detail::header_holder >,boost::multi_index::multi_index_container<$T1,$T2,$T3> >*)&$c)->member
; *** to get to the next_ field: B=(boost::multi_index::detail::sequenced_index_node_impl*)(boost::multi_index::detail::sequenced_index_node_trampoline >*)(A)->next_
; *** to get to the node: C=(boost::multi_index::detail::index_node_base<$T1>*)(boost::multi_index::detail::sequenced_index_node >*)(boost::multi_index::detail::sequenced_index_node_trampoline >*)(B)
; *** (possibly unsafe?) to get to the value: ($T1&)(C)
;-------------------------------
boost::multi_index::multi_index_container<*,*,*>{
preview(#($c.node_count, " items"))
children(
#(
#list (
head : *((boost::multi_index::detail::sequenced_index_node_impl*)(boost::multi_index::detail::sequenced_index_node_trampoline >*)(((boost::multi_index::detail::header_holder >,boost::multi_index::multi_index_container<$T1,$T2,$T3> >*)&$c)->member)->next_),
size : $c.node_count,
next : next_
) : ($T1&)(boost::multi_index::detail::index_node_base<$T1>*)(boost::multi_index::detail::sequenced_index_node >*)(boost::multi_index::detail::sequenced_index_node_trampoline >*)(&$e),
item count: [$c.node_count],
original members: [$c,!]
)
)
}