Photon Common Library 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
utility.h File Reference
#include "Common/config.h"
#include <string>
#include <type_traits>
#include <array>
#include <cstddef>
#include <concepts>
#include "Common/utility.ipp"

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.
 

Macros

#define PH_NOT_IMPLEMENTED_WARNING()
 

Functions

void ph::detail::output_not_implemented_warning (const std::string &filename, const std::string &lineNumber)
 
template<typename T >
consteval std::size_t ph::sizeof_in_bits ()
 Calculates number of bits an instance of type T occupies.
 
template<typename T , std::size_t N>
constexpr std::array< T, N > ph::make_array (const T &element)
 Creates an std::array filled with the same element.
 
template<std::integral DstType, std::integral SrcType>
DstType ph::lossless_integer_cast (const SrcType &src)
 
template<std::floating_point DstType, std::floating_point SrcType>
DstType ph::lossless_float_cast (const SrcType &src)
 
template<typename DstType , typename SrcType >
DstType ph::lossless_cast (const SrcType &src)
 Cast numeric value to another type without any loss of information. If there is any possible overflow or numeric precision loss, exception is thrown.
 
template<typename DstType , typename SrcType >
DstType ph::lossless_cast (const SrcType &src, DstType *const out_dst)
 

Macro Definition Documentation

◆ PH_NOT_IMPLEMENTED_WARNING

#define PH_NOT_IMPLEMENTED_WARNING ( )
Value:
do\
{\
::ph::detail::output_not_implemented_warning(\
std::string(__FILE__),\
std::to_string(__LINE__));\
} while(0)