LiteFX::Enumerable::Enumerable¶
Creates a new Enumerable instance from an underlying range.
Synopsis¶
Declared in <litefx/containers.hpp>
template<typename TRange>
requires (
!is_enumerable_v<std::remove_cvref_t<TRange>> &&
std::ranges::viewable_range<TRange>&& std::ranges::forward_range<TRange> && // The source range must be viewable and forward iterable.
std::convertible_to<std::ranges::range_reference_t<decltype(std::views::common(std::declval<TRange>()))>, T> && // The elements of the source range must be convertible to the elements of the enumerable.
!(std::is_reference_v<T> && !std::is_reference_v<std::ranges::range_reference_t<decltype(std::views::common(std::declval<TRange>()))>>) // The source range must not yield temporaries (they would dangle).
)
Enumerable(TRange&& range);Template Parameters¶
| Name | Description |
|---|---|
| TRange | The type of the underlying range. |
Parameters¶
| Name | Description |
|---|---|
| range | A reference of the underlying range. |