c++ - 考虑到 std::cout 是一个已初始化的对象,为什么 Visual Studio 在调试器中设置 Watch 时“无法识别其标识符”?
问题描述
考虑到这std::cout
是一个已初始化的对象,为什么 Visual Studio在调试器中设置 Watch 时“无法识别其标识符” ?
如何在内存中查看此对象?
将std::cout
和设置cout
为监视变量会返回:
[标识符“std::cout”未定义]
[标识符“cout”未定义]
分别。
#include <iostream>
int main()
{
std::cout << "Usage of std::cout\n";
// breakpoint
return 0;
}
根据https://en.cppreference.com/w/cpp/io/cout关于 cout 的主题:
这些对象保证在第一次
std::ios_base::Init
构造类型对象期间或之前被初始化,并且可用于具有有序初始化的静态对象的构造函数和析构函数(只要<iostream>
在定义对象之前包含)。
解决方案
您可以创建一个本地引用std::cout
并为此添加一个手表。例如:
auto& mycout = std::cout;
推荐阅读
- amazon-dynamodb - 有没有办法通过在主键上应用过滤条件来从 dynamodb 表中检索项目
- css - 在滚动时更改 CSS 并影响可访问性
- python - 用户输出分析器将以元音形式打印的程序
- yii2 - Yii2 在选择 > 选项列表中添加额外的属性
- python - 使用调色板进行散点图时显示正确的图例
- symfony - 为编辑表单自定义 symfony 数据原型
- spring-integration - 将原始文件添加为流中的标头
- ios - 自定义 UIDocumentInteractionController
- c# - 在c#中方法重载的情况下符号表如何
- php - 在触摸时触发 Laravel 事件