| 72 | |
| 73 | template <typename V, typename Container, std::size_t... Indexes> |
| 74 | void listInitializationImpl(Vc::index_sequence<Indexes...>) |
| 75 | { |
| 76 | typedef typename V::EntryType T; |
| 77 | const auto data = Vc::makeContainer<Container>({T(Indexes + 1)...}); |
| 78 | V reference = V([](int n) { return n + 1; }); |
| 79 | for (const auto &v : data) { |
| 80 | reference.setZero(reference > int(sizeof...(Indexes))); |
| 81 | COMPARE(v, reference) << vir::typeToString<Container>() << " -> " |
| 82 | << vir::typeToString<decltype(data)>(); |
| 83 | reference += int(V::size()); |
| 84 | } |
| 85 | } |
| 86 | TEST_TYPES(V, listInitialization, AllVectors) |
| 87 | { |
| 88 | listInitializationImpl<V, std::vector<V>>(Vc::make_index_sequence<9>()); |