首页 > 解决方案 > 考虑到 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>在定义对象之前包含)。

标签: c++visual-studiocout

解决方案


您可以创建一个本地引用std::cout并为此添加一个手表。例如:

auto& mycout = std::cout;

推荐阅读