#include <snapshot.hpp>
template<typename PolicyT, typename ValueT>
policy.capture(value);
requires std::is_object_v<decltype(policy.capture(value))>;
requires std::move_constructible<decltype(policy.capture(value))>;
{ policy.matches(std::declval<const decltype(policy.capture(value))&>(), value) } -> std::convertible_to<bool>;
} && (!requires(const PolicyT& policy, const ValueT& value) { policy.identity(value); } ||
requires(const PolicyT& policy, const ValueT& value) { { policy.identity(value) } -> std::convertible_to<const void*>; })
Definition snapshot.hpp:49