• Home
  • Raw
  • Download

Lines Matching refs:std

75 template <typename T, std::size_t N>
90 template <typename I, typename Traits = std::iterator_traits<I>>
92 std::conjunction<std::is_base_of<std::input_iterator_tag, typename Traits::iterator_category>,
93 std::negation<std::is_constructible<T, I>>>;
120 template <typename U, std::size_t M, typename = std::enable_if_t<M <= N>>
125 template <typename U, std::size_t M>
127 : StaticVector(kIteratorRange, std::begin(array), std::end(array)) {} in StaticVector()
133 template <typename Iterator, typename = std::enable_if_t<is_input_iterator<Iterator>{}>>
135 using V = typename std::iterator_traits<Iterator>::value_type; in StaticVector()
136 static_assert(std::is_constructible_v<value_type, V>, "Incompatible iterator range"); in StaticVector()
141 : size_(std::min(max_size(), static_cast<size_type>(std::distance(first, last)))) { in StaticVector()
142 std::uninitialized_copy(first, first + size_, begin()); in StaticVector()
159 typename = std::enable_if_t<std::is_constructible_v<value_type, E>>>
161 : StaticVector(std::index_sequence<0>{}, std::forward<E>(element), in StaticVector()
162 std::forward<Es>(elements)...) {
178 template <typename U, std::size_t Size, std::size_t... Sizes, typename... Types>
179 StaticVector(InitializerList<U, std::index_sequence<Size, Sizes...>, Types...>&& list) in StaticVector()
180 : StaticVector(std::index_sequence<0, 0, Size>{}, std::make_index_sequence<Size>{}, in StaticVector()
181 std::index_sequence<Sizes...>{}, list.tuple) {}
183 ~StaticVector() { std::destroy(begin(), end()); } in ~StaticVector()
192 std::destroy(begin(), end());
208 iterator begin() { return std::launder(reinterpret_cast<pointer>(data_)); } in begin()
242 value_type element{std::forward<Args>(args)...}; in replace()
243 std::destroy_at(it); in replace()
245 return *construct_at(it, std::move(element)); in replace()
256 const iterator it = construct_at(end(), std::forward<Args>(args)...); in emplace_back()
273 const iterator it = emplace_back(std::move(v)); in push_back()
289 std::destroy_at(it); in unstable_erase()
293 construct_at(it, std::move(back())); in unstable_erase()
294 std::destroy_at(last()); in unstable_erase()
301 template <std::size_t I, typename E, typename... Es>
302 StaticVector(std::index_sequence<I>, E&& element, Es&&... elements) in StaticVector()
303 : StaticVector(std::index_sequence<I + 1>{}, std::forward<Es>(elements)...) { in StaticVector()
304 construct_at(begin() + I, std::forward<E>(element));
308 template <std::size_t I>
309 explicit StaticVector(std::index_sequence<I>) : size_(I) {} in StaticVector()
320 template <std::size_t I, std::size_t ArgIndex, std::size_t ArgCount, std::size_t... Indices,
321 std::size_t Size, std::size_t... Sizes, typename... Args>
322 StaticVector(std::index_sequence<I, ArgIndex, ArgCount>, std::index_sequence<Indices...>, in StaticVector()
323 std::index_sequence<Size, Sizes...>, std::tuple<Args...>& tuple) in StaticVector()
324 : StaticVector(std::index_sequence<I + 1, ArgIndex + ArgCount, Size>{}, in StaticVector()
325 std::make_index_sequence<Size>{}, std::index_sequence<Sizes...>{}, tuple) {
326 construct_at(begin() + I, std::move(std::get<ArgIndex + Indices>(tuple))...);
330 template <std::size_t I, std::size_t ArgIndex, std::size_t ArgCount, std::size_t... Indices,
332 StaticVector(std::index_sequence<I, ArgIndex, ArgCount>, std::index_sequence<Indices...>, in StaticVector()
333 std::index_sequence<>, std::tuple<Args...>& tuple) in StaticVector()
335 construct_at(begin() + I, std::move(std::get<ArgIndex + Indices>(tuple))...); in StaticVector()
339 std::aligned_storage_t<sizeof(value_type), alignof(value_type)> data_[N];
343 template <typename T, std::size_t N>
344 StaticVector(T (&)[N]) -> StaticVector<std::remove_cv_t<T>, N>;
347 template <typename T, typename... Us, typename V = std::decay_t<T>,
348 typename = std::enable_if_t<(std::is_constructible_v<V, Us> && ...)>>
352 template <typename T, std::size_t... Sizes, typename... Types>
353 StaticVector(InitializerList<T, std::index_sequence<Sizes...>, Types...>&&)
356 template <typename T, std::size_t N>
359 auto [to, from] = std::make_pair(this, &other); in swap()
363 auto [min, max] = std::make_pair(size(), other.size()); in swap()
370 std::swap(from, to); in swap()
371 std::swap(min, max); in swap()
375 std::swap_ranges(begin(), begin() + min, other.begin()); in swap()
382 const auto [first, last] = std::make_pair(from->begin() + min, from->begin() + max); in swap()
383 std::uninitialized_move(first, last, to->begin() + min); in swap()
384 std::destroy(first, last); in swap()
386 std::swap(size_, other.size_); in swap()
389 template <typename T, std::size_t N>