16 #include <string_view> 40 virtual explicit operator int32_t()
const = 0;
41 virtual explicit operator uint32_t()
const = 0;
42 virtual explicit operator int64_t()
const = 0;
43 virtual explicit operator uint64_t()
const = 0;
44 virtual explicit operator float()
const = 0;
45 virtual explicit operator double()
const = 0;
46 virtual explicit operator bool()
const = 0;
55 virtual std::ostream&
writeToStream(std::ostream& out)
const = 0;
86 pimpl->setParent(
this);
97 return (*pimpl).operator=(
val);
101 return (*pimpl).operator=(
val);
105 return (*pimpl).operator=(
val);
109 return (*pimpl).operator=(
val);
113 return (*pimpl).operator=(
val);
117 return (*pimpl).operator=(
val);
121 return (*pimpl).operator=(
val);
125 return (*pimpl).operator=(
val);
133 explicit operator float()
const {
return static_cast<float>(*pimpl); }
134 explicit operator double()
const {
return static_cast<double>(*pimpl); }
135 explicit operator bool()
const {
return static_cast<bool>(*pimpl); }
143 return (*pimpl).operator=(
obj);
148 return (*pimpl).operator[](
val);
153 return (*pimpl).operator[](
val);
161 obj.serializeTo(out);
166 obj.serializeFrom(
in);
170 std::unique_ptr<CSchemeArchiveBase_impl>
pimpl;
178 a.pimpl->writeToStream(out);
183 a.pimpl->readFromStream(
in);
virtual ~CSchemeArchiveBase_impl()=default
CSchemeArchiveBase & operator=(const int32_t val)
CSchemeArchiveBase & operator=(const float val)
virtual std::ostream & writeToStream(std::ostream &out) const =0
Writes the scheme to a plain-text output.
Pure virtual class carrying the implementation of CSchemeArchiveBase as per the PIMPL idiom...
friend std::ostream & operator<<(std::ostream &out, const CSchemeArchiveBase &a)
static void ReadObject(CSchemeArchiveBase &out, const CSerializable &obj)
spimpl::impl_ptr< T > pimpl
CSchemeArchiveBase & operator=(const std::string val)
void WriteObject(CSchemeArchiveBase &in, CSerializable &obj)
virtual ~CSchemeArchiveBase()=default
GLsizei GLsizei GLuint * obj
CSchemeArchiveBase & operator=(const uint32_t val)
CSchemeArchiveBase & operator=(const mrpt::serialization::CSerializable &obj)
Virtual base class for "schematic archives" (JSON, XML,...)
virtual CSchemeArchiveBase operator[](size_t)=0
virtual std::istream & readFromStream(std::istream &in)=0
Reads the scheme from a plain-text input.
friend std::istream & operator>>(std::istream &in, CSchemeArchiveBase &a)
GLsizei const GLchar ** string
CSchemeArchiveBase(CSchemeArchiveBase &&o)
CSchemeArchiveBase & operator=(const std::nullptr_t val)
CSchemeArchiveBase * m_parent
CSchemeArchiveBase & operator=(const int64_t val)
CArchive & operator>>(CArchive &s, mrpt::aligned_std_vector< float > &a)
void setParent(CSchemeArchiveBase *parent)
unsigned __int64 uint64_t
CSchemeArchiveBase(std::unique_ptr< CSchemeArchiveBase_impl > ptr)
CSchemeArchiveBase operator[](std::string val)
CSchemeArchiveBase & operator=(bool val)
void readTo(CSerializable &obj)
CArchive & operator<<(CArchive &s, const mrpt::aligned_std_vector< float > &a)
virtual void readTo(CSerializable &obj)=0
Reads object from the archive.
The virtual base class which provides a unified interface for all persistent objects in MRPT...
CSchemeArchiveBase operator[](size_t val)
static void WriteObject(CSchemeArchiveBase &in, CSerializable &obj)
CSchemeArchiveBase & operator=(const double val)
unsigned __int32 uint32_t
std::unique_ptr< CSchemeArchiveBase_impl > pimpl
GLubyte GLubyte GLubyte a
virtual CSchemeArchiveBase & operator=(const int32_t)=0
CSchemeArchiveBase & operator=(const uint64_t val)
void ReadObject(CSchemeArchiveBase &out, const CSerializable &obj)