glibmm: Glib::SListHandler< T, Tr > Class Template Reference
A utility for converting between std::vector and GSList. More...
#include <glibmm/vectorutils.h>
Public Types | |
using | CType = typename Tr::CType |
using | CppType = T |
using | VectorType = std::vector< CppType > |
using | GSListKeeperType = typename Glib::Container_Helpers::GSListKeeper< Tr > |
using | SListIteratorType = typename Glib::Container_Helpers::SListIterator< Tr > |
Static Public Member Functions | |
static VectorType | slist_to_vector (GSList* gslist, Glib::OwnershipType ownership) |
static GSListKeeperType | vector_to_slist (const VectorType& vector) |
Detailed Description
template<typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
class Glib::SListHandler< T, Tr >
A utility for converting between std::vector and GSList.
This would normally only be used by glibmm or gtkmm itself, or similar libraries that wrap C APIs.
For instance:
std::vector< Glib::RefPtr<Display> > DisplayManager::list_displays()
{
>::slist_to_vector(gdk_display_manager_list_displays(gobj()), Glib::OWNERSHIP_SHALLOW);
}
or
Note that usage below is wrong - data() returns a pointer to data owned by a temporary SListKeeper returned by vector_to_slist(), which is destroyed at the end of this instruction. For details, see Glib::SListKeeper.
GSList* gslist = Glib::SListHandler< Glib::RefPtr<Display> >::vector_to_slist(vec).data();
Member Typedef Documentation
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::SListHandler< T, Tr >::CppType = T |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::SListHandler< T, Tr >::CType = typename Tr::CType |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::SListHandler< T, Tr >::GSListKeeperType = typename Glib::Container_Helpers::GSListKeeper<Tr> |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::SListHandler< T, Tr >::SListIteratorType = typename Glib::Container_Helpers::SListIterator<Tr> |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
using Glib::SListHandler< T, Tr >::VectorType = std::vector<CppType> |
Member Function Documentation
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
|
static |
template <typename T, typename Tr = Glib::Container_Helpers::TypeTraits<T>>
|
static |