BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
|
This namespace contains the list type, and all of the operations and queries which can be performed upon it. More...
Namespaces | |
impl | |
runtime | |
This namespace contains some utilities that provide runtime operations on typelists. | |
Classes | |
struct | builder |
struct | invert_filter |
Template to invert a filter, i.e. filter<mylist, filter_inverter<myfilter>::type> More... | |
struct | list |
The actual list type. More... | |
Typedefs | |
template<typename List , template< typename... > class Delegate> | |
using | apply = typename impl::apply< List, Delegate >::type |
Apply a list of types as arguments to another template. More... | |
template<typename... Lists> | |
using | concat = typename impl::concat< Lists... >::type |
Concatenate two or more typelists together. More... | |
template<std::size_t count> | |
using | make_sequence = typename impl::make_sequence< count >::type |
Create a list of sequential integers ranging from [0, count) More... | |
template<typename List , typename Transformer > | |
using | transform = typename impl::transform< List, Transformer >::type |
Transform elements of a typelist. More... | |
template<typename... TypeLists> | |
using | concat_unique = typename impl::concat_unique< list<>, TypeLists... >::type |
Remove duplicate items from one or more typelists and concatenate them all together. More... | |
template<typename List , std::size_t index> | |
using | at = typename impl::at< List, index >::type |
Get the type at the specified list index. More... | |
template<typename List > | |
using | first = at< List, 0 > |
Get the type at the beginning of the list. More... | |
template<typename List > | |
using | last = at< List, length< List >() -1 > |
Get the type at the end of the list. More... | |
template<typename List , std::size_t index> | |
using | remove_at = typename impl::remove_at< list<>, List, index >::type |
Get the list with the element at the given index removed. More... | |
template<typename List , typename Remove > | |
using | remove_element = remove_at< List, index_of< List, Remove >()> |
Get the list with the given type removed. More... | |
template<typename List , template< typename > class Filter> | |
using | filter = typename impl::filter< Filter, list<>, List >::type |
Get a list with all elements that do not pass a filter removed. More... | |
template<typename List , std::size_t start, std::size_t end = length<List>()> | |
using | slice = typename impl::slice< list<>, List, start, end >::type |
Take the sublist at indexes [start, end) More... | |
template<typename ListA , typename ListB > | |
using | zip = typename impl::zip< ListA, ListB >::type |
Zip two equal-length typelists together, i.e. zip<list<X, Y>, list<A, B>> == list<list<X, A>, list<Y, B>> More... | |
template<typename List > | |
using | index = typename impl::zip< typename impl::make_sequence< length< List >()>::type, List >::type |
This namespace contains the list type, and all of the operations and queries which can be performed upon it.
using fc::typelist::apply = typedef typename impl::apply<List, Delegate>::type |
Apply a list of types as arguments to another template.
Definition at line 142 of file typelist.hpp.
using fc::typelist::at = typedef typename impl::at<List, index>::type |
Get the type at the specified list index.
Definition at line 186 of file typelist.hpp.
using fc::typelist::concat = typedef typename impl::concat<Lists...>::type |
Concatenate two or more typelists together.
Definition at line 150 of file typelist.hpp.
using fc::typelist::concat_unique = typedef typename impl::concat_unique<list<>, TypeLists...>::type |
Remove duplicate items from one or more typelists and concatenate them all together.
Definition at line 182 of file typelist.hpp.
using fc::typelist::filter = typedef typename impl::filter<Filter, list<>, List>::type |
Get a list with all elements that do not pass a filter removed.
Definition at line 205 of file typelist.hpp.
using fc::typelist::first = typedef at<List, 0> |
Get the type at the beginning of the list.
Definition at line 190 of file typelist.hpp.
using fc::typelist::index = typedef typename impl::zip<typename impl::make_sequence<length<List>()>::type, List>::type |
Add indexes to types in the list, i.e. index<list<A, B, C>> == list<list<0, A>, list<1, B>, list<2, C>> where 0, 1, and 2 are std::integral_constants of type std::size_t
Definition at line 225 of file typelist.hpp.
using fc::typelist::last = typedef at<List, length<List>()-1> |
Get the type at the end of the list.
Definition at line 193 of file typelist.hpp.
using fc::typelist::make_sequence = typedef typename impl::make_sequence<count>::type |
Create a list of sequential integers ranging from [0, count)
Definition at line 154 of file typelist.hpp.
using fc::typelist::remove_at = typedef typename impl::remove_at<list<>, List, index>::type |
Get the list with the element at the given index removed.
Definition at line 197 of file typelist.hpp.
using fc::typelist::remove_element = typedef remove_at<List, index_of<List, Remove>()> |
Get the list with the given type removed.
Definition at line 201 of file typelist.hpp.
using fc::typelist::slice = typedef typename impl::slice<list<>, List, start, end>::type |
Take the sublist at indexes [start, end)
Definition at line 216 of file typelist.hpp.
using fc::typelist::transform = typedef typename impl::transform<List, Transformer>::type |
Transform elements of a typelist.
Definition at line 170 of file typelist.hpp.
using fc::typelist::zip = typedef typename impl::zip<ListA, ListB>::type |
Zip two equal-length typelists together, i.e. zip<list<X, Y>, list<A, B>> == list<list<X, A>, list<Y, B>>
Definition at line 220 of file typelist.hpp.