OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::gapi::s11n::detail::S11N< T > 構造体テンプレート

この構造体により、カスタム型のシリアライズ処理を実装できる。 続きを読む...

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

Collaboration diagram for 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

この関数を使うと、ユーザは独自の型をシリアライズできる。

覚え書き
デフォルトのオーバーロードは呼び出されると例外を投げる。使用するにはユーザがこの関数を適切にオーバーロードする必要がある。

この構造体詳解は次のファイルから抽出されました: