5#include <Infinity/Types/Core/Data.hpp>
18 class ValueSerializer;
127 template<
typename... Args>
128 explicit Value(Args&&... args);
138 std::unique_ptr<Base> clone()
const override;
167 operator const T&()
const;
188 Value& operator=(
const T& rhs);
212 const T& get()
const;
224 void set(
const T& value);
256 virtual std::istream& legibleDataRead(std::istream& in)
override;
277 virtual std::ostream& legibleDataWrite(std::ostream& out)
const override;
303 friend class Infinity::IO::Data::ValueSerializer<T>;
354#include <Infinity/Types/Core/Value.inl>
Base class for complex data types with memory wrapping and property support.
Definition Data.hpp:49
Template wrapper for primitive types to integrate with the Infinity type system.
Definition Value.hpp:89
T & get()
Gets a mutable reference to the underlying value.
Definition Value.inl:60
std::ostream & operator<<(std::ostream &out, const Infinity::Types::Core::Base *&v)
Stream insertion operator for Base pointers.
Definition Base.hpp:197
std::istream & operator>>(std::istream &in, Infinity::Types::Core::Base *&v)
Stream extraction operator for Base pointers.
Definition Base.hpp:211
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71