Created on 2026-04-08.00:00:00 last changed 1 week ago
Proposed resolution:
This wording is relative to N5032.
Modify [linalg.scaled.scaledaccessor] as indicated:
namespace std::linalg {
template<class ScalingFactor, class NestedAccessor>
class scaled_accessor {
public:
using element_type =
const decltype(declval<const ScalingFactor&>() *
typename declval<NestedAccessor::element_type>(
declval<typename NestedAccessor::reference>()));
[…]
};
}
Modify [linalg.conj.conjugatedaccessor] as indicated:
namespace std::linalg {
template<class NestedAccessor>
class scaled_accessor {
public:
using element_type =
const decltype(conj-if-needed(
typename declval<NestedAccessor::element_type>(
declval<typename NestedAccessor::reference>())));
[…]
};
}
The scaled_accessor defines element_type as
const decltype(declval<ScalingFactor>() * ...), but its access
returns (scaling_factor() * ...), where scaling_factor()
returns const ScalingFactor&.
Furthermore, both scaled_accessor and conjugated_accessor's
access construct NestedAccessor::element_type via
nested-accessor.access(p, i), but this may not be well-formed.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2026-04-11 09:53:42 | admin | set | messages: + msg16259 |
| 2026-04-08 00:00:00 | admin | create | |