Cppgres
Build Postgres extensions in C++
Loading...
Searching...
No Matches
utils.hpp File Reference
#include <optional>
#include <string_view>
#include <tuple>
#include <utility>
#include "pfr.hpp"

Go to the source code of this file.

Classes

struct  cppgres::utils::remove_optional< T >
 
struct  cppgres::utils::remove_optional< std::optional< T > >
 
struct  cppgres::utils::tuple_traits_impl< T, typename >
 
struct  cppgres::utils::tuple_traits_impl< T, typename >::tuple_element_t
 
struct  cppgres::utils::tuple_traits_impl< T, std::void_t< decltype(std::tuple_size< T >::value)> >
 
struct  cppgres::utils::tuple_traits_impl< T, std::enable_if_t< std::is_aggregate_v< T > > >
 
struct  cppgres::utils::is_std_tuple< T >
 
struct  cppgres::utils::is_std_tuple< std::tuple< Ts... > >
 

Concepts

concept  cppgres::utils::is_optional
 
concept  cppgres::utils::std_tuple
 

Macros

#define CPPGRES_USE_BOOST_PFR   1
 

Typedefs

template<typename T >
using cppgres::utils::remove_optional_t = typename utils::remove_optional< T >::type
 
template<typename T >
using cppgres::utils::tuple_size = typename tuple_traits_impl< T >::tuple_size_type
 
template<std::size_t I, typename T >
using cppgres::utils::tuple_element = typename tuple_traits_impl< T >::template tuple_element< I >
 
template<std::size_t I, typename T >
using cppgres::utils::tuple_element_t = typename tuple_element< I, T >::type
 

Functions

template<typename T >
constexpr std::string_view cppgres::utils::type_name ()
 
template<std::size_t I, typename T >
constexpr decltype(auto) cppgres::utils::get (T &&t) noexcept
 
template<typename T >
decltype(auto) cppgres::utils::tie (T &val)
 

Variables

template<typename T >
constexpr std::size_t cppgres::utils::tuple_size_v = tuple_size<T>::value