假设我有一个头文件中声明两个模板功能:如何隐藏实施帮手模板?
template <typename T> void func1(const T& value);
template <typename T> void func2(const T& value);
并假设这些功能的实现(也一个头文件中,而不是在源文件中,因为它们是模板)使用了一些实现帮助函数,这也是一个模板:
template <typename T> void helper(const T& value) {
// ...
}
template <typename T> void func1(const T& value) {
// ...
helper(value);
}
template <typename T> void func2(const T& value) {
// ...
helper(value);
}
在包含头文件的任何源文件中,辅助函数都是可见的。我不希望这样,因为辅助函数只是一个实现细节。有没有办法隐藏帮助功能?
你是什么意思它是可见的?像你可以称之为? – atoMerz 2011-05-03 12:35:49
@AtoMerZ是的,你可以叫它;名称'helper'将在包含头文件的任何源文件中定义。它应该是隐藏的,所以只有'func1'和'func2'知道它存在,而其余的程序不会。 – Jesper 2011-05-03 12:38:49
@Jsper,我推荐John Dibling的方法。 – atoMerz 2011-05-03 12:40:49