diff options
author | Kenneth Heafield <github@kheafield.com> | 2014-01-27 22:18:14 -0800 |
---|---|---|
committer | Kenneth Heafield <github@kheafield.com> | 2014-01-27 22:18:14 -0800 |
commit | 80d4acfb24ed0d72e22caafcc17fa4def686bd78 (patch) | |
tree | c1ac53703b6e1336055b20e5bd2bc52c7a4c4323 | |
parent | b627e35758a8a13944424e811c5742a6d3dd526e (diff) |
Another attempted fix at the sorting iterator for C++11
-rw-r--r-- | klm/util/joint_sort.hh | 2 | ||||
-rw-r--r-- | klm/util/joint_sort_test.cc | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/klm/util/joint_sort.hh b/klm/util/joint_sort.hh index 5589c558..b1ec48e2 100644 --- a/klm/util/joint_sort.hh +++ b/klm/util/joint_sort.hh @@ -90,7 +90,7 @@ template <class KeyIter, class ValueIter> class JointProxy { } friend void swap(JointProxy<KeyIter, ValueIter> first, JointProxy<KeyIter, ValueIter> second) { - first.DeepSwap(second); + first.Inner().DeepSwap(second.Inner()); } private: diff --git a/klm/util/joint_sort_test.cc b/klm/util/joint_sort_test.cc index 4dc85916..b24c602c 100644 --- a/klm/util/joint_sort_test.cc +++ b/klm/util/joint_sort_test.cc @@ -47,4 +47,16 @@ BOOST_AUTO_TEST_CASE(char_int) { BOOST_CHECK_EQUAL(327, values[3]); } +BOOST_AUTO_TEST_CASE(swap_proxy) { + char keys[2] = {0, 1}; + int values[2] = {2, 3}; + detail::JointProxy<char *, int *> first(keys, values); + detail::JointProxy<char *, int *> second(keys + 1, values + 1); + swap(first, second); + BOOST_CHECK_EQUAL(1, keys[0]); + BOOST_CHECK_EQUAL(0, keys[1]); + BOOST_CHECK_EQUAL(3, values[0]); + BOOST_CHECK_EQUAL(2, values[1]); +} + }} // namespace anonymous util |