Glib::Value< T > Class Template Reference
Generic Values

Generic value implementation for custom types. More...

`#include <glibmm/value_custom.h>`

Inheritance diagram for Glib::Value< T >:
[legend]

## Public Types

using | CppType = T
using | CType = T*

## Public Member Functions

void | set (const CppType& data)
CppType | get () const
Public Member Functions inherited from Glib::ValueBase
| ValueBase ()
| Initializes the GValue, but without a type. More...
| ValueBase (const ValueBase& other)
ValueBase& | operator= (const ValueBase& other)
| ~ValueBase () noexcept
void | init (GType type)
| Setup the GValue for storing the specified type. More...
void | init (const GValue* value)
| Setup the GValue storing the type and value of the specified value. More...
void | reset ()
| Reset contents to the default value of its type. More...
GValue* | gobj ()
const GValue* | gobj () const

## Static Public Member Functions

static GType | value_type ()
Static Public Member Functions inherited from Glib::ValueBase_Boxed
static GType | value_type ()

## Additional Inherited Members

Protected Member Functions inherited from Glib::ValueBase_Boxed
void | set_boxed (const void* data)
void* | get_boxed () const
Protected Attributes inherited from Glib::ValueBase
GValue | gobject_

## Detailed Description

### template<class T>
class Glib::Value< T >

Generic value implementation for custom types.

Any type to be used with this template must implement:

- default constructor
- copy constructor
- assignment operator
- destructor

Compiler-generated implementations are OK, provided they do the right thing for the type. In other words, any type that works with `std::vector` will work with Glib::Value<>.

Note
  None of the operations listed above are allowed to throw. If you cannot ensure that no exceptions will be thrown, consider using either a normal pointer or a smart pointer to hold your objects indirectly.

## Member Typedef Documentation

template <class T >

using Glib::Value< T >::CppType = T

template <class T >

using Glib::Value< T >::CType = T*

## Member Function Documentation

template <class T >

CppType Glib::Value< T >::get | ( |  | ) | const

inline

template <class T >

void Glib::Value< T >::set | ( | const CppType& | data | ) |

inline

template <class T >

static GType Glib::Value< T >::value_type | ( |  | ) |

static