VulkanRaytracingCycles 0.0.0
Cycles Render Engine With VulkanRaytracingShaderModules. ( Experiment , in progress)
CLambda Struct Reference

#include <vthreepy_types.h>

Static Public Member Functions

template<typename Tret , typename T >
static Tret lambda_ptr_exec ()
 
template<typename Tret , typename T , typename ... In>
static Tret lambda_ptr_exec (In... arguments)
 
template<typename Tret = void, typename T >
static auto vptr (T &t)
 
template<typename Tret = void, typename ... In, typename T >
static auto ptr (T &t)
 
template<typename T >
static void * fn (void *new_fn=nullptr)
 

Detailed Description

Definition at line 456 of file vthreepy_types.h.

Member Function Documentation

◆ fn()

template<typename T >
static void * CLambda::fn ( void *  new_fn = nullptr)
inlinestatic

printf(" %s \n", typeid(T).name());

Definition at line 488 of file vthreepy_types.h.

488 {
489 static void* fn;
491 if (new_fn != nullptr)
492 fn = new_fn;
493 return fn;
494 }
static void * fn(void *new_fn=nullptr)

◆ lambda_ptr_exec() [1/2]

template<typename Tret , typename T >
static Tret CLambda::lambda_ptr_exec ( )
inlinestatic

Definition at line 460 of file vthreepy_types.h.

460 {
461 return (Tret)(*(T*)fn<T>())();
462 }

◆ lambda_ptr_exec() [2/2]

template<typename Tret , typename T , typename ... In>
static Tret CLambda::lambda_ptr_exec ( In...  arguments)
inlinestatic

Definition at line 467 of file vthreepy_types.h.

467 {
468 return (Tret)(*(T*)fn<T>())(arguments...);
469 }

◆ ptr()

template<typename Tret = void, typename ... In, typename T >
static auto CLambda::ptr ( T &  t)
inlinestatic

Definition at line 481 of file vthreepy_types.h.

481 {
482 using Tfp = Tret(*)(In ...);
483 fn<T>(&t);
484 return (Tfp)lambda_ptr_exec<Tret, T, In...>;
485 }
static Tret lambda_ptr_exec()

◆ vptr()

template<typename Tret = void, typename T >
static auto CLambda::vptr ( T &  t)
inlinestatic

Definition at line 473 of file vthreepy_types.h.

473 {
474 using Tfp = Tret(*)(void);
475 fn<T>(&t);
476 return (Tfp)lambda_ptr_exec<Tret, T>;
477 }

The documentation for this struct was generated from the following file: