Functional-style constexpr container algorithms. More...
#include "Molassembler/Temple/Preprocessor.h"#include <array>#include <limits>#include <functional>Go to the source code of this file.
Namespaces | |
| 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, std::size_t > class ArrayType, typename T , std::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, std::size_t > class ArrayType, typename T , std::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, std::size_t > class ArrayType, typename T , std::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, std::size_t > class ArrayType, typename T , std::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, std::size_t > class ArrayType, typename T , std::size_t begin, std::size_t end> | |
| constexpr ArrayType< T,(end-begin)> | Scine::Molassembler::Temple::range () |
| Range for any array type. | |
| template<template< typename, std::size_t > class ArrayType, typename T , std::size_t N1, std::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, std::size_t > class ArrayType, typename T , std::size_t N, std::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, std::size_t > class ArrayType, typename T , std::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, std::size_t > class ArrayType, typename T , std::size_t sizeA, std::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.