Photon Common Library 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
memory.ipp File Reference
#include "Common/memory.h"
#include <cstdint>
#include <version>
#include <algorithm>
#include <type_traits>
#include <bit>
#include <cstring>
#include <new>

Go to the source code of this file.

Namespaces

namespace  ph
 The root for all renderer implementations.
 
namespace  ph::detail
 Implementation detail mainly for internal usages.
 

Concepts

concept  ph::detail::CPermissiveImplicitLifetime
 

Functions

template<typename T = void>
auto ph::make_aligned_memory (std::size_t numBytes, std::size_t alignmentInBytes) -> TAlignedMemoryUniquePtr< T >
 Create an aligned memory resource.
 
template<typename T >
void ph::from_bytes (const std::byte *srcBytes, T *out_dstValue)
 
template<typename T >
void ph::to_bytes (const T &srcValue, std::byte *out_dstBytes)
 
template<std::size_t N>
void ph::reverse_bytes (std::byte *bytes)
 
template<typename T >
T * ph::start_implicit_lifetime_as (void *ptr) noexcept
 Wrapper for std::start_lifetime_as(). Primarily a fallback when C++23 is not available. This function may touch the storage. For cv overloads or one that does not touch the storage, use std::start_lifetime_as() (requires C++23).
 
template<typename T >
T * ph::start_implicit_lifetime_as_array (void *ptr, std::size_t numArrayElements) noexcept
 Wrapper for std::start_lifetime_as_array(). Primarily a fallback when C++23 is not available. This function may touch the storage. For cv overloads or one that does not touch the storage, use std::start_lifetime_as_array() (requires C++23).