类方法定义后的实现
Implementation after class method definition
这不是确切的情况,但它是如此相似,它完全适用于我的情况:
我有一个类
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>() { }
相关文章:
- 如何正确实现和访问运算符的各种自定义枚举器
- 根据C++标准的定义实现"is_similar"类型特征
- 如何实现自定义匹配器以检查 Catch2 中的对象相等性
- 它是否定义了哪些算法可以接受可变 lambda 的实现?
- C++:实现定义了可接受的物理源文件字符
- 未定义与未指定与实现定义的行为
- 如何从uint8_t的缓冲区读取带符号整数,而不调用未定义或实现定义的行为
- 在哪里查找 GCC 实现定义行为的实现?
- 高效的无符号到签名转换,避免实现定义的行为
- C++中是否有实现定义行为的完整列表
- char的实现定义是否会影响std::string
- 强制实现/定义函数声明
- 实现定义为使用保留向量而不调整其大小
- 实现定义的文件流同步 - 原因
- 为什么 1 << 31 在 C++14 中更改为实现定义?
- 是实现定义的unsigned short + int类型
- 实现定义的行为和将unicode读取到缓冲区
- 为什么name()函数返回的字符串是实现定义的
- main()的链接是由实现定义的,这意味着什么
- Visual Studio 2010 - 为什么字符串文本比较是C++中实现定义的行为