Вчера я обнаружил MSVC's "Natvis" tool, что позволяет вам настроить отладчик для представления ваших типов интеллектуальным способом. Я быстро приступил к преодолению моей математической библиотеки.Формат плавающей запятой Natvis
Вот как мои 3 * 3 матрицы выглядит класс (неинициализированные данные):
Gorgeous, верно? Мой день не пожалел.
Однако, теперь мы получаем несколько более сложный случай:
Как вы можете видеть, цифры не совпадают. Я понял,
пути
противные глиняный получить отрицательные числа для выравнивания с положительными числами, но мой метод не имеет никакого способа приближения к этому (вот моему основному контуру):
<Type ...>
<DisplayString>...</DisplayString>
<Expand ...>
<Synthetic ...>
<DisplayString ...>...</DisplayString>
</Synthetic>
...
</Expand>
</Type>
Что происходит заключается в том, что количество цифр, напечатанных , варьируется от от номера до номера.
Поэтому мой вопрос: Могу ли я настроить Natvis для печати четко определенного количества цифр для отладки? Альтернативно, возможно, у вас есть умное обходное решение?
P.S .: Я буду счастлив, чтобы загрузить скрипт на Python, который генерирует «.natvis» файл для y'all, чтобы играть с вашими собственными типов, если я получу эту работу.
Имейте +1 для ответа даже на один. Я пробовал что-то вроде этого, но я не мог понять, как получить постоянное количество цифр для отображения. Проблема заключается в том, что, хотя вы можете указать цифры после десятичной точки, вы не можете указывать их раньше. Так, например, это ломается с последовательностью {0,123, 1,123, 10,123, 100,123 и т. д.}. – imallett
Конечно, вы могли бы использовать ту же технику для отображения ведущих нулей, по общему признанию выглядящих немного уродливыми. – ta55e