@@ -80,7 +80,7 @@ template <reflection_range R = initializer_list<info>>
80
80
81
81
// reflect expression results
82
82
template <typename T>
83
- consteval auto reflect_value(T ) -> info;
83
+ consteval auto reflect_value(const T& ) -> info;
84
84
template <typename T>
85
85
consteval auto reflect_object(T &) -> info;
86
86
template <typename T>
@@ -979,8 +979,8 @@ public:
979
979
}
980
980
981
981
consteval access_context via (info new_naming_class) const {
982
- if (!is_class_type (new_naming_class) || ! is_complete_type (new_naming_class) )
983
- throw " naming class must be a reflection of a complete class type" ;
982
+ if (!is_class_type (new_naming_class))
983
+ throw " naming class must be a reflection of a class type" ;
984
984
985
985
return access_context{d_scope, new_naming_class};
986
986
}
@@ -1433,11 +1433,9 @@ consteval auto is_user_declared(info r) -> bool {
1433
1433
template <typename T>
1434
1434
requires (!is_reference_v<T> &&
1435
1435
__metafunction (detail::__metafn_is_structural_type, ^^T))
1436
- consteval auto reflect_value (T r) -> info {
1437
- constexpr info Ty = type_of (^^r);
1438
-
1439
- return __metafunction (detail::__metafn_reflect_result, Ty,
1440
- static_cast <typename [:Ty:] &&>(r));
1436
+ consteval auto reflect_value (const T &r) -> info {
1437
+ return __metafunction (detail::__metafn_reflect_result, ^^T,
1438
+ static_cast <T>(r));
1441
1439
}
1442
1440
1443
1441
// Returns a reflection of the object designated by the provided argument.
0 commit comments