Poco::Dynamic

template < typename T >

class VarHolderImpl

Library: Foundation
Package: Dynamic
Header: Poco/Dynamic/VarHolder.h

Description

Template based implementation of a VarHolder. This class provides type storage for user-defined types that do not have VarHolderImpl specialization.

The actual conversion work happens in the template specializations of this class.

VarHolderImpl throws following exceptions: BadCastException (if the requested conversion is not implemented) RangeException (if an attempt is made to assign a numeric value outside of the target min/max limits SyntaxException (if an attempt is made to convert a string containing non-numeric characters to number)

In order to support efficient direct extraction of the held value, all specializations must additionally implement a public member function:

const T& value() const

returning a const reference to the actual stored value.

Inheritance

Direct Base Classes: VarHolder

All Base Classes: VarHolder

Member Summary

Member Functions: clone, convert, isArray, isBoolean, isInteger, isNumeric, isSigned, isString, isStruct, operator =, type, value

Inherited Functions: clone, cloneHolder, convert, convertSignedFloatToUnsigned, convertSignedToUnsigned, convertToFP, convertToSigned, convertToSmaller, convertToSmallerUnsigned, convertToUnsigned, convertUnsignedToSigned, isArray, isBoolean, isDate, isDateTime, isDeque, isInteger, isList, isNumeric, isOrdered, isSigned, isString, isStruct, isTime, isUUID, isVector, size, type

Constructors

VarHolderImpl

VarHolderImpl() = delete;

VarHolderImpl inline

VarHolderImpl(
    const T & val
);

VarHolderImpl

VarHolderImpl(
    const VarHolderImpl & param248
) = delete;

Destructor

~VarHolderImpl virtual

~VarHolderImpl() override = default;

Member Functions

clone virtual inline

VarHolder * clone(
    Placeholder < VarHolder > * pVarHolder = nullptr
) const override;

convert virtual inline

void convert(
    Int8 & val
) const override;

convert virtual inline

void convert(
    Int16 & val
) const override;

convert virtual inline

void convert(
    Int32 & val
) const override;

convert virtual inline

void convert(
    Int64 & val
) const override;

convert virtual inline

void convert(
    UInt8 & val
) const override;

convert virtual inline

void convert(
    UInt16 & val
) const override;

convert virtual inline

void convert(
    UInt32 & val
) const override;

convert virtual inline

void convert(
    UInt64 & val
) const override;

convert virtual inline

void convert(
    long long & val
) const override;

convert virtual inline

void convert(
    unsigned long long & val
) const override;

convert virtual inline

void convert(
    bool & val
) const override;

convert virtual inline

void convert(
    float & val
) const override;

convert virtual inline

void convert(
    double & val
) const override;

convert virtual inline

void convert(
    char & val
) const override;

convert virtual inline

void convert(
    std::string & val
) const override;

convert virtual inline

void convert(
    Poco::UTF16String & val
) const override;

isArray virtual inline

bool isArray() const override;

isBoolean virtual inline

bool isBoolean() const override;

isInteger virtual inline

bool isInteger() const override;

isNumeric virtual inline

bool isNumeric() const override;

isSigned virtual inline

bool isSigned() const override;

isString virtual inline

bool isString() const override;

isStruct virtual inline

bool isStruct() const override;

operator =

VarHolderImpl & operator = (
    const VarHolderImpl & param249
) = delete;

type virtual inline

const std::type_info & type() const override;

value inline

const T & value() const;