[paludis-commits] r4092 - in trunk: . paludis/util
ciaranm at svn.pioto.org
ciaranm at svn.pioto.org
Sun Dec 16 18:55:21 UTC 2007
Author: ciaranm
Date: 2007-12-16 18:55:18 +0000 (Sun, 16 Dec 2007)
New Revision: 4092
Modified:
trunk/ChangeLog
trunk/paludis/util/indirect_iterator.hh
trunk/paludis/util/indirect_iterator_TEST.cc
Log:
Let IndirectIterator work on iterators too
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-12-16 18:42:47 UTC (rev 4091)
+++ trunk/ChangeLog 2007-12-16 18:55:18 UTC (rev 4092)
@@ -7,6 +7,10 @@
2007-12-16 Ciaran McCreesh
+ * paludis/util/: Let IndirectIterator work on iterators too.
+
+2007-12-16 Ciaran McCreesh
+
* paludis/: DepLabel work.
2007-12-16 Piotr Jaroszyński
Modified: trunk/paludis/util/indirect_iterator.hh
===================================================================
--- trunk/paludis/util/indirect_iterator.hh 2007-12-16 18:42:47 UTC (rev 4091)
+++ trunk/paludis/util/indirect_iterator.hh 2007-12-16 18:55:18 UTC (rev 4092)
@@ -29,6 +29,12 @@
namespace paludis
{
template <typename T_>
+ struct IndirectIteratorValueType
+ {
+ typedef typename std::iterator_traits<T_>::value_type Type;
+ };
+
+ template <typename T_>
struct IndirectIteratorValueType<T_ *>
{
typedef T_ Type;
Modified: trunk/paludis/util/indirect_iterator_TEST.cc
===================================================================
--- trunk/paludis/util/indirect_iterator_TEST.cc 2007-12-16 18:42:47 UTC (rev 4091)
+++ trunk/paludis/util/indirect_iterator_TEST.cc 2007-12-16 18:55:18 UTC (rev 4092)
@@ -19,6 +19,8 @@
*/
#include <paludis/util/indirect_iterator-impl.hh>
+#include <paludis/util/join.hh>
+#include <paludis/util/iterator_funcs.hh>
#include <test/test_runner.hh>
#include <test/test_framework.hh>
#include <vector>
@@ -136,5 +138,24 @@
std::for_each(v.begin(), v.end(), Deleter());
}
} test_indirect_iterator_list_p_int;
+
+ struct IndirectIteratorListListIterIntTest : TestCase
+ {
+ IndirectIteratorListListIterIntTest() : TestCase("list<list<int>::iterator>") { }
+
+ void run()
+ {
+ std::list<int> v;
+ v.push_back(5);
+ v.push_back(10);
+
+ std::list<std::list<int>::iterator> w;
+ w.push_back(v.begin());
+ w.push_back(next(v.begin()));
+
+ TEST_CHECK_EQUAL(join(indirect_iterator(w.begin()), indirect_iterator(w.end()), ", "), "5, 10");
+
+ }
+ } test_indirect_iterator_list_list_int_iter;
}
More information about the paludis-commits
mailing list