我试图为我的调试设置一个条件断点,但是VS总是返回这个错误:

如果操作符!=是为字符串定义的,怎么会这样呢?
变量误差为std::string
发布于 2022-06-01 17:29:44
有许多解决办法可以解决,例如,编写条件的一种更好的方法是:
!errors.empty()您还可以将size()与0进行比较,c_str()返回一个C字符串,您可以根据\0测试第一个元素,等等。
至于您的行不能工作的原因,最有可能的是条件调试器无法解决重载的操作符。也许对非隐式构建的string (即,error != string{})进行检查会更好,或者使用较新的VS版本,但实际上您可以看到这是多么浪费,而不仅仅是检查empty()函数的结果。
发布于 2022-06-01 17:17:34
在代码中临时添加类似的内容可能会做到这一点:
const auto s = string_i_want_to_test_to_see_if_its_empty.c_str ();然后,对于条件断点,表达式为:
s [0] != 0;将这个断点放在加一个后的线上。希望在Debug构建中,它不会被优化。如果是的话,我相信你会想办法绕过它的。
https://stackoverflow.com/questions/72464958
复制相似问题