Iros
 
Loading...
Searching...
No Matches
initializer_list.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/types/size_t.h"
4#ifndef DI_NO_USE_STD
5#include <initializer_list>
6#else
7namespace std {
8template<typename T>
9class initializer_list {
10public:
11 using value_type = T;
12 using reference = T&;
13 using const_reference = T const&;
14 using size_type = std::size_t;
15 using iterator = T const*;
16 using const_iterator = iterator;
17
18 constexpr initializer_list() = default;
19
20 constexpr auto size() const -> size_type { return m_size; }
21 constexpr auto begin() const -> iterator { return m_data; }
22 constexpr auto end() const -> iterator { return m_data + m_size; }
23
24private:
25 // This private constructor is called by the compiler to created initializer_list objects.
26 constexpr initializer_list(iterator data, size_type size) : m_data(data), m_size(size) {}
27
28 iterator m_data { nullptr };
29 size_type m_size { 0 };
30};
31}
32#endif
constexpr usize size
Definition gfx_test.cpp:24
constexpr auto iterator(Ring &, RingIterator< Value const > iterator)
Definition ring_operations.h:77
constexpr auto data
Definition data.h:51
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
Definition enable_generate_structed_bindings.h:46
@ T
Definition key.h:29