У меня есть класс, который хранит std::string*
в поле void* data
и хотел бы, чтобы отладчик VS2010 показывал строку в качестве предварительного просмотра (да, мне нужно, чтобы она была указателем void).
Когда я попытался получить доступ к полям std :: string в качестве отправной точки, я уже потерпел неудачу. Кажется, что следующее не работает, и Visual Studio просто показывает указатель data
,
preview (
#if ( $c.data != 0 ) (
(((std::basic_string<char>*)$c.data))->_Myres
) #else (
"")
)
Есть ли способ сделать это, или любое место, где можно найти подробные сообщения об ошибках для разбора autoexp.dat?
Попробуй заменить
std::basic_string<char>
с
std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Это работает для моего случая.
Если вы пишете строковую переменную в исходном коде как
std::string foo;
Затем вы увидите в окне локальных Visual Studio, как это:
name | value | type
foo | "" | std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Я думаю, что отладчик нуждается в этом конкретном типе для выражения приведения.