34namespace experimental {
39template <
class... Types>
42template <
class D,
class... Types>
47template <
class D = void,
class... Types>
49 return {{std::forward<Types>(t)... }};
67template <
class T, std::
size_t N >
68class array :
public std::array < T, N > {
73 using std::array < T, N >::array;
78 using std::array < T, N >::operator =;
112 template <
class ... Types >
113 requires ( std::is_same < T, typename std::remove_reference < Types >::type >::value && ... )
144 return make_move_iterator ( this->
begin ( ) );
174 return make_move_iterator ( this->
end ( ) );
184 auto endIter =
end ( );
185 auto beginIter =
begin ( );
196 auto endIter =
end ( );
197 auto beginIter =
begin ( );
208 auto endIter = std::move ( * this ).end ( );
209 auto beginIter = std::move ( * this ).begin ( );
226template<
class T, std::
size_t N >
231 for(
const T& item :
array) {
232 if(!first) out <<
", ";
253template <
typename Base,
typename ... Types >
266template <
typename Base >
Class extending the array class from the standard library. Original reason is to allow printing of th...
Definition: array.hpp:68
auto range() &&
Make range of move begin to end iterators.
Definition: array.hpp:207
auto end() &&
Inherited behavior of end for rvalues.
Definition: array.hpp:173
auto begin() &
Inherited behavior of begin for non-const instance.
Definition: array.hpp:123
auto end() const &
Inherited behavior of end for const instance.
Definition: array.hpp:163
auto begin() const &
Inherited behavior of begin for const instance.
Definition: array.hpp:133
array & operator=(array &&other)=default
array(array &&other)=default
auto end() &
Inherited behavior of end for non-const instance.
Definition: array.hpp:153
auto range() const &
Make range of non-const begin to end iterators.
Definition: array.hpp:195
auto begin() &&
Inherited behavior of begin for rvalues.
Definition: array.hpp:143
auto range() &
Make range of non-const begin to end iterators.
Definition: array.hpp:183
array(const array &other)=default
Implementation of iterator_range, i.e. pair of iterators. The class provides most notably begin and e...
Definition: range.hpp:24
Definition: sigHandler.cpp:20
constexpr array< typename std::remove_reference< Base >::type, sizeof ...(Types)+1 > make_array(Base &&first, Types &&... other)
Equivalent to the make_array from standard library but produces the ext::array.
Definition: array.hpp:254
std::ostream & operator<<(ext::reference_wrapper< std::ostream > &os, std::ostream &(*const func)(std::ostream &))
Overloaded function allowing same operations on wrapped output stream as on the actual output stream,...
Definition: GlobalData.cpp:33
auto begin(Container &&cont) -> decltype(std::forward(cont).begin())
Definition: iterator.hpp:900
void end()
Definition: measurements.cpp:19
std::array< typename return_type_helper< D, Types... >::type, sizeof...(Types)> return_type
Definition: array.hpp:44
constexpr details::return_type< D, Types... > make_array(Types &&... t)
Definition: array.hpp:48
Definition: FordFulkerson.hpp:16
D type
Definition: array.hpp:38