如何在C ++中用模板编写的库的闭源

时间:2011-03-06 03:48:18

标签: c++ templates

在阅读本文Storing C++ template function definitions in a .CPP file之后,我知道使用模板的类的定义必须以某种方式写在头文件中。因此,客户端用户可以通过导入头文件来使用它。这是不是意味着向用户显示完整的实施细节?这是否也意味着用模板编写的库必须以开源方式提供?

感谢您帮助澄清它。

3 个答案:

答案 0 :(得分:7)

  1. 将显示模板实施的详细信息。但是,如果您知道哪些参数是必需的,则可以提供显式模板实例化。但要成为通用解决方案,您必须提供实现,以便它可以与其他参数一起使用。

  2. 不,您不必将其作为开源发布。仅仅因为有人可以看到代码,并不意味着它必须是开源的。您可以随意许可它,购买者必须遵守这些规则。毕竟,仅仅因为我们可以看到小说的整个文本并不意味着我们可以随心所欲地做任何事情。

答案 1 :(得分:4)

是的,基于模板的C ++库公开了它们的实现。提供源与“开源”不是一回事。 Microsoft向MFC提供源代码,但它不是开源的。许可证有所不同。

答案 2 :(得分:2)

这确实意味着基于模板的库通常具有供应源代码,是的。这与通常使用“开源”的方式并不特别相似。然后,大多数好的库在任何情况下都提供源代码。