File tagged_object.hpp

Core API objects - implementation of tagged objects.

Typedefs

template<template<typename...> class base, typename derived>
using is_base_of_template = typename detail::is_base_of_template_impl<base, derived>::type
template<typename Base, typename Derived>
using enable_if_is_base_of = std::enable_if<std::is_base_of<Base, Derived>::value>

Functions

inline bool operator==(const ConstTaggedObject &a, std::nullptr_t) noexcept
inline bool operator==(std::nullptr_t, const ConstTaggedObject &a) noexcept
inline bool operator!=(const ConstTaggedObject &a, std::nullptr_t) noexcept
inline bool operator!=(std::nullptr_t, const ConstTaggedObject &a) noexcept
namespace slamcore

Helper conversion methods

slamcore::ImageFormat \(\leftrightarrow\) BytesPerChannel

Get information about the client library

Typedefs

template<template<typename...> class base, typename derived>
using is_base_of_template = typename detail::is_base_of_template_impl<base, derived>::type
template<typename Base, typename Derived>
using enable_if_is_base_of = std::enable_if<std::is_base_of<Base, Derived>::value>

Functions

inline bool operator==(const ConstTaggedObject &a, std::nullptr_t) noexcept
inline bool operator==(std::nullptr_t, const ConstTaggedObject &a) noexcept
inline bool operator!=(const ConstTaggedObject &a, std::nullptr_t) noexcept
inline bool operator!=(std::nullptr_t, const ConstTaggedObject &a) noexcept
class BadTaggedObjectAccess : public exception
#include <tagged_object.hpp>

Public Functions

inline BadTaggedObjectAccess(ObjectType actual, ObjectType wanted)
inline const char *what() const noexcept override

Private Members

std::string m_message

Private Static Functions

static inline std::string message(ObjectType actual, ObjectType wanted)
struct ConstTaggedObject
#include <tagged_object.hpp>

Subclassed by TaggedObject

Public Functions

inline explicit ConstTaggedObject()
inline explicit ConstTaggedObject(ObjectType type)
template<typename Type>
inline ConstTaggedObject(const std::shared_ptr<Type> &obj)
inline ObjectType type() const noexcept
template<typename Type>
inline std::shared_ptr<typename std::add_const<Type>::type> get() const
inline explicit operator bool() const noexcept
inline bool operator==(const ConstTaggedObject &other) const noexcept
inline bool operator!=(const ConstTaggedObject &other) const noexcept

Private Members

ObjectType m_type
std::shared_ptr<const void> m_obj
struct TaggedObject : public ConstTaggedObject
#include <tagged_object.hpp>

Public Functions

inline explicit TaggedObject()
inline explicit TaggedObject(ObjectType type)
template<typename Type, typename std::enable_if<!std::is_const<Type>::value>::type* = nullptr>
inline TaggedObject(const std::shared_ptr<Type> &obj)
template<typename Type>
inline std::shared_ptr<Type> get() const
template<typename Type, class Enable = void>
struct TypeTraits
#include <tagged_object.hpp>
namespace detail

Slamcore API internal namespace