Я пишу визуализаторы отладчика, используя файл .natvis в Microsoft Visual Studio 2015. В моем классе есть одна часть информации, которую я хотел бы получить, если это возможно. Мне интересно, какой синтаксис будет для этой переменной.Как Visual Studio 2015 Natvis отображает функцию статической переменной?
Вот упрощенная версия кода C++:
class MyClass
{
public:
MyClass() {}
int getAValue(size_t index)
{
static std::vector<int> numberVector;
if (numberVector.size() <= index)
{
addSomeNumbersToTheEnd(numberVector);
}
return numberVector[i];
}
}
В отладчике, я хотел бы видеть размер вектора, когда я наведите курсор мыши на экземпляр MyClass, но я не знаю, как ссылаться на нее (или если это возможно). Вот тип визуализатора, с <what goes here?>
в том месте, где у меня возникают проблемы:
<Type Name="MyClass">
<DisplayString>[$(Type)] staticVectorSize={<what goes here?>}</DisplayString>
</Type>
актуальная проблема является гораздо более сложным, не предусматривающее с любопытством повторяющегося рисунка шаблона для создания более объектов перечисления, поэтому, пожалуйста, не комментариев по поводу бесполезность этого несколько надуманного сценария.
Вы просите синтаксис ссылаться на статический объект с помощью области действия или как получить размер 'std :: vector', так как вы не можете вызвать член' size() '? – IInspectable
@IInspectable Я пытаюсь ссылаться на статический объект с областью функции. Я знаю, как получить размер. – Ben