【问题标题】:boost source code提升源代码
【发布时间】:2009-01-13 04:54:13
【问题描述】:

有没有办法获取 boost 库的源代码?我浏览了 SVN 存储库,只能看到 HPP 文件。那里没有可用的源文件。我想查看“shared_ptr”的源代码。谁能指导我?

我还可以从哪里下载BCP 实用程序?

【问题讨论】:

    标签: c++ boost


    【解决方案1】:

    绝大多数源代码完全在头文件中——它必须是模板才能工作。您不能将模板代码放在源文件中并单独编译。

    【讨论】:

    • 我从 Bruce Eckel (Thinking in C++) 中读到,将所有代码放在头文件中性能较差,这是一种不好的做法。但由于 boost 正在使用它,我很困惑。这是一种公认​​的做法吗?
    • Boost 由于大量使用模板而不得不这样做。它确实增加了编译时间(有时显着),但没有真正的解决方法。它还使开始使用 boost 变得更容易,因为没有库可以随您的应用程序分发。
    • 我记得,代码都在模板中,在模板在您的客户端代码中展开之前没有具体的实现。代码是实例化的模板,而不是“标题”。
    • 为了让模板工作,您通常必须将所有代码放在标题中。如需更详尽的解释,请参阅 C++ 常见问题解答:parashift.com/c++-faq-lite/templates.html#faq-35.12
    • 这不是真的。大部分代码都在头文件中。有些必须先编译。
    【解决方案2】:

    所有源文件 (.cpp) 都在 /boost/libs/

    大多数 boost 库完全由标头组成。例外情况是:

    • 测试
    • 线程
    • 序列化
    • 信号
    • 蟒蛇
    • 正则表达式
    • 数学
    • 图表
    • iostreams
    • 文件系统
    • 日期时间

    【讨论】:

      【解决方案3】:

      正如亚当所说,它几乎都在标题中。有些,如 boost::regex,确实需要构建源文件,但这些也包含在主下载中。

      BCP 实用程序包含在主下载中。

      【讨论】:

        【解决方案4】:

        boost 的大部分内容在标题中,但有些部分也在 cpp-files 中。 doc index page 列出了哪些库是标头/不是标头。可以下载 boost 源码herebcp 的源代码也可以在存档中找到,位于 tools/bcp 子目录中。

        【讨论】:

          【解决方案5】:

          Boost 库具有以下核心目录结构:

          -> boost : 包含头文件。由于 Boost 的大部分内容是在 headers 中实现的,因此这也包含很多实现,通常在详细的子目录中。

          -> lib :包含预编译的源代码、测试套件、示例,有时还包含库的文档。

          -> doc : 包含一些文档。

          -> tools : 包含 Boost.Jam、Boost.Build、独立 Wave 和 BCP 等工具。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-08-02
            • 2015-10-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多