For some problems, standard (or third-party) containers can be used. Simply use a value_type
of Vc::Vector<T>
. However, this requires:
value_type
elements is going to be a pain (two subscripts, first into the container, then into the Vc::Vector
)Therefore, for some problems you need to work with containers over elements of non-Vector
type (e.g. of type double
or a struct
). Vc provides some help:
Classes | |
struct | array< T, Size > |
This is std::array with additional subscript operators supporting gather and scatter operations. More... | |
class | InterleavedMemoryWrapper< S, V > |
Wraps a pointer to memory with convenience functions to access it via vectors. More... | |
class | Memory< V, Size1, Size2, InitPadding > |
A helper class for fixed-size two-dimensional arrays. More... | |
class | Memory< V, Size, 0u, InitPadding > |
A helper class to simplify usage of correctly aligned and padded memory, allowing both vector and scalar access. More... | |
class | Memory< V, 0u, 0u, true > |
A helper class that is very similar to Memory<V, Size> but with dynamically allocated memory and thus dynamic size. More... | |
Typedefs | |
template<typename T , typename Allocator = std::allocator<T>> | |
using | vector = Common::AdaptSubscriptOperator< std::vector< T, Allocator > > |
An adapted std::vector container with an additional subscript operator which implements gather and scatter operations. More... | |
template<typename T , ptrdiff_t Extent = dynamic_extent> | |
using | span = Common::AdaptSubscriptOperator< Common::span< T, Extent > > |
An adapted std::span with additional subscript operators supporting gather and scatter operations. More... | |
Functions | |
template<typename Container , typename T > | |
constexpr auto | makeContainer (std::initializer_list< T > list) -> decltype(make_container_helper< Container, T >::help(list)) |
Construct a container of Vc vectors from a std::initializer_list of scalar entries. More... | |
An adapted std::vector
container with an additional subscript operator which implements gather and scatter operations.
The std::vector documentation applies.
Example:
using span = Common::AdaptSubscriptOperator<Common::span<T, Extent> > |
An adapted std::span
with additional subscript operators supporting gather and scatter operations.
The std::span documentation applies.
Example:
constexpr auto Vc::makeContainer | ( | std::initializer_list< T > | list | ) | -> decltype(make_container_helper<Container, T>::help(list)) |
Construct a container of Vc vectors from a std::initializer_list of scalar entries.
Container | The container type to construct. |
T | The scalar type to use for the initializer_list. |
list | An initializer list of arbitrary size. The type of the entries is important! If you pass a list of integers you will get a container filled with Vc::int_v objects. If, instead, you want to have a container of Vc::float_v objects, be sure the include a period (.) and the 'f' postfix in the literals. Alternatively, you can pass the type as second template argument to makeContainer. |
list
does not match the number of values in the returned container object, the remaining values in the returned object will be zero-initialized.Example:
Definition at line 137 of file makeContainer.h.