page_table: Allow page tables to be moved

Makes page tables and virtual buffers able to be moved, but not copied,
making the interface more flexible.

Previously, with the destructor specified, but no move assignment or
constructor specified, they wouldn't be implicitly generated.
This commit is contained in:
Lioncash
2020-11-17 19:58:41 -05:00
parent 3cfd962ef4
commit b3c8997829
4 changed files with 30 additions and 9 deletions

View File

@ -4,6 +4,8 @@
#pragma once
#include <tuple>
#include "common/common_types.h"
#include "common/memory_hook.h"
#include "common/virtual_buffer.h"
@ -47,7 +49,13 @@ struct SpecialRegion {
*/
struct PageTable {
PageTable();
~PageTable();
~PageTable() noexcept;
PageTable(const PageTable&) = delete;
PageTable& operator=(const PageTable&) = delete;
PageTable(PageTable&&) noexcept = default;
PageTable& operator=(PageTable&&) noexcept = default;
/**
* Resizes the page table to be able to accomodate enough pages within