繁体   English   中英

如何直接调用类静态函数

[英]How to call class static function directly


假设我有这样的事情:

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(***); 但是如您所见,这太荒谬了。 更不用说该功能应该是用户干扰的一部分。 我不能指望代码的“用户”写出detail::HiddenClass<T>::function(***); 每当他/她想调用function(***);

我试过了:

template <typename T>
using detail::HiddenClass<T>::function;

和其他类似的方法,但我惨败了...

任何人都可以以某种方式提供帮助吗? 忠告

您可以提供一个宏,该宏将缩短调用语法:

#define MY_FUNCTION(Type, Arg) detail::HiddenClass<Type>::function(Arg)

然后,它在全局名称空间中的使用将大大缩短,并且无需using

HiddenClass<SomeType>& rc = MY_FUNCTION(SomeType, argTail);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM