gpt4 book ai didi

c++ - 为什么 fmt 库不是仅 header ?

转载 作者:行者123 更新时间:2023-12-03 22:49:36 26 4
gpt4 key购买 nike

我知道可以使用 fmt仅 header 模式下的格式化库:
How to use fmt library in the header-only mode?
但是 - 为什么不只是标题,句号?也就是说,在 non-header-only 模式下使用它有什么好处?

最佳答案

主要原因是其他人已经正确指出的构建速度。例如,使用静态库(默认)进行编译比使用只有头文件的库快 2.75 倍:

#include <fmt/core.h>

int main() {
fmt::print("The answer is {}.", 42);
}
% time c++ -c test.cc -I include -std=c++11
c++ -c test.cc -I include -std=c++11 0.27s user 0.05s system 97% cpu 0.324 total

% time c++ -c test.cc -I include -std=c++11 -DFMT_HEADER_ONLY
c++ -c test.cc -I include -std=c++11 -DFMT_HEADER_ONLY 0.81s user 0.07s system 98% cpu 0.891 total
在仅 header 库中,实现细节和依赖项会泄漏到使用它们的每个翻译单元中。

关于c++ - 为什么 fmt 库不是仅 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67993134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com