struct cvflann::anyimpl::base_any_policy

#include <any.h>

struct base_any_policy
{
    // methods

    virtual
    void
    clone(
        void*const* src,
        void** dest
        ) = 0;

    virtual
    void
    copy_from_value(
        void const* src,
        void** dest
        ) = 0;

    virtual
    ::size_t
    get_size() = 0;

    virtual
    void*
    get_value(void** src) = 0;

    virtual
    const void*
    get_value(void*const* src) = 0;

    virtual
    void
    move(
        void*const* src,
        void** dest
        ) = 0;

    virtual
    void
    print(
        std::ostream& out,
        void*const* src
        ) = 0;

    virtual
    void
    static_delete(void** x) = 0;

    virtual
    const std::type_info&
    type() = 0;
};

// direct descendants

template <typename T>
struct typed_base_any_policy;