traits.h File Reference
#include "ttg/util/meta.h"
#include <type_traits>
#include <iostream>
#include "ttg/serialization/backends.h"

Classes

struct  boost::serialization::unsigned_int
 
struct  ttg::detail::is_printable< class, class >
 
struct  ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >
 
struct  ttg::detail::printer_helper< T, Enabler >
 
struct  ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >
 
struct  ttg::detail::is_user_buffer_serializable< T, Enabler >
 is_user_buffer_serializable<T> evaluates to true if T can be serialized to a buffer using user-provided methods More...
 
struct  ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >
 
struct  ttg::detail::is_memcpyable< T >
 reports whether objects of type T are safe to std::memcpy More...
 

Namespaces

 boost
 
 boost::archive
 
 boost::serialization
 
 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 

Typedefs

template<typename T , typename Archive >
using ttg::detail::has_member_serialize_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >()))
 
template<typename T , typename Archive >
using ttg::detail::has_member_serialize_with_version_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >(), 0u))
 
template<typename T , typename Archive >
using ttg::detail::has_member_load_t = decltype(std::declval< T & >().load(std::declval< Archive & >()))
 
template<typename T , typename Archive >
using ttg::detail::has_member_load_with_version_t = decltype(std::declval< T & >().load(std::declval< Archive & >(), 0u))
 
template<typename T , typename Archive >
using ttg::detail::has_member_save_t = decltype(std::declval< T & >().save(std::declval< Archive & >()))
 
template<typename T , typename Archive >
using ttg::detail::has_member_save_with_version_t = decltype(std::declval< T & >().save(std::declval< Archive & >(), 0u))
 
template<typename T , typename Archive >
using ttg::detail::has_freestanding_serialize_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >()))
 
template<typename T , typename Archive >
using ttg::detail::has_freestanding_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), 0u))
 
template<typename T , typename Archive >
using ttg::detail::has_freestanding_boost_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), boost::serialization::version_as_adl_tag))
 

Variables

const unsigned_int boost::serialization::version_as_adl_tag = 0u
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_member_serialize_v = ttg::meta::is_detected_v<has_member_serialize_t, T, Archive>
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_member_serialize_with_version_v
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_member_load_with_version_v
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_member_save_with_version_v
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_freestanding_serialize_v
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_freestanding_serialize_with_version_v
 
template<typename T , typename Archive >
constexpr bool ttg::detail::has_freestanding_boost_serialize_with_version_v
 
template<typename T , typename Enabler = void>
constexpr bool ttg::detail::is_archive_v = false
 
template<typename T , typename Enabler >
constexpr bool ttg::detail::is_input_archive_v = false
 
template<typename T , typename Enabler = void>
constexpr bool ttg::detail::is_output_archive_v = false
 
template<typename T >
constexpr bool ttg::detail::is_user_buffer_serializable_v = is_user_buffer_serializable<T>::value
 
template<typename T >
constexpr bool ttg::detail::is_memcpyable_override_v = std::is_trivially_copyable_v<T>
 can be used to override the default value of is_memcpyable<T>::value More...
 
template<typename T >
constexpr bool ttg::detail::is_memcpyable_v = is_memcpyable<T>::value