Nano
A C++ template metaprogramming library
|
Go to the source code of this file.
Classes | |
struct | nano::detail::search_lists< List1, List2 > |
For each element in the first list, the index of the element in the second list is searched for, if found it's added to a new list, otherwise -1 is added. More... | |
struct | nano::detail::search_lists< list< Head1, Tail1...>, list< Head2, Tail2...> > |
struct | nano::find_common< List1, List2 > |
Finds all common elements in 2 lists and returns a zipped list of the result, where each zipped element is a index of the common element in the lists. The zips are sorted by the index of the element in the first list. For example, if there are 2 lists: [ 0, 4, 2, 1 ] and [ 12, 1, 4, 2 ] the returned list will be: [ [1, 2], [2 ,3], [1, 2] ]. More... | |
struct | nano::find_common< list< Head1, Tail1...>, list< Head2, Tail2...> > |
struct | nano::find_uncommon< List1, List2 > |
Finds all elements of the first list which are not present in the second list, and returns a new list without the common elements. For example, if there are 2 lists: [ 2, 3, 1, 4 ] and [ 4, 5, 2 ] the returned list will be: [ 3, 1 ]. More... | |
struct | nano::find_uncommon< list< Head1, Tail1...>, list< Head2, Tail2...> > |
struct | nano::find_uncommon_indices< List1, List2 > |
Finds the indices of the elements in the first list which are not present in the second list and returns a list of the index values. For example, if there are 2 lists: [ 2, 3, 1, 4 ] and [ 4, 5, 2 ] the returned list will be: [ 1, 3 ]. More... | |
struct | nano::find_uncommon_indices< list< Head1, Tail1...>, list< Head2, Tail2...> > |
struct | nano::multiplies< List, Current > |
Same as std::multiplies, but for a nano:list which can be computed at compile time - computes the product of the list elelents from the starting value. More... | |
struct | nano::multiplies< list< Head, Tail...>, Current > |
struct | nano::multiplies< empty_list, Current > |
struct | nano::detail::accumulate< List, Iteration, StartIndex, EndIndex, Value, Operation > |
Like std::accumulate, where the start and end indices, and the accumulation functor can be specified. More... | |
struct | nano::detail::accumulate< list< Head, Tail...>, Iteration, StartIndex, EndIndex, Value, Operation > |
struct | nano::detail::accumulate< list< Tail...>, Iteration, StartIndex, EndIndex, Value, Operation > |
Namespaces | |
nano | |
nano::detail | |
Typedefs | |
template<typename List , std::size_t StartIndex = 0, std::size_t EndIndex = std::numeric_limits<std::size_t>::max(), std::size_t StartValue = 1, template< typename...> class Operation = nano::multiply> | |
using | nano::accumulate = detail::accumulate< List, 0, nano::size_t< StartIndex >, nano::size_t< EndIndex >, nano::size_t< StartValue >, Operation > |