diff --git a/CMakeLists.txt b/CMakeLists.txt
index 143a2c9..1088839 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,7 +19,7 @@ project(arcana.cpp)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
FetchContent_MakeAvailable(GSL)
diff --git a/README.md b/README.md
index 31bc101..3045a5b 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ You can learn more about API usage in the [arcana.cpp documentation](Source/Arca
### Prerequisites
- CMake 3.15 or higher
-- A C++17 compatible compiler (Visual Studio 2019+, GCC 8+, or Clang 7+)
+- A C++20 compatible compiler (Visual Studio 2022+, GCC 11+, or Clang 12+)
### Building with CMake
diff --git a/Source/Android/Arcana.Android.vcxproj b/Source/Android/Arcana.Android.vcxproj
deleted file mode 100644
index 71104d6..0000000
--- a/Source/Android/Arcana.Android.vcxproj
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Release
- ARM
-
-
- Debug
- ARM64
-
-
- Release
- ARM64
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
- Debug
- x86
-
-
- Release
- x86
-
-
-
-
-
-
- {D3384115-A923-4F26-86B2-CCE99B4241DD}
- Android
- Arcana
- 14.0
- Android
- 3.0
-
-
-
- StaticLibrary
- true
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- false
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- true
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- false
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- true
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- false
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- true
- Clang_5_0
- c++_shared
-
-
- StaticLibrary
- false
- Clang_5_0
- c++_shared
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
- NotUsing
- pch.h
- c++1z
- true
- Enabled
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/Shared/Arcana.vcxitems b/Source/Shared/Arcana.vcxitems
deleted file mode 100644
index a6d20cd..0000000
--- a/Source/Shared/Arcana.vcxitems
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- {5F50DA01-6416-4ABD-9514-28E68FAC01BA}
-
-
-
- %(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/Shared/arcana/string.h b/Source/Shared/arcana/string.h
index 1662fff..ececc5c 100644
--- a/Source/Shared/arcana/string.h
+++ b/Source/Shared/arcana/string.h
@@ -5,19 +5,7 @@
#include
#include
-#ifdef _MSC_VER
#include
-#else
-// llvm-libc++ included with Android NDK r15c hasn't yet promoted the C++1z library fundamentals
-// technical specification to the final C++17 specification for string_view.
-// Force promote the types we need up into the std namespace.
-#include
-namespace std
-{
- using string_view = experimental::string_view;
- using wstring_view = experimental::wstring_view;
-}
-#endif
namespace arcana
{
diff --git a/Source/Windows/Arcana.Windows.Reference.vcxitems b/Source/Windows/Arcana.Windows.Reference.vcxitems
deleted file mode 100644
index 235fbcb..0000000
--- a/Source/Windows/Arcana.Windows.Reference.vcxitems
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- {3B5BA6E6-3B02-4E92-93A7-333AA9DCFD7E}
-
-
-
-
- true
-
-
-
- $(MSBuildThisFileDirectory)
-
-
-
- %(AdditionalIncludeDirectories);$(ArcanaDirectory);$(ArcanaDirectory)..\Shared
-
-
- %(AdditionalDependencies);runtimeobject.lib
-
-
-
-
- {e4c54c47-397b-4d8e-9488-99d79a29ab38}
-
-
-
\ No newline at end of file
diff --git a/Source/Windows/Arcana.Windows.vcxproj b/Source/Windows/Arcana.Windows.vcxproj
deleted file mode 100644
index dd22bce..0000000
--- a/Source/Windows/Arcana.Windows.vcxproj
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- ARM
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e4c54c47-397b-4d8e-9488-99d79a29ab38}
- StaticLibrary
- Arcana
- en-US
- 14.0
- 10.0
-
-
-
- StaticLibrary
- true
- v142
-
-
- StaticLibrary
- true
- v142
-
-
- StaticLibrary
- true
- v142
-
-
- StaticLibrary
- false
- true
- v142
-
-
- StaticLibrary
- false
- true
- v142
-
-
- StaticLibrary
- false
- true
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
- Arcana
-
-
- false
- Arcana
-
-
- false
- Arcana
-
-
- false
- Arcana
-
-
- false
- Arcana
-
-
- false
- Arcana
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
- NotUsing
- true
- $(OutDir)$(TargetName).pdb
- stdcpp17
- $(GslSubmoduleDir)include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
- false
-
-
-
-
-
\ No newline at end of file