boost::capy::decomposes_to
Concept for types that decompose to a specific typelist.
Synopsis
template<
typename T,
typename... Types>
concept decomposes_to = requires(T&& t) {
{ detail::decomposed_types(std::forward<T>(t)) } ‐> std::same_as<std::tuple<Types...>>;
};
Description
A type satisfies decomposes_to if it can be decomposed via structured bindings into the specified types. This includes aggregates with matching member types and tuple‐like types with matching element types.
Example
struct result { int a; double b; };
static_assert(decomposes_to<result, int, double>);
static_assert(decomposes_to<std::tuple<int, double>, int, double>);
Template Parameters
| Name | Description |
|---|---|
T |
The type to decompose. |
Types |
The expected element types after decomposition. |
Created with MrDocs