diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2016-03-07 21:57:10 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2016-03-07 21:57:10 +0000 |
commit | ee66eb132857737995fc3c22777d4705f3afd82b (patch) | |
tree | 569ecf5186027e29ca857b053b86fc98bddafc27 /libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp | |
parent | de2d6a303316640952721dc4de1aa08e01abaae0 (diff) | |
download | bcm5719-llvm-ee66eb132857737995fc3c22777d4705f3afd82b.tar.gz bcm5719-llvm-ee66eb132857737995fc3c22777d4705f3afd82b.zip |
non-member swap for array was mistakenly taking const ref params. Fixed and added test. Thanks to Ben Craig for the catch
llvm-svn: 262866
Diffstat (limited to 'libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp')
-rw-r--r-- | libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp b/libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp index 651798e1e79..91ebe419a0a 100644 --- a/libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp +++ b/libcxx/test/std/containers/sequences/array/array.swap/swap.pass.cpp @@ -10,9 +10,10 @@ // <array> // void swap(array& a); +// namespace std { void swap(array<T, N> &x, array<T, N> &y); -#include <array> #include <cassert> +#include <array> // std::array is explicitly allowed to be initialized with A a = { init-list };. // Disable the missing braces warning for this reason. @@ -37,6 +38,22 @@ int main() } { typedef double T; + typedef std::array<T, 3> C; + C c1 = {1, 2, 3.5}; + C c2 = {4, 5, 6.5}; + std::swap(c1, c2); + assert(c1.size() == 3); + assert(c1[0] == 4); + assert(c1[1] == 5); + assert(c1[2] == 6.5); + assert(c2.size() == 3); + assert(c2[0] == 1); + assert(c2[1] == 2); + assert(c2[2] == 3.5); + } + + { + typedef double T; typedef std::array<T, 0> C; C c1 = {}; C c2 = {}; @@ -44,4 +61,14 @@ int main() assert(c1.size() == 0); assert(c2.size() == 0); } + { + typedef double T; + typedef std::array<T, 0> C; + C c1 = {}; + C c2 = {}; + std::swap(c1, c2); + assert(c1.size() == 0); + assert(c2.size() == 0); + } + } |