Functional-style constexpr container algorithms. More...
Go to the source code of this file.
Namespaces | |
Scine | |
Scine::Molassembler | |
Central library namespace. | |
Scine::Molassembler::Temple | |
Template shorthands, optimizers and constexpr data types. | |
Scine::Molassembler::Temple::Traits | |
Compile-time reflective trait objects. | |
Typedefs | |
template<class Function , typename... Args> | |
using | Scine::Molassembler::Temple::Traits::functionReturnType = std::result_of_t< Function(Args...)> |
Figure out the return type of calling a function. | |
Functions | |
template<template< typename, size_t > class ArrayType, typename T , size_t size, class UnaryFunction > | |
constexpr auto | Scine::Molassembler::Temple::map (const ArrayType< T, size > &array, UnaryFunction &&function) |
Maps all elements of any array-like container with a unary function. More... | |
template<template< typename, size_t > class ArrayType, typename T , size_t size, class BinaryFunction > | |
constexpr T | Scine::Molassembler::Temple::reduce (const ArrayType< T, size > &array, T init, BinaryFunction &&reduction) |
Reduce an array-like container with a binary function. More... | |
template<template< typename, size_t > class ArrayType, typename T , size_t size> | |
constexpr T | Scine::Molassembler::Temple::sum (const ArrayType< T, size > &array) |
Sum up all elements of an array-like class. More... | |
template<template< typename, size_t > class ArrayType, typename T , size_t size> | |
PURITY_STRONG constexpr std::enable_if_t < std::is_arithmetic< T > ::value, ArrayType< T, size >> | Scine::Molassembler::Temple::iota () |
Iota for any array type. | |
template<template< typename, size_t > class ArrayType, typename T , size_t begin, size_t end> | |
constexpr ArrayType< T,(end-begin)> | Scine::Molassembler::Temple::range () |
Range for any array type. | |
template<template< typename, size_t > class ArrayType, typename T , size_t N1, size_t N2> | |
constexpr ArrayType< T, N1+N2 > | Scine::Molassembler::Temple::arrayConcatenate (const ArrayType< T, N1 > &a, const ArrayType< T, N2 > &b) |
Concatenation of two instances of an array-like class. | |
template<template< typename, size_t > class ArrayType, typename T , size_t N, size_t... Ns> | |
constexpr auto | Scine::Molassembler::Temple::arrayConcatenate (const ArrayType< T, N > &startingArray, const ArrayType< T, Ns > &...remainingArrays) |
Variadic concatenation of multiple array-like class instances. | |
template<template< typename, size_t > class ArrayType, typename T , size_t size> | |
constexpr bool | Scine::Molassembler::Temple::arraysEqual (const ArrayType< T, size > &a, const ArrayType< T, size > &b) |
Array-like container lexicographic equality comparaotr. More... | |
template<template< typename, size_t > class ArrayType, typename T , size_t sizeA, size_t sizeB> | |
constexpr std::enable_if_t < sizeA==sizeB, bool > | Scine::Molassembler::Temple::arraysLess (const ArrayType< T, sizeA > &a, const ArrayType< T, sizeB > &b) |
Lexicographical comparison for two instances of an array-like class. More... | |
Functional-style constexpr container algorithms.