39 typename RemoveRef<T>::ScalarType s,
40 typename RemoveRef<T>::ScalarType& sR) {
41 typename RemoveRef<T>::ScalarType;
46 { obj.u() } -> std::convertible_to<
decltype(s)>;
47 { obj.v() } -> std::convertible_to<
decltype(s)>;
49 { obj <=> obj } -> std::convertible_to<std::partial_ordering>;
51 { obj(uint()) } -> std::convertible_to<
decltype(s)>;
52 { obj[uint()] } -> std::convertible_to<
decltype(s)>;
56 { obj.u() } -> std::same_as<
decltype(sR)>;
57 { obj.v() } -> std::same_as<
decltype(sR)>;
58 { obj.setU(s) } -> std::same_as<void>;
59 { obj.setV(s) } -> std::same_as<void>;
60 { obj.set(s, s) } -> std::same_as<void>;
62 { obj(uint()) } -> std::same_as<
decltype(sR)>;
63 { obj[uint()] } -> std::same_as<
decltype(sR)>;