Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Reification/VariadicMetaProgramming

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

186 Commits
186 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Variadic Meta Programming A C++14 header-only library in namespace vmp

##Contents: Implementation of variadic type lists in TypeList.hpp:

  • Random access via "part"
  • Insert elements into a type via "rebind"
  • Add elements at head via "athead"
  • Add elements at tail via "attail"
  • Apply a type to each element via "forall"
  • Match and apply a type to each element via "rewrap"
  • Define functions taking all types as arguments via "funptr"
  • Define methods taking all types as arguments via "metptr"

Implementation of homogeneous integral constant lists in InCoList.hpp

  • Random access via "part"
  • Insert elements into a type via "rebind"
  • Add elements at head via "athead"
  • Add elements at tail via "attail"
  • Apply a type to each element via "forall"
  • Match and apply a type to each element via "rewrap"
  • Apply a function or method to each element via "mapped"
  • Evaluate a function or method taking all elements as arguments via "merged"
  • Aggregate initialization of any type via "expand"

Implementation of heterogeneous data binding DataBind.hpp

  • Default, Copy & Move construction and asssignment
  • Call "operator (call)" calls "call(...)" using bound data as arguments

FunctionTypeList.hpp

  • Decompose function pointer to return type and argument typelist
  • Decompose method pointer to class type, return type and argument typelist
  • Applies to class references (including lambdas) that implement operator () without overloading

TypeSets.hpp:

  • Idenitify complementary types between lists via "typecomp"
  • Union type lists via "typeunion"
  • Intersect type lists via "typeinter"

ListManipulation.pp

  • Join lists via "listjoin"
  • Extract an interval from a list via "listrange"
  • Transposed lists of lists via "transposed"

ListComparison.hpp:

  • Identify indices of a type or value via "typesame"
  • Verify uniqueness of values via "typeonce"
  • Derive permutation relating type lists via "typeperm"

Implementation of integral constant variadic algebra in InCoVari.hpp

  • Short-circuit variadic && and || as "and_sc" and "or_sc" respectively

Implementation of constant expression variadic algebra in CoExVari.hpp:

  • Short-circuit variadic || and && as "or_all" and "and_all" respectively
  • Variadic + and * as "plus_all" and "times_all" respectively

##Required to Compile:

##Required to Document:

##Included:

About

Variadic Meta Programming Library

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.