12 inline Ptr::Ptr (
const shared_ptr<IRep>& s)
16 inline Ptr::Ptr (shared_ptr<IRep>&& s) noexcept
17 : shared_ptr<IRep>{move (s)}
20 inline InputStream::Ptr<byte> Ptr::Transform (
const InputStream::Ptr<byte>& src)
23 return get ()->Transform (src);
25 inline BLOB Ptr::Transform (
const BLOB& src)
27 return Transform (src.As<InputStream::Ptr<byte>> ()).ReadAll ();
29 inline auto Ptr::GetStats () const -> optional<Stats>
32 return get ()->GetStats ();
#define RequireNotNull(p)
constexpr auto Transform(const optional< T > &o, F &&f)