You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libcxx/test/std/containers/sequences/vector/vector.cons
Volodymyr Sapsai 354589c472 [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch.
We already have a specialization that will use memcpy for construction
of trivial types from an iterator range like

    std::vector<int>(int *, int *);

But if we have const-ness mismatch like

    std::vector<int>(const int *, const int *);

we would use a slow path that copies each element individually. This change
enables the optimal specialization for const-ness mismatch. Fixes PR37574.

Contributions to the patch are made by Arthur O'Dwyer, Louis Dionne.

rdar://problem/40485845

Reviewers: mclow.lists, EricWF, ldionne, scanon

Reviewed By: ldionne

Subscribers: christof, ldionne, howard.hinnant, cfe-commits

Differential Revision: https://reviews.llvm.org/D48342



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@350583 91177308-0d34-0410-b5e6-96231b3b80d8
6 years ago
..
assign_copy.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 9 years ago
assign_initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago
assign_iter_iter.pass.cpp [libc++] Fix PR34898 - vector iterator constructors and assign method perform push_back instead of emplace_back. 7 years ago
assign_move.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago
assign_size_value.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 9 years ago
construct_default.pass.cpp [libcxx] [test] Untabify, NFC. 7 years ago
construct_iter_iter.pass.cpp [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch. 6 years ago
construct_iter_iter_alloc.pass.cpp Get tests compiling with -Wunused-local-typedef 6 years ago
construct_size.pass.cpp fix warnings only produced by apple-clang 8 years ago
construct_size_value.pass.cpp [PATCH] D25483: [libcxx] [test] Fix non-Standard assumptions about how many elements are allocated 8 years ago
construct_size_value_alloc.pass.cpp Guard libc++ specific c.__invariants() tests in LIBCPP_ASSERT macros 9 years ago
copy.pass.cpp [libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4. 8 years ago
copy_alloc.pass.cpp [libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4. 8 years ago
deduct.fail.cpp [libcxx] [test] Strip trailing whitespace. NFC. 7 years ago
deduct.pass.cpp [libcxx] [test] Strip trailing whitespace. NFC. 7 years ago
default.recursive.pass.cpp Move test into test/std subdirectory. 10 years ago
default_noexcept.pass.cpp Update a couple of vector<bool> tests that were testing libc++-specific bahavior. Thanks to Andrey Maksimov for the catch. 6 years ago
dtor_noexcept.pass.cpp [libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3. 8 years ago
initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago
initializer_list_alloc.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago
move.pass.cpp Remove unused include of "verbose_assert.h" 6 years ago
move_alloc.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago
move_assign_noexcept.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 9 years ago
move_noexcept.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 9 years ago
op_equal_initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 8 years ago