Empirical
Classes | Namespaces | Typedefs
IntPack.h File Reference

A set of integers that can be manipulated at compile time (good for metaprogramming) More...

#include "meta.h"
#include <iostream>

Go to the source code of this file.

Classes

struct  emp::IntPack< Ts >
 
struct  emp::internal::ip_range< DONE, START, END, STEP, VALS >
 
struct  emp::internal::ip_range< true, START, END, STEP, VALS... >
 
struct  emp::internal::ip_concat< T1, T2 >
 
struct  emp::internal::ip_concat< IntPack< T1s... >, IntPack< T2s... > >
 
struct  emp::internal::ip_loop< T_IN, T_OUT, DONE, VERSION >
 
struct  emp::internal::ip_loop< T_IN, T_OUT, true, VERSION >
 
struct  emp::internal::ip_loop< IntPack<>, T_OUT, false, VERSION >
 
struct  emp::internal::ip_push_if_not< V, X, T >
 
struct  emp::internal::ip_push_if_not< V, V, T >
 
struct  emp::internal::ip_reverse< T >
 
struct  emp::internal::ip_reverse< IntPack< V1, Vs... > >
 
struct  emp::internal::ip_reverse< IntPack<> >
 
struct  emp::internal::ip_uniq< T >
 
struct  emp::internal::ip_uniq< IntPack< V1, Vs... > >
 
struct  emp::internal::ip_uniq< IntPack<> >
 
struct  emp::internal::ip_sort_impl< T_IN, T_OUT >
 
struct  emp::internal::ip_sort_impl< IntPack<>, T_OUT >
 
struct  emp::internal::ip_sort< T >
 
struct  emp::internal::ip_sort< IntPack< V1, Vs... > >
 
struct  emp::internal::ip_sort< IntPack<> >
 
struct  emp::IntPack< V1, Vs... >
 
struct  emp::IntPack<>
 

Namespaces

 emp
 If we are in emscripten, make sure to include the header.
 
 emp::internal
 
 emp::pack
 

Typedefs

template<int START, int END, int STEP = 1>
using emp::IntPackRange = typename internal::ip_range<(START >=END), START, END, STEP >::type
 
template<typename T >
using emp::pack::reverse = typename internal::ip_reverse< T >::result
 
template<typename T >
using emp::pack::uniq = typename internal::ip_uniq< T >::result
 
template<typename T >
using emp::pack::sort = typename internal::ip_sort< T >::result
 
template<typename T >
using emp::pack::Rsort = reverse< sort< T > >
 
template<typename T >
using emp::pack::Usort = uniq< sort< T > >
 
template<typename T >
using emp::pack::RUsort = reverse< Usort< T > >
 

Detailed Description

A set of integers that can be manipulated at compile time (good for metaprogramming)

Note
This file is part of Empirical, https://github.com/devosoft/Empirical
Date
2016-2018

These objects are able to measure a specific trait on another object. They (will eventually) interface smoothly with DataNodes for data collection.

Todo:
Shift to ValPack where the type is specified and then the values; specialize as IntPack.