多年来,我已经意识到我有自己的 header ,名为 algorithm.h
。
我总是把它包含在:
#include "algorithm.h"
相对于包含标准 header :
#include <algorithm>
我从来没有遇到过任何含糊不清的问题(甚至在 gcc 中也没有警告),但我想知道这是否只是运气。我喜欢标题的名称,我不想因为害怕而重命名它。
如果它不是未定义的行为,它是否被认为是不良风格?
最佳答案
不,这不是未定义的行为。除了作为标准库一部分的头文件之外,标准没有说明任何头文件。事实上,它甚至指定(C++11,第 16.2.3 节 [cpp.include])如果你要做类似的事情
#include "algorithm"
并且没有找到 header ,那么它做同样的事情
#include <algorithm>
是否有一个名为 algorithm.h
的 header 是糟糕的风格是值得商榷的。我会避免使用它,因为它可能会使 C++ 经验较少的程序员感到困惑。但是,如果您问我,像 utils/algorithm.h
这样的东西就可以了。
关于c++ - 拥有与标准 header 同名的自己的 header 是否是未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21636730/