#include "is_within_limits.hpp"
#include "type_identity.hpp"
#include "valid_if/nonnegative.hpp"
#include <cassert>
#include <cstdint>
#include <limits>
#include <type_traits>
Go to the source code of this file.
Namespaces | |
eagine | |
Common code is placed in this namespace. | |
Typedefs | |
using | eagine::byte = unsigned char |
Byte type alias. | |
using | eagine::std_align_t = std::size_t |
Alignment type used by std. | |
using | eagine::std_size_t = std::size_t |
Size type used by std. | |
using | eagine::span_size_t = std::ptrdiff_t |
Signed span size type used by eagine. | |
using | eagine::valid_span_size = valid_if_nonnegative< span_size_t > |
Valid size type. | |
Functions | |
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> | |
static constexpr auto | eagine::std_align (T v) noexcept |
Converts argument to std alignment type. | |
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> | |
static constexpr auto | eagine::std_size (T v) noexcept |
Converts argument to std size type. | |
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> | |
static constexpr auto | eagine::span_size (T v) noexcept |
Converts argument to span size type. | |
template<typename T > | |
static constexpr auto | eagine::span_align_of (type_identity< T >={}) noexcept |
Returns the byte alignment of type T as span_size_t. | |
template<typename T > | |
static constexpr auto | eagine::span_size_of (type_identity< T >={}) noexcept |
Returns the byte size of type T as span_size_t. | |
template<typename T , typename S > | |
static constexpr auto | eagine::span_size_of (S n, type_identity< T >={}) noexcept |
Returns the total byte size of n elements of type T as span_size_t. | |
Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt