C++ 将模板实现细节保持在内部
在编写模板时,我遇到了一个问题,即试图让用户无法接触到我的实现细节,因为它们驻留在标题中 在典型的C++ 将模板实现细节保持在内部,c++,api,linkage,C++,Api,Linkage,在编写模板时,我遇到了一个问题,即试图让用户无法接触到我的实现细节,因为它们驻留在标题中 在典型的.cpp文件中,通过内联名称空间或静态关键字使用内部链接,可以完全隐藏实现细节。但是,这在标题中没有多大作用,因为它们不是独立的翻译单元 我所确定的是有一个实现名称空间,并且假设用户不会弄乱它。但是,我不想让用户看到它。这可能吗 我目前的工作: //template_stuff.hpp namespace impl { // stuff used in code below } namesp
.cpp
文件中,通过内联名称空间或静态
关键字使用内部链接,可以完全隐藏实现细节。但是,这在标题中没有多大作用,因为它们不是独立的翻译单元
我所确定的是有一个实现名称空间,并且假设用户不会弄乱它。但是,我不想让用户看到它。这可能吗
我目前的工作:
//template_stuff.hpp
namespace impl {
// stuff used in code below
}
namespace project {
// templates that use entities in ::impl
}
我对未来的一个问题是,模块是否能为我解决这个问题。我希望如此,但我对最终设计的细节了解不够,无法得出结论。问问自己,要隐藏的代码是否需要作为模板,为什么?我认为,在正确设计的代码中,您很少同时需要相同的抽象级别。@我想隐藏的代码不是模板,而是在模板中使用的,这意味着它需要在标题中。问问自己,您想隐藏的代码是否需要是模板,为什么?我认为,在正确设计的代码中,您很少同时需要相同的抽象级别。我想隐藏的代码不是模板,而是在模板中使用的,这意味着它需要在标题中。