Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functional.h File Reference

Functional-style container-related algorithms. More...

#include "Molassembler/Temple/Invoke.h"
#include "Molassembler/Temple/AddToContainer.h"
#include <numeric>
Include dependency graph for Functional.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Scine::Molassembler::Temple::Functor::Map< Transformation >
 

Namespaces

 Scine::Molassembler
 Central library namespace.
 
 Scine::Molassembler::Temple
 Template shorthands, optimizers and constexpr data types.
 
 Scine::Molassembler::Temple::Functor
 Functors for transformations.
 

Functions

template<class Container , std::enable_if_t< Traits::hasSize< Container >::value, int > = 0>
auto Scine::Molassembler::Temple::size (const Container &container)
 
template<class UnaryFunction , typename T , template< typename, typename...> class Container, template< typename > class... Dependents>
auto Scine::Molassembler::Temple::map_stl (const Container< T, Dependents< T >...> &container, UnaryFunction &&function)
 
template<template< typename...> class Tuplelike, typename Unary , typename... Ts, std::enable_if_t<!Traits::isPairlike< Tuplelike< Ts...>>::value &&Traits::isTuplelike< Tuplelike< Ts...>>::value > * = nullptr>
constexpr auto Scine::Molassembler::Temple::map (Tuplelike< Ts...> &&tup, Unary &&f)
 
template<typename Pairlike , typename Unary , std::enable_if_t< Traits::isPairlike< Pairlike >::value &&!Traits::isTuplelike< Pairlike >::value > * = nullptr>
constexpr auto Scine::Molassembler::Temple::map (Pairlike &&pair, Unary &&f)
 
template<class Container , class UnaryFunction , std::enable_if_t<!Traits::isPairlike< Container >::value &&!Traits::isTuplelike< Container >::value > * = nullptr>
auto Scine::Molassembler::Temple::map (Container &&container, UnaryFunction &&function)
 Maps all values of a container using a unary function. Returns a vector. More...
 
template<class Container , class Callable >
void Scine::Molassembler::Temple::forEach (const Container &container, Callable &&callable)
 Apply a callable for all values of a container.
 
template<class Container , typename ComparisonFunction , typename MappingFunction >
Container::const_iterator Scine::Molassembler::Temple::select (const Container &container, ComparisonFunction &&comparator, MappingFunction &&mapFunction)
 Select a value from a container. More...
 
template<class Container , typename T , class BinaryFunction >
Scine::Molassembler::Temple::accumulate (const Container &container, T init, BinaryFunction &&reductionFunction)
 Accumulate shorthand. More...
 
template<class Container , class UnaryPredicate = Functor::Identity>
bool Scine::Molassembler::Temple::all_of (const Container &container, UnaryPredicate &&predicate=UnaryPredicate{})
 all_of shorthand More...
 
template<class Container , class UnaryPredicate = Functor::Identity>
bool Scine::Molassembler::Temple::any_of (const Container &container, UnaryPredicate &&predicate=UnaryPredicate{})
 any_of shorthand More...
 
template<class Container >
void Scine::Molassembler::Temple::sort (Container &container)
 Calls std::sort on a container.
 
template<class Container , typename Comparator >
void Scine::Molassembler::Temple::sort (Container &container, Comparator &&comparator)
 Calls std::sort with a custom comparator on a container.
 
template<class Container >
void Scine::Molassembler::Temple::reverse (Container &container)
 In-place reversal.
 
template<class Container , typename T >
void Scine::Molassembler::Temple::remove (Container &container, const T &value)
 Applies erase-remove idiom in-place to container.
 
template<class Container , class UnaryFunction >
void Scine::Molassembler::Temple::remove_if (Container &container, UnaryFunction &&predicate)
 Applies erase-remove idiom in-place to container with a predicate function.
 
template<class Container , class Predicate >
Container Scine::Molassembler::Temple::copy_if (const Container &container, Predicate &&predicate)
 
template<class Container >
Container Scine::Molassembler::Temple::sorted (Container container)
 
template<class Container , typename Comparator >
Container Scine::Molassembler::Temple::sorted (Container container, Comparator &&comparator)
 
template<class Container , typename T >
auto Scine::Molassembler::Temple::find (const Container &container, const T &needle)
 std::find shorthand
 
template<class Container , typename UnaryPredicate >
auto Scine::Molassembler::Temple::find_if (const Container &container, UnaryPredicate &&predicate)
 std::find_if shorthand
 
template<class Container , typename T >
std::size_t Scine::Molassembler::Temple::index (const Container &container, const T &needle)
 
template<class Container , typename UnaryPredicate >
std::size_t Scine::Molassembler::Temple::index_if (const Container &container, UnaryPredicate &&predicate)
 
template<typename T >
std::vector< T > Scine::Molassembler::Temple::iota (unsigned upperBound)
 vector iota shorthand
 
template<class Container >
auto Scine::Molassembler::Temple::makeContainsPredicate (const Container &container)
 Creates a predicate that uses std::find for the container's value type.
 
template<typename Transformation >
auto Scine::Molassembler::Temple::Functor::map (Transformation &&t)
 

Detailed Description

Functional-style container-related algorithms.