类方法定义后的实现

Implementation after class method definition

本文关键字:实现 定义 类方法      更新时间:2023-10-16

这不是确切的情况,但它是如此相似,它完全适用于我的情况:

我有一个类

template<typename T, std::size_t Size>
class MahClass{
    public:
        template<std::size_t S = Size, typename = typename std::enable_if<...>::type>
        operator other_class<T, 1, Size>();
};
// Of course the `...` is substituted for my condition

,我想在类之外实现该转换操作符,但我不知道这需要的语法。

I have try:

template<typename T, std::size_t Size>
MahClass::operator<> other_class<T, 1, Size>(){...}

但我知道这是不正确的,是什么?

可以这样写:

template <typename T, std::size_t Size>
template <std::size_t S, typename> // <--
MahClass<T, Size>::operator other_class<T, 1, Size>()
//      ^^^^^^^^^
{
    // ...
}

你所需要做的就是声明类和方法模板参数列表。首先是类的,然后是方法的。这样的:

template<typename T, size_t Size>
template<std::size_t S, typename>
Yolo<T, Size>::operator other_class<T, 1, Size>() { }