我正在尝试编写一个库,其中包含一些模板函数,其中一些是辅助函数,所以我不希望我的用户可以访问它们。一些基本代码可能如下:
//mylib.h
namespace myfuncs
{
template<class T>
void helper (T input, int extrainformation)
{
//do some usefull things
}
template<class T>
void dostuff(T input)
{
int someinfo=4;
helper(input, someinfo);
}
}
有没有办法隐藏帮助程序,使库的用户无法直接调用它?我曾认为未命名命名空间可以完成这项工作,但由于我正在使用模板,因此无法在头文件和实现文件之间拆分函数声明和主体。将未命名命名空间放在头文件中没有用处且风格不佳。我能想到的唯一方法是创建一个
mylib
类并将函数封装为私有/公共静态函数。非常感谢任何更好的解决方案。
namespace
改为class
,并使所有函数都是static
的,然后将您的helper
放在private
中。 - neuront