IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
mem_types.hxx
Go to the documentation of this file.
1
3
4#pragma once
5#include <ice/base.hxx>
7
8namespace ice
9{
10
11 struct usize;
12 struct isize;
13 struct meminfo;
14
15 enum class ualign : ice::u32;
16
17 struct Data;
18 struct Memory;
19
20 template<bool WithDebugInfo>
21 struct AllocatorBase;
22
24
26
27 // MEMORY TYPE CONCEPTS
28
29 namespace concepts
30 {
31
32 template<typename T>
33 concept RWDataObject = requires(T t) {
34 { t.location } -> std::convertible_to<void*>;
35 { t.size } -> std::convertible_to<ice::usize>;
36 { t.alignment } -> std::convertible_to<ice::ualign>;
37 };
38
39 template<typename T>
40 concept RODataObject = requires(T t) {
41 { t.location } -> std::convertible_to<void const*>;
42 { t.size } -> std::convertible_to<ice::usize>;
43 { t.alignment } -> std::convertible_to<ice::ualign>;
44 };
45
46 } // namespace concepts
47
48} // namespace ice
Definition mem_allocator.hxx:106
Definition mem_types.hxx:40
Definition mem_types.hxx:33
Definition container_concepts.hxx:12
SPDX-License-Identifier: MIT.
Definition array.hxx:12
std::uint32_t u32
Definition types.hxx:26
ice::AllocatorBase< ice::build::is_debug||ice::build::is_develop > Allocator
Definition mem_types.hxx:25
ualign
Definition mem_size_types.hxx:39
Definition mem_allocator.hxx:14
Definition mem_data.hxx:17
Definition mem_memory.hxx:13
Represents a signed size value on the given platform.
Definition mem_size_types.hxx:14
Definition mem_size_types.hxx:59
Represents a unsigned size value on the given platform.
Definition mem_size_types.hxx:26