OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
未找到匹配项
cv::gapi::s11n::detail::S11N< T > 结构模板参考

此结构允许为自定义类型实现序列化例程。更多…

#include <opencv2/gapi/s11n/base.hpp>

cv::gapi::s11n::detail::S11N< T > 的协作图

静态公共成员函数

static T deserialize (IIStream &)
 此函数允许用户反序列化其自定义类型。
 
static void serialize (IOStream &, const T &)
 此函数允许用户序列化其自定义类型。
 

详细描述

template<typename T>
struct cv::gapi::s11n::detail::S11N< T >

此结构允许为自定义类型实现序列化例程。

自定义类型的默认 S11N 未实现。

注意
当为使用您的类型的 S11N 提供重载实现时,不要从 NotImplemented 结构继承。
有很多针对基本类型和 OpenCV/G-API 类型的重载 >> 和 << 运算符,这些运算符可以在序列化自定义类型时使用。

使用方法示例

namespace cv {
namespace gapi {
namespace s11n {
namespace detail {
template<> struct S11N<SimpleCustomType> {
static void serialize(IOStream &os, const SimpleCustomType &p) {
os << p.val;
}
static SimpleCustomType deserialize(IIStream &is) {
SimpleCustomType p;
is >> p.val;
return p;
}
};
template<> struct S11N<SimpleCustomType2> {
static void serialize(IOStream &os, const SimpleCustomType2 &p) {
os << p.val << p.name << p.vec << p.mmap;
}
static SimpleCustomType2 deserialize(IIStream &is) {
SimpleCustomType2 p;
is >> p.val >> p.name >> p.vec >> p.mmap;
return p;
}
};
} // namespace detail
} // namespace s11n
} // namespace gapi
} // namespace cv

成员函数文档

◆ deserialize()

template<typename T >
static T cv::gapi::s11n::detail::S11N< T >::deserialize ( IIStream & )
inlinestatic

此函数允许用户反序列化其自定义类型。

注意
如果调用默认重载,则会抛出异常。用户需要正确重载该函数才能使用它。

◆ serialize()

template<typename T >
static void cv::gapi::s11n::detail::S11N< T >::serialize ( IOStream & ,
const T &  )
inlinestatic

此函数允许用户序列化其自定义类型。

注意
如果调用默认重载,则会抛出异常。用户需要正确重载该函数才能使用它。

此结构的文档是从以下文件生成的