sparrow 1.0.0
Loading...
Searching...
No Matches
sparrow::layout Concept Reference

Concept for layouts. More...

#include <layout_concept.hpp>

Concept definition

template<class T>
concept sparrow::layout = requires(const T& t) {
typename T::inner_value_type;
typename T::value_type;
typename T::const_reference;
typename T::size_type;
typename T::const_iterator;
typename T::const_reverse_iterator;
{ t[std::size_t()] } -> std::same_as<typename T::const_reference>;
{ t.size() } -> std::same_as<typename T::size_type>;
{ t.begin() } -> std::same_as<typename T::const_iterator>;
{ t.end() } -> std::same_as<typename T::const_iterator>;
{ t.cbegin() } -> std::same_as<typename T::const_iterator>;
{ t.cend() } -> std::same_as<typename T::const_iterator>;
{ t.rbegin() } -> std::same_as<typename T::const_reverse_iterator>;
{ t.rend() } -> std::same_as<typename T::const_reverse_iterator>;
{ t.crbegin() } -> std::same_as<typename T::const_reverse_iterator>;
{ t.crend() } -> std::same_as<typename T::const_reverse_iterator>;
}
Concept for layouts.

Detailed Description

Concept for layouts.

A layout is an implementation of one of the Apache Arrow Layouts defined at https://arrow.apache.org/docs/format/Columnar.html#

It provides an API similar to that of a constant linear standard container, with additional requirements on the access operator.

Parameters
TLayout type to check.

Definition at line 41 of file layout_concept.hpp.