diff options
Diffstat (limited to 'klm')
| -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  | 
