Aunque he tenido que solucionar esto usando algo similar a la respuesta de Brad (además de usar DebugBreak() para romper directamente desde el código), algunas veces editar/recompilar/volver a ejecutar un código es demasiado lento o simplemente completamente imposible.
Afortunadamente, aparentemente es posible adentrarse en los miembros reales de la clase std :: string. Una forma es here mencionada - y aunque llama VS2010 específicamente, todavía puede acceder a caracteres individuales manualmente en versiones anteriores. Entonces, si está usando 2010, puede usar las funciones agradables strcmp()
y similares (more info)), pero si es como yo y todavía tiene 2008 o antes, puede encontrar una alternativa irregular, terrible pero funcional por establecer un punto de interrupción algo condicional como:..
strVar._Bx._Ptr[0] == 'a' && strVar._Bx._Ptr[1] == 'b' &&
strVar._Bx._Ptr[2] == 'c'
a romperse si los tres primeros caracteres de strVar son "abc" se puede seguir adelante con caracteres adicionales, por supuesto feo .. pero me ha ahorrado un poco de tiempo solo ahora.
No sé si esta es la intención, pero su código está roto. Func1 devuelve nulo, sin embargo, devuelve una cadena std ::. Func2 no se muestra, pero probablemente no devuelve una cadena std ::, además está utilizando el operador == (igual) en lugar de = (asignación). – falstro
mal ejemplo de mi parte, corregido, pero el objetivo era ilustrar el problema de obtener un punto de interrupción condicional con std :: string para trabajar – Eli