Sam Jaffe 7 лет назад
Родитель
Сommit
845256bc9d
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      opaque_typedef_test.cpp

+ 15 - 0
opaque_typedef_test.cpp

@@ -41,3 +41,18 @@ TEST(OpaqueTypedefTest, Conversion) {
   EXPECT_THAT(radian(double(deg)), ::testing::Not(rad));
   EXPECT_THAT(degree(double(rad)), ::testing::Not(deg));
 }
+
+struct meters;
+struct seconds;
+struct meter_per_second;
+CREATE_OPAQUE_TYPEDEF(seconds, double, orderable);
+CREATE_OPAQUE_TYPEDEF(meter_per_second, double, orderable);
+template <typename T> using mix_multiplication = mixed_multiplication<meters, seconds, meter_per_second>;
+CREATE_OPAQUE_TYPEDEF(meters, double, orderable, mix_multiplication);
+
+TEST(OpaqueTypedefTest, MixedFunctions) {
+  meters m{10.0};
+  seconds s{0.5};
+  
+  EXPECT_THAT(m*s, meter_per_second{5.0});
+}