Iros
 
Loading...
Searching...
No Matches
virtual_address.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/util/prelude.h"
4
5namespace iris::mm {
7 using Type = uptr;
8
9 struct Mixin {
11
12 template<di::concepts::ImplicitLifetime T>
13 auto typed_pointer() const -> T* {
14 return reinterpret_cast<T*>(static_cast<Self const&>(*this).raw_value());
15 }
16
17 auto void_pointer() const -> void* {
18 return reinterpret_cast<void*>(static_cast<Self const&>(*this).raw_value());
19 }
20 };
21
22 constexpr static bool format_as_pointer = true;
23};
24
26}
Definition strong_int.h:44
uintptr_t uptr
Definition integers.h:36
Definition address_space.cpp:20
di::StrongInt< VirtualAddressTag > VirtualAddress
Definition virtual_address.h:25
Definition virtual_address.h:9
auto void_pointer() const -> void *
Definition virtual_address.h:17
auto typed_pointer() const -> T *
Definition virtual_address.h:13
di::StrongInt< VirtualAddressTag > Self
Definition virtual_address.h:10
Definition virtual_address.h:6
static constexpr bool format_as_pointer
Definition virtual_address.h:22
uptr Type
Definition virtual_address.h:7