codex
Loading...
Searching...
No Matches
reflexpr.cpp File Reference
#include <string>
#include <tuple>
#include <concepts>
#include <iostream>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
Include dependency graph for reflexpr.cpp:

Classes

struct  member_pointer_type< P T::* >
 
struct  std::experimental::reflect::detail::object_tag
 
struct  std::experimental::reflect::detail::object_seq_tag
 
struct  std::experimental::reflect::detail::reflexpr_impl< T >
 
struct  std::experimental::reflect::detail::ObjectSeqImpl< Os >
 
struct  std::experimental::reflect::detail::data_member< p >
 
struct  std::experimental::reflect::test::get_public_data_members< T >
 
struct  std::experimental::reflect::get_pointer< O >
 
struct  lua_get_impl< int >
 
struct  lua_get_impl< float >
 
struct  lua_get_impl< P >
 
struct  lua_get_impl< std::string >
 
struct  lua_get_impl< T >
 
struct  S
 
struct  std::experimental::reflect::test::get_public_data_members< reflexpr(S)>
 

Namespaces

namespace  std
 
namespace  std::experimental
 
namespace  std::experimental::reflect
 
namespace  std::experimental::reflect::detail
 
namespace  std::experimental::reflect::test
 

Concepts

concept  std::experimental::reflect::Object
 
concept  std::experimental::reflect::ObjectSequence
 
concept  pointer
 

Macros

#define FWD(x)   (std::forward<decltype(x)>(x))
 
#define reflexpr(T)   std::experimental::reflect::detail::reflexpr_impl<T>
 

Typedefs

template<Object ... Os>
using std::experimental::reflect::test::make_sequence = detail::ObjectSeqImpl<Os...>
 
template<auto p>
using std::experimental::reflect::test::make_member_data = detail::data_member<p>
 
template<typename T >
using std::experimental::reflect::test::get_public_data_members_t = get_public_data_members<T>::type
 
template<Object O>
using std::experimental::reflect::get_type = O
 
template<Object O>
using std::experimental::reflect::get_type_t = get_type<O>::type
 
template<ObjectSequence S>
using std::experimental::reflect::get_size = std::tuple_size<typename S::types>
 
template<std::size_t I, ObjectSequence S>
using std::experimental::reflect::get_element = std::tuple_element<I, typename S::types>
 
template<std::size_t I, ObjectSequence S>
using std::experimental::reflect::get_element_t = get_element<I, S>::type
 

Functions

template<typename T >
void for_each_public (T &&x, auto &&f)
 
void lua_push (lua_State *L, int i)
 
void lua_push (lua_State *L, float f)
 
void lua_push (lua_State *L, pointer auto p)
 
void lua_push (lua_State *L, const std::string &s)
 
template<typename T >
requires (!pointer<T>)
void lua_push (lua_State *L, const T &x)
 
template<typename T >
decltype(auto) lua_get (lua_State *L, int i)
 
int main ()
 

Variables

template<Object O>
constexpr auto std::experimental::reflect::get_pointer_v = get_pointer<O>::value
 
template<ObjectSequence S>
constexpr auto std::experimental::reflect::get_size_v = get_size<S>::value
 

Macro Definition Documentation

◆ FWD

#define FWD ( x)    (std::forward<decltype(x)>(x))

◆ reflexpr

Function Documentation

◆ for_each_public()

template<typename T >
void for_each_public ( T && x,
auto && f )
Here is the caller graph for this function:

◆ lua_get()

template<typename T >
decltype(auto) lua_get ( lua_State * L,
int i )
Here is the caller graph for this function:

◆ lua_push() [1/5]

void lua_push ( lua_State * L,
const std::string & s )
Here is the call graph for this function:

◆ lua_push() [2/5]

template<typename T >
requires (!pointer<T>)
void lua_push ( lua_State * L,
const T & x )
Here is the call graph for this function:

◆ lua_push() [3/5]

void lua_push ( lua_State * L,
float f )

◆ lua_push() [4/5]

void lua_push ( lua_State * L,
int i )
Here is the caller graph for this function:

◆ lua_push() [5/5]

void lua_push ( lua_State * L,
pointer auto p )

◆ main()

int main ( void )
Here is the call graph for this function: