OpenCV 4.12.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

此函式允許使用者序列化其自定義型別。

注意
如果呼叫預設過載,則會引發異常。 使用者需要正確過載該函式才能使用它。

此結構體的文件由以下檔案生成