jsocketpp 1.0
A cross-platform C++20 socket library.
Loading...
Searching...
No Matches
buffer_traits.hpp File Reference

Type traits and utilities for detecting and validating buffer types. More...

Go to the source code of this file.

Classes

struct  jsocketpp::detail::is_byte_like< T >
 Type trait to detect byte-like types. More...
struct  jsocketpp::detail::has_resize< typename, typename >
 Detection helper for resize() member function. More...
struct  jsocketpp::detail::has_resize< T, std::void_t< decltype(std::declval< T & >().resize(std::size_t{}))> >
struct  jsocketpp::detail::has_data< typename, typename >
 Detection helper for data() member function. More...
struct  jsocketpp::detail::has_data< T, std::void_t< decltype(std::declval< T & >().data())> >
struct  jsocketpp::detail::has_size< typename, typename >
 Detection helper for size() member function. More...
struct  jsocketpp::detail::has_size< T, std::void_t< decltype(std::declval< const T & >().size())> >

Namespaces

namespace  jsocketpp::detail
 Implementation details and type traits for jsocketpp buffer management.
namespace  jsocketpp
 A C++ socket library providing Java-style networking interfaces.

Variables

template<typename T>
constexpr bool jsocketpp::detail::is_dynamic_buffer_v
 Type trait for dynamic buffer types.
template<typename T>
constexpr bool jsocketpp::detail::is_fixed_buffer_v
 Type trait for fixed-size buffer types.

Detailed Description

Type traits and utilities for detecting and validating buffer types.

This header provides compile-time type traits to detect and validate different kinds of buffer types used throughout the jsocketpp library. It defines traits for checking buffer properties such as:

  • Byte-like element types (char, unsigned char, std::byte, etc.)
  • Dynamic buffer capabilities (resize, data access, size queries)
  • Fixed-size buffer characteristics

Key Concepts

  • Byte-like types: Types that can represent raw bytes (char, unsigned char, std::byte)
  • Dynamic buffers: Containers that support resize(), data(), and size() operations
  • Fixed buffers: Containers with data() and size() but no resize capability

Primary Traits

  • is_byte_like<T>: Checks if T is a valid byte-type
  • is_dynamic_buffer_v<T>: Validates dynamic buffer requirements
  • is_fixed_buffer_v<T>: Validates fixed-size buffer requirements
Author
MangaD
Date
2025
Version
1.0