Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 类方法定义后的实现_C++_Templates_C++11 - Fatal编程技术网

C++ 类方法定义后的实现

C++ 类方法定义后的实现,c++,templates,c++11,C++,Templates,C++11,事实并非如此,但它非常相似,完全适用于我的情况: 我有一节课 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>()

事实并非如此,但它非常相似,完全适用于我的情况:

我有一节课

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
模板
阶级{
公众:
模板
运算符other_class();
};
//当然,“…”代替了我的条件
我想在类之外实现这个转换操作符,但我不知道这需要什么语法

我试过:

template<typename T, std::size_t Size>
MahClass::operator<> other_class<T, 1, Size>(){...}
模板
MahClass::运算符other_class(){…}
但我知道这是不对的,
什么是?

可以用以下方式编写:

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

template/只需声明类和方法模板参数列表。首先是类,然后是方法。像这样:

template<typename T, size_t Size>
template<std::size_t S, typename>
Yolo<T, Size>::operator other_class<T, 1, Size>() { }
模板
模板
Yolo::运算符other_class(){}

想用-1来表示“Yolo”。等一下,让我给你换一个;)+1感谢我能接受同龄人的压力。事实上,我曾经有过这样的经历,现在它在抱怨不完整的类型:/我想现在它只是我自己的了error@CoffeeandCode它与
其他类相关吗,奇怪的是,它是第一个类:我在一个翻译单元中实现它,在这个单元中,它和其他类都被定义