Sam Jaffe 7 роки тому
батько
коміт
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});
+}