Развернуть элементы шаблонного типа на первом уровне расширения визуализатора natvis

Визуализатор по умолчанию для shared_ptr в VS2013 есть это (много, много чего урезано!):

<Type Name="CA::shared_ptr&lt;*&gt;">
  <Expand>
    <Item Condition="_Ptr != 0" Name="[ptr]">_Ptr</Item>
  </Expand>
</Type>

Это означает, что в отладчике вы должны расширить shared_ptr затем расширить [ptr] 'member', чтобы увидеть членов объекта, на который указывает указатель. Иерархия для указателя на int будет выглядеть так (без учета необработанных представлений, распределителей и удалений):

myIntPtr
  [ptr]
    42

Я хотел бы написать замену, которая помещает всех членов объекта, на который указывает указатель, на один уровень вверх, чтобы сидеть на уровне в иерархии, где [ptr] в данный момент сидит. Вместо этого это будет выглядеть так:

myIntPtr
  42

Есть ли какой-то синтаксис, который позволит это? Должен заметить, я ищу общий синтаксис для поддержки отображения всех членов параметра шаблона, а не тот, который будет работать только с shared_ptr - shared_ptr это просто удобный пример.

1 ответ

Решение

Я думаю, что это то, для чего хорош тег "ExpandedItem". Они даже приводят пример, похожий на ваш. Смотрите здесь: http://msdn.microsoft.com/en-us/library/jj620914.aspx

Другие вопросы по тегам