Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
traits.h File Reference
#include <type_traits>
#include <utility>
#include <cstddef>

Go to the source code of this file.

Classes

struct  ph::IsBuildable< Built, From, typename >
 Check if object conversion can be made. More...
 
struct  ph::IsBuildable< Built, From, std::enable_if_t< std::is_convertible_v< From, Built >||std::is_constructible_v< Built, From > > >
 Return type if the result is true. More...
 

Namespaces

namespace  ph
 The root for all renderer implementations.
 

Concepts

concept  ph::CCanAdd
 Check if instances of types can be added together.
 
concept  ph::CCanSubtract
 Check if instances of types can be subtracted.
 
concept  ph::CCanMultiply
 Check if instances of types can be multiplied together.
 
concept  ph::CCanDivide
 Check if instances of types can be divided.
 
concept  ph::CSubscriptable
 
concept  ph::CEnum
 Whether the type is a scoped/unscoped enum.
 
concept  ph::CEnumWithSizeInfo
 
concept  ph::CNumber
 Checks whether T supports arithmetic operations. Effectively checking std::is_arithmetic<>.
 
concept  ph::CSame
 
concept  ph::CNotSame
 
concept  ph::CDerived
 Checks whether DerivedType is derived from BaseType. The result is also true if both types are the same; false if one of them is a primitive type.
 
concept  ph::CBase
 Checks whether BaseType is a base of DerivedType. The result is also true if both types are the same; false if one of them is a primitive type.
 

Typedefs

template<CSubscriptable Ts>
using ph::TSubscriptedTypeOf = decltype(std::declval<Ts>()[0])