class mrpt::containers::yaml_cref

Overview

Non-owning const reference into a yaml tree node.

Returned by const yaml::operator[]. Implicitly converts to yaml (deep copy). [New in MRPT 3.x]

#include <mrpt/containers/yaml.h>

class yaml_cref
{
public:
    // typedefs

    typedef yaml::node_t node_t;
    typedef yaml::scalar_t scalar_t;
    typedef yaml::sequence_t sequence_t;
    typedef yaml::map_t map_t;

    // construction

    yaml_cref();
    yaml_cref(const node_t& n);
    yaml_cref(const yaml_ref& r);

    // methods

    operator yaml () const;
    const node_t& node() const;
    bool isNullNode() const;
    bool isScalar() const;
    bool isMap() const;
    bool isSequence() const;
    std::string typeName() const;

    template <typename T>
    T as() const;

    size_t size() const;
    bool has(const std::string& key) const;

    template <typename MATRIX>
    void toMatrix(MATRIX& m) const;

    template <typename Scalar>
    std::vector<Scalar> toStdVector() const;

    const sequence_t& asSequence() const;
    const map_t& asMap() const;
    map_t asMapRange() const;
    const scalar_t& asScalar() const;
    yaml_cref operator () (int index) const;
    bool hasComment() const;
    bool hasComment(CommentPosition pos) const;
    const std::string& comment() const;
    const std::string& comment(CommentPosition pos) const;

    void printAsYAML(
        std::ostream& o,
        const YamlEmitOptions& eo = {}
        ) const;

    yaml_cref operator [] (const std::string& key) const;
    yaml_cref operator [] (const char* key) const;
    yaml_cref operator [] (int index) const;
    const std::type_info& scalarType() const;

    template <typename T>
    const T& asRef() const;

    operator bool () const;
    operator double () const;
    operator float () const;
    operator int8_t () const;
    operator uint8_t () const;
    operator int16_t () const;
    operator uint16_t () const;
    operator int32_t () const;
    operator uint32_t () const;
    operator int64_t () const;
    operator uint64_t () const;
    operator std::string () const;
};