41static_assert(std::is_same_v<double, RawType<double>::type>,
"RawType error");
42static_assert(std::is_same_v<double, RawType<const double>::type>,
44static_assert(std::is_same_v<double, RawType<volatile double>::type>,
46static_assert(std::is_same_v<double, RawType<const volatile double>::type>,
49static_assert(std::is_same_v<double, RawType<double *>::type>,
"RawType error");
50static_assert(std::is_same_v<double, RawType<const double *>::type>,
52static_assert(std::is_same_v<double, RawType<volatile double *>::type>,
54static_assert(std::is_same_v<double, RawType<const volatile double *>::type>,
57static_assert(std::is_same_v<double, RawType<double *const>::type>,
59static_assert(std::is_same_v<double, RawType<const double *const>::type>,
61static_assert(std::is_same_v<double, RawType<volatile double *const>::type>,
64 std::is_same_v<double, RawType<const volatile double *const>::type>,
67static_assert(std::is_same_v<double, RawType<double *volatile>::type>,
69static_assert(std::is_same_v<double, RawType<const double *volatile>::type>,
71static_assert(std::is_same_v<double, RawType<volatile double *volatile>::type>,
74 std::is_same_v<double, RawType<const volatile double *volatile>::type>,
77static_assert(std::is_same_v<double, RawType<double *const volatile>::type>,
80 std::is_same_v<double, RawType<const double *const volatile>::type>,
83 std::is_same_v<double, RawType<volatile double *const volatile>::type>,
85static_assert(std::is_same_v<
89static_assert(std::is_same_v<double, RawType<std::shared_ptr<double>>::type>,
92 std::is_same_v<double, RawType<const std::shared_ptr<double>>::type>,
95 std::is_same_v<double, RawType<volatile std::shared_ptr<double>>::type>,
98 std::is_same_v<double,
99 RawType<const volatile std::shared_ptr<double>>::type>,
103 std::is_same_v<double, RawType<std::shared_ptr<const double>>::type>,
106 std::is_same_v<double, RawType<const std::shared_ptr<const double>>::type>,
109 std::is_same_v<double,
110 RawType<volatile std::shared_ptr<const double>>::type>,
113 std::is_same_v<double,
114 RawType<const volatile std::shared_ptr<const double>>::type>,
118 std::is_same_v<double, RawType<std::shared_ptr<volatile double>>::type>,
121 std::is_same_v<double,
122 RawType<const std::shared_ptr<volatile double>>::type>,
125 std::is_same_v<double,
126 RawType<volatile std::shared_ptr<volatile double>>::type>,
130 double, RawType<const volatile std::shared_ptr<volatile double>>::type>,
134 std::is_same_v<double,
135 RawType<std::shared_ptr<const volatile double>>::type>,
138 std::is_same_v<double,
139 RawType<const std::shared_ptr<const volatile double>>::type>,
143 double, RawType<volatile std::shared_ptr<const volatile double>>::type>,
148 RawType<const volatile std::shared_ptr<const volatile double>>::type>,
std::decay< typenamestd::remove_pointer< T >::type >::type type