You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发C++库时,内部头文件应使用引号还是尖括号包含?

C++库内部头文件引用方式的选择

我正在开发一个名为foo的C++库:

  • 安装到/some/where路径时,头文件会存放在/some/where/include/foo目录下
  • 要求用户编译时添加-I/some/where/include参数
  • 库内包含的头文件有foo/first.hpp、foo/second.hpp和foo/bar/third.hpp,安装前后它们的相对路径保持不变

现在我有个疑问:在这些头文件中引用同库的其他头文件时,应该采用哪种方式?

可选方式

  1. 始终使用尖括号,和用户的使用方式保持一致:
#include <foo/second.hpp>
#include <foo/bar/third.hpp>
  1. 完全不使用尖括号,只使用引号形式:
    同目录下的引用示例:
#include "second.hpp"
#include "bar/third.hpp"

跨目录相对路径引用示例:

#include "../first.hpp"
  1. 部分场景用尖括号,其他场景用引号

我的困惑

我注意到Boost库采用的是第一种方式,个人也倾向于此——这种方式能明确表明这些头文件属于foo库。但我看到有个针对C语言的问题,其采纳答案建议使用第二种方式。

另外,C++核心准则SF.12的表述比较模糊:

对于与当前文件存在相对路径(同一组件或项目内)的头文件,优先使用引号形式包含,其他情况使用尖括号形式
库开发者应将头文件放在专属文件夹中,让客户端通过#include <some_library/common.h>来包含

库本身也是自身头文件的使用者,既然头文件已经放在专属文件夹里,或许应该遵循后者的规则?

内容的提问来源于stack exchange,提问作者einpoklum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:42:05