|
codex
|
#include <algorithm>#include <array>#include <iostream>#include <ranges>#include <span>#include <utility>
Classes | |
| struct | detail::entry |
| class | storage_switch< N > |
Namespaces | |
| namespace | detail |
Macros | |
| #define | FWD(x) std::forward<decltype(x)>(x) |
| #define | X(x) template<> const char *type_name<x> = #x; |
Typedefs | |
| template<typename R , typename T > | |
| using | detail::same_constness = std::conditional_t<std::is_const_v<R>, const T, T> |
Functions | |
| constexpr bool | detail::contains (const std::ranges::contiguous_range auto &r, const auto &x) |
| template<typename T > | |
| auto | detail::find (std::span< const entry > s, T *p) |
| template<typename T > | |
| void | detail::call (T *p, void *d, std::span< const entry > s) |
| template<auto f, std::ranges::contiguous_range ... Rs> | |
| auto | make_storage_switch (void *d, Rs &&...rs) |
| X (int) X(unsigned) X(float) int main(void) | |
Variables | |
| template<typename > | |
| const char * | type_name |
| auto make_storage_switch | ( | void * | d, |
| Rs &&... | rs ) |

| X | ( | int | ) |

| const char* type_name |