From 5a9e048c1efc3d0697debf968b4aeb056c04c391 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Fri, 16 Jan 2015 19:52:36 +0100 Subject: Redefined function template structs as template aliases --- src/operation/math.h | 40 ++++++++++++++++------------------------ test.cc | 8 ++++---- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/operation/math.h b/src/operation/math.h index 64a5cdb..82740b6 100644 --- a/src/operation/math.h +++ b/src/operation/math.h @@ -9,45 +9,37 @@ template < typename X, typename Y > -struct add { - typedef std::integral_constant< - decltype(X::value + Y::value), - X::value + Y::value - > type; -}; +using add = typename std::integral_constant< + decltype(X::value + Y::value), + X::value + Y::value +>::type; template < typename X, typename Y > -struct substract { - typedef std::integral_constant< - decltype(X::value - Y::value), - X::value - Y::value - > type; -}; +using substract = typename std::integral_constant< + decltype(X::value - Y::value), + X::value - Y::value +>::type; template < typename X, typename Y > -struct multiply { - typedef std::integral_constant< - decltype(X::value * Y::value), - X::value * Y::value - > type; -}; +using multiply = typename std::integral_constant< + decltype(X::value * Y::value), + X::value * Y::value +>::type; template < typename X, typename Y > -struct divide { - typedef std::integral_constant< - decltype(X::value / Y::value), - X::value / Y::value - > type; -}; +using divide = typename std::integral_constant< + decltype(X::value / Y::value), + X::value / Y::value +>::type; } diff --git a/test.cc b/test.cc index 5a7a6eb..219bfe5 100644 --- a/test.cc +++ b/test.cc @@ -10,10 +10,10 @@ TEST_F(TypeAsValueTest, Value) { } TEST_F(TypeAsValueTest, BasicMath) { - EXPECT_EQ(3, ( tav::add, tav::Int<2>>::type::value )); - EXPECT_EQ(4, ( tav::substract, tav::Int<6>>::type::value )); - EXPECT_EQ(42, ( tav::multiply, tav::Int<21>>::type::value )); - EXPECT_EQ(5, ( tav::divide, tav::Int<2>>::type::value )); + EXPECT_EQ(3, ( tav::add, tav::Int<2>>::value )); + EXPECT_EQ(4, ( tav::substract, tav::Int<6>>::value )); + EXPECT_EQ(42, ( tav::multiply, tav::Int<21>>::value )); + EXPECT_EQ(5, ( tav::divide, tav::Int<2>>::value )); } int main(int argc, char **argv) { -- cgit v1.2.3