diff options
-rw-r--r-- | src/operation/math.h | 40 | ||||
-rw-r--r-- | 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; } @@ -10,10 +10,10 @@ TEST_F(TypeAsValueTest, Value) { } TEST_F(TypeAsValueTest, BasicMath) { - EXPECT_EQ(3, ( tav::add<tav::Int<1>, tav::Int<2>>::type::value )); - EXPECT_EQ(4, ( tav::substract<tav::Int<10>, tav::Int<6>>::type::value )); - EXPECT_EQ(42, ( tav::multiply<tav::Int<2>, tav::Int<21>>::type::value )); - EXPECT_EQ(5, ( tav::divide<tav::Int<10>, tav::Int<2>>::type::value )); + EXPECT_EQ(3, ( tav::add<tav::Int<1>, tav::Int<2>>::value )); + EXPECT_EQ(4, ( tav::substract<tav::Int<10>, tav::Int<6>>::value )); + EXPECT_EQ(42, ( tav::multiply<tav::Int<2>, tav::Int<21>>::value )); + EXPECT_EQ(5, ( tav::divide<tav::Int<10>, tav::Int<2>>::value )); } int main(int argc, char **argv) { |