将模板实施细节保留在内部

时间:2019-04-22 12:27:49

标签: c++ api linkage

在编写模板时,由于模板中的标头位于标头中,导致我的实现细节无法接触到用户,我遇到了一个问题。

在典型的.cpp文件中,可以通过使用内联命名空间或static关键字使用内部链接来完全隐藏实现细节。但是,由于标头不是独立的翻译单元,因此在标头中并没有多大作用。

我已经决定拥有一个实现名称空间,并且只是假设用户不会喜欢它。但是,我宁愿根本不给用户选择的选项。这可能吗?

我目前正在做什么:

//template_stuff.hpp

namespace impl {
  // stuff used in code below
}

namespace project {
 // templates that use entities in ::impl
}

我对未来的问题是模块是否可以为我解决此问题。我希望如此,但是我不了解有关最终设计的足够细节来得出结论。

0 个答案:

没有答案