让我们说我有这样的事情:
Header.h:
namespace detail {
template <typename T>
class HiddenClass {
/* Bunch of things... */
template <typename ...ArgList>
static HiddenClass<T> & function (const ArgList & ... argTail) {
// Do something...
}
}
}
我想打电话给detail::HiddenClass<T>::function(***);
,但你可以看到这很荒谬。更不用说这个功能应该是用户干扰的一部分。我不能指望&#34;用户&#34;每当他想要致电detail::HiddenClass<T>::function(***);
时发送function(***);
我的代码。{/ p>
我试过:
template <typename T>
using detail::HiddenClass<T>::function;
和其他方法一样,但我失败了......
任何人都能以某种方式提供帮助?建议
答案 0 :(得分:1)
您可以提供一个缩短调用语法的宏:
#define MY_FUNCTION(Type, Arg) detail::HiddenClass<Type>::function(Arg)
然后,它在全局命名空间中的使用会更短,而且不需要using
:
HiddenClass<SomeType>& rc = MY_FUNCTION(SomeType, argTail);