为什么STL头文件没有扩展名?

问题描述:

我有这个基本的疑问。 STL标头没有.h扩展名。为什么STL头文件没有扩展名?

#include <vector> 
#include <map> 

这背后有什么具体原因吗?任何人都知道背后的历史,请分享。

编辑

@GMan发现Michael Burr's answer 它解决了这个问题。

+3

Duplicate:http://*.com/questions/441568/when-can-you-omit-the-file-extension-in-an-include-directive – GManNickG 2009-05-23 09:42:20

+0

谢谢@GMan。我在SO和谷歌搜索没有透露这一点。这是因为相关的问题有点不同。无论如何,我觉得迈克尔伯尔的回答解决了我的问题。 – 2009-05-23 09:50:00

  • #include指令不区分的文件类型(它只是一个华而不实的复制粘贴操作) - 没有自动添加的.h的正在发生的事情。而不h扩展
  • 有时向后兼容性头文件由供应商与h扩展提供具有相同名称设置
  • C++标准头文件添加

这一切都做与命名空间。用于C++标准报头中的对应的.h通常来#include正确C++标准头(无h扩展),然后发出一束使用(这样的)的:

FILE:iostream.h

#include <iostream> 

using std::iostream; 
using std::ostream; 
using std::ios; 
... 

而没有.h扩展名的头文件不会污染具有所有定义的类和类型的名称空间。