# 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, type, value

Inherited Functions: clone, cloneHolder, convert, convertSignedFloatToUnsigned, convertSignedToUnsigned, convertToSmaller, convertToSmallerUnsigned, convertUnsignedToSigned, isArray, isBoolean, isDeque, isInteger, isList, isNumeric, isSigned, isString, isStruct, isVector, size, type

## Constructors

### VarHolderImpl

VarHolderImpl(
const T & val
);

## Destructor

### ~VarHolderImpl

~VarHolderImpl();

## Member Functions

### clone

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

See also: Poco::Dynamic::VarHolder::clone()

### type

const std::type_info & type() const;

See also: Poco::Dynamic::VarHolder::type()

### value

const T & value() const;