From e07f7207fa8e176820643279125066c1b5807629 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 26 Sep 2010 06:46:12 +0000 Subject: [PATCH] 2010-09-26 Tatsuhiro Tsujikawa Rewritten TripletNthType. * src/Triplet.h * test/TripletTest.cc --- ChangeLog | 6 ++++++ src/Triplet.h | 32 ++++++++++++++++---------------- test/TripletTest.cc | 6 +++--- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index ac8f5c0c..d187b3be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-09-26 Tatsuhiro Tsujikawa + + Rewritten TripletNthType. + * src/Triplet.h + * test/TripletTest.cc + 2010-09-26 Tatsuhiro Tsujikawa Sort usedHosts by least used and faster download speed. diff --git a/src/Triplet.h b/src/Triplet.h index 303f55ab..c3988bf8 100644 --- a/src/Triplet.h +++ b/src/Triplet.h @@ -84,22 +84,22 @@ Triplet makeTriplet(const T1& t1, const T2& t2, const T3& t3) return Triplet(t1, t2, t3); } -template +template struct TripletNthType; -template -struct TripletNthType { - typedef T1 type; +template +struct TripletNthType { + typedef typename Triplet::first_type type; }; -template -struct TripletNthType { - typedef T2 type; +template +struct TripletNthType { + typedef typename Triplet::second_type type; }; -template -struct TripletNthType { - typedef T3 type; +template +struct TripletNthType { + typedef typename Triplet::third_type type; }; template @@ -135,13 +135,13 @@ struct TripletGet<3> { template class Triplet2Pair { public: - template - std::pair::type, - typename TripletNthType::type> - operator()(const Triplet& tri) const + template + std::pair::type, + typename TripletNthType::type> + operator()(const Triplet& tri) const { - return std::make_pair::type, - typename TripletNthType::type> + return std::make_pair::type, + typename TripletNthType::type> (TripletGet::get(tri), TripletGet::get(tri)); } }; diff --git a/test/TripletTest.cc b/test/TripletTest.cc index ef99c795..ebc3b015 100644 --- a/test/TripletTest.cc +++ b/test/TripletTest.cc @@ -54,11 +54,11 @@ void TripletTest::testTripletGet() void TripletTest::testTripletNthType() { - TripletNthType::type x = 1; + TripletNthType, 1>::type x = 1; CPPUNIT_ASSERT_EQUAL(1, x); - TripletNthType::type y = 3.14; + TripletNthType, 2>::type y = 3.14; CPPUNIT_ASSERT_EQUAL((double)3.14, y); - TripletNthType::type z = "foo"; + TripletNthType, 3>::type z = "foo"; CPPUNIT_ASSERT_EQUAL(std::string("foo"), z); }