Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将模板实现细节保持在内部_C++_Api_Linkage - Fatal编程技术网

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
}

我对未来的一个问题是,模块是否能为我解决这个问题。我希望如此,但我对最终设计的细节了解不够,无法得出结论。

问问自己,要隐藏的代码是否需要作为模板,为什么?我认为,在正确设计的代码中,您很少同时需要相同的抽象级别。@我想隐藏的代码不是模板,而是在模板中使用的,这意味着它需要在标题中。问问自己,您想隐藏的代码是否需要是模板,为什么?我认为,在正确设计的代码中,您很少同时需要相同的抽象级别。我想隐藏的代码不是模板,而是在模板中使用的,这意味着它需要在标题中。