Как улучшить отладочную информацию, показанную для класса C ++?В частности, давайте посмотрим на класс vector
: его представление верхнего уровня содержит только его переменную размера (# 1 на изображении) , а расширенное представление показывает его элементы один за другим в качестве параметров, если можно так выразиться (# 2 на изображении) .
Как контролировать то, что отображается в сводке верхнего уровня, и что показывается на подуровне?Существуют ли определенные шаблоны проектирования, которые достигают этого?
Редактировать: Есть ли кроссплатформенное решение?Тот, который работает для CLion под Linux, VS на Win, CMake в целом и т. Д.
Небольшой рабочий пример, который копирует векторное поведение, был бы невероятно полезен (если это даже возможно без необходимости реплицироватьсложный характер фактического векторного класса).
Скажем, я пытаюсь написать класс следующим образом
template <class T> class Vector
{
public:
Vector(size_t size) : size(size)
{
buffer = new T[size];
for (size_t i = 0; i < size; ++i)
buffer[i] = T();
}
~Vector()
{
if (buffer != NULL)
delete[]buffer;
}
T operator[](const size_t& idx) { /* ... */ }
private:
size_t size;
T* buffer;
};
тогда отладчик только показывает мне это (как и следовало ожидать, глядя на структуру класса):