glibmm: Glib::Value< T > Class Template Reference

Generic value implementation for custom types. More...

#include <glibmm/value_custom.h>

Inheritance diagram for Glib::Value< T >:

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