Low-Level Abstraction of Memory Access
RecordCoord.hpp File Reference
#include "Meta.hpp"
#include "macros.hpp"
#include <array>
#include <ostream>
#include <type_traits>
+ Include dependency graph for RecordCoord.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llama::RecordCoord< Coords >
 
struct  llama::RecordCoord<>
 

Namespaces

 llama
 
 llama::literals
 
 llama::internal
 

Typedefs

template<typename L >
using llama::RecordCoordFromList = internal::mp_unwrap_values_into< L, RecordCoord >
 Converts a type list of integral constants into a RecordCoord. More...
 
template<typename... RecordCoords>
using llama::Cat = RecordCoordFromList< mp_append< typename RecordCoords::List... > >
 Concatenate a set of RecordCoords. More...
 
template<typename RecordCoord >
using llama::PopFront = RecordCoordFromList< mp_pop_front< typename RecordCoord::List > >
 RecordCoord without first coordinate component. More...
 

Functions

template<std::size_t... CoordsA, std::size_t... CoordsB>
constexpr auto llama::operator== (RecordCoord< CoordsA... >, RecordCoord< CoordsB... >)
 
template<std::size_t... Coords>
constexpr auto llama::operator== (RecordCoord< Coords... >, RecordCoord< Coords... >)
 
template<std::size_t... CoordsA, std::size_t... CoordsB>
constexpr auto llama::operator!= (RecordCoord< CoordsA... > a, RecordCoord< CoordsB... > b)
 
template<std::size_t... RCs>
auto llama::operator<< (std::ostream &os, RecordCoord< RCs... >) -> std::ostream &
 
template<char... Digits>
constexpr auto llama::literals::operator""_RC ()
 Literal operator for converting a numeric literal into a RecordCoord. More...
 
template<typename... RecordCoords>
constexpr auto llama::cat (RecordCoords...)
 Concatenate a set of RecordCoords instances. More...
 
template<std::size_t... Coords1, std::size_t... Coords2>
constexpr auto llama::internal::recordCoordCommonPrefixIsBiggerImpl (RecordCoord< Coords1... >, RecordCoord< Coords2... >) -> bool
 
template<std::size_t... Coords1, std::size_t... Coords2>
constexpr auto llama::internal::recordCoordCommonPrefixIsSameImpl (RecordCoord< Coords1... >, RecordCoord< Coords2... >) -> bool
 

Variables

template<typename T >
constexpr bool llama::isRecordCoord = false
 
template<std::size_t... Coords>
constexpr bool llama::isRecordCoord< RecordCoord< Coords... > > = true
 
template<typename First , typename Second >
constexpr auto llama::recordCoordCommonPrefixIsBigger = internal::recordCoordCommonPrefixIsBiggerImpl(First{}, Second{})
 Checks wether the first RecordCoord is bigger than the second. More...
 
template<typename First , typename Second >
constexpr auto llama::recordCoordCommonPrefixIsSame = internal::recordCoordCommonPrefixIsSameImpl(First{}, Second{})
 Checks whether two RecordCoords are the same or one is the prefix of the other. More...