对VS2010文本编辑器的好奇心
A curiosity about the VS2010 text editor
鉴于下面的A.h
文件(请注意,我故意没有在此文件中包含<iostream>
标头)。VS2010文本编辑器在std
下方显示一条红线,因为它无法识别此名称。
class A
{
public;
A() throw(std::bad_alloc);
};
但是,如果我在A.cpp
文件中包含<iostream>
标头,如下所示,则即使关闭A.cpp
,红线也会在A.h
文件中消失。这怎么可能?
#include <iostream>
#include "A.h"
A::A() { throw std::bad_alloc(); }
添加一个包含A.h
但不包含<iostream>
的新C++文件。std
下方的红色下划线将重新出现。
VS2010知道哪些文件包含该头文件。如果他们中的任何一个人不知道std
,它将指出问题。
但你是对的,如果你切换包含的顺序,以便项目不会编译,它仍然会删除红色下划线。
Visual Studio是为所有C++程序员编写的。这意味着它不能假设头文件总是包含它们所需的所有内容。在标头未明确包含的所有内容下放置红线对于那些在严格环境中工作的开发人员来说意味着很多误报,在严格环境中,标头按特定顺序包含,并具有依赖项。
因此,Visual Studio试图弄清楚你的意思,而不是假设你的标题能够独立存在。
这可能不是您的来源中的最佳实践,但他们必须考虑到这一点。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- 图标编辑器中的自定义颜色 (VS 2015)
- Qt的QFontMetrics::horizontalAdvance()缺少代码编辑器实现
- 如何在文本编辑器中处理 [-Wc++11-extensions]
- C++链接编辑器找不到函数声明(未定义的引用)
- 如何将按钮添加到节点的属性编辑器面板,该面板调用该节点内的方法?
- QT创建者(4.2.2)编辑器中的独特指针导航
- 带有cmake的qtCreator,编辑器中未正确解析__cplusplus值
- 检查重叠时,虚幻编辑器会崩溃
- 如何在Windows中将使用Qt制作的记事本设置为默认文本编辑器
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- UTF-16LE 编码问题与 Qt 文本编辑器用 C++ 编写
- Qt无法手动连接到任何插槽(UI编辑器)
- 编辑器(VS2019)拒绝了示例中的getline(stream,string)
- Qt委托编辑器弹出,没有父级
- 如果要调用多个成员函数,对象编辑器是否是一种好方法?
- 对VS2010文本编辑器的好奇心