gpt4 book ai didi

c++ - 不可能向外界隐藏模板的实现(用于保护知识产权)。我对吗?

转载 作者:行者123 更新时间:2023-11-30 00:47:44 27 4
gpt4 key购买 nike

我已阅读Why can templates only be implemented in the header file?Why can’t I separate the definition of my templates class from its declaration and put it inside a .cpp file?

如果我创建模板,那么除了它们的 h 文件之外,我还要提供对它们的 cpp 文件的访问,或者直接在头文件中写入定义.

因此,如果我想允许在其他应用程序中完全使用我的模板,那么我不能向外界隐藏它们的实现(为了保护知识产权)。我说得对吗?

最佳答案

总的来说你是对的......必须公开实现。

如果您的客户只需要为他们可以为您列出的一组有限的特定类型实例化它们,您可以为他们提供一个预编译的对象/库,其中只包含这些类型的实例化实现:参见 https://isocpp.org/wiki/faq/templates#separate-template-fn-defn-from-decl

混淆是另一种可能性——让他们看到代码,但让它变得困惑和不可维护。

如果这些选项都不适合,请考虑您是否可以提供一个模板化适配器,在用户提供的类型上创建一个运行时多态接口(interface),捕获您的算法所需的特定函数集。接受这些适配器作为您代码的前端。这确实有运行时成本。

关于c++ - 不可能向外界隐藏模板的实现(用于保护知识产权)。我对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34066545/

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