C++库设计之头文件目录结构

从一个简单的开源库开始了解下设计C++库时头文件的目录结构,之所以讨论这个问题是想把代码在设计之初就能够有清晰的目录结构,另一个方面能够便于用户的调用,而不需要对我们所设计的库添加各种头文件的引用。

stxxl也许大多数熟悉C++编程的人并不熟悉,但是标准库STL确是大多数C++开发者熟知的,尤其是对于标准库中的std::vector,因为它实在是太好用了。但是这么好用的东西也是有它自身的限制的,这是因为标准库只能操作内存中的数据,想象一种情形,你想要使用std::vector,但是又不在内存上操作数据,这时stxxl::vector可以帮助到你。

先来看看stxxl  include目录下的结构吧,下面是一张截图

在include目录下只有一个头文件,这里面包含了如下的内容

#ifndef STXXL_MAIN_HEADER
#define STXXL_MAIN_HEADER

#include <stxxl/bits/common/utils.h>

#include <stxxl/io>

#include <stxxl/mng>

#include <stxxl/vector>
#include <stxxl/stack>
#include <stxxl/priority_queue>
#if ! defined(__GNUG__) || ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 30400)
// map does not work with g++ 3.3
#include <stxxl/map>
#endif
#include <stxxl/unordered_map>
#include <stxxl/queue>
#include <stxxl/deque>

#include <stxxl/algorithm>

#include <stxxl/stream>

#include <stxxl/random>

#include <stxxl/timer>

#endif // STXXL_MAIN_HEADER

值得注意的是,stxxl目录下面io, stream, timer, stack, map之类的都是文件名而不是文件夹,它们是没有后缀的,其实标准库中也是这么去做的,比如常用的

#include <iostream>

这里iostream也不是文件夹而是文件名,打开这样的文件,里面的内容通常只有一句代码

#include <stxxl/bits/io/io.h>

在stxxl目录下的这些文件是进一步对stxxl/bits目录下头文件引用的进一步整理

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CppBlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值