Tôi đang viết trình hiển thị trình gỡ lỗi bằng tệp .natvis trong Microsoft Visual Studio 2015. Có một phần thông tin trong lớp học của tôi mà tôi muốn nhận được nếu có thể. Tôi tự hỏi cú pháp sẽ nhận được gì ở biến đó.Làm thế nào Visual Studio 2015 Natvis có thể hiển thị một biến tĩnh chức năng?
Đây là một phiên bản đơn giản của ++ mã C:
class MyClass
{
public:
MyClass() {}
int getAValue(size_t index)
{
static std::vector<int> numberVector;
if (numberVector.size() <= index)
{
addSomeNumbersToTheEnd(numberVector);
}
return numberVector[i];
}
}
Trong debugger, tôi muốn để xem kích thước của vector khi tôi di chuột qua một thể hiện của MyClass, nhưng tôi không biết làm thế nào để tham khảo nó (hoặc nếu điều đó thậm chí có thể). Dưới đây là Type visualizer, với <what goes here?>
tại nơi tôi đang gặp rắc rối:
<Type Name="MyClass">
<DisplayString>[$(Type)] staticVectorSize={<what goes here?>}</DisplayString>
</Type>
Vấn đề thực tế là phức tạp hơn nhiều, bao gồm các mẫu hoa văn một cách tò mò định kỳ để tạo các đối tượng liệt kê tốt hơn, vì vậy xin đừng bình luận về sự vô dụng của kịch bản có phần hơi giả tạo này.
Bạn có yêu cầu cú pháp tham chiếu đối tượng tĩnh với phạm vi chức năng hay cách lấy kích thước 'std :: vector', vì bạn không thể gọi thành viên' size() '? – IInspectable
@IInspectable Tôi đang cố gắng tham chiếu một đối tượng tĩnh với phạm vi chức năng. Tôi biết làm thế nào để có được kích thước. – Ben