summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2025-05-06 19:45:03 +0800
committerGitHub <noreply@github.com>2025-05-06 19:45:03 +0800
commit91425ccb6ff0a416b67ef21eb3ecebb49ba3e748 (patch)
treed4823b8bb2c68faaef38e48693432603eaa59068
parent480369a302b15749aafc82feb001fa23db8edbd6 (diff)
Update C++ standard to C++20 (#6980)
* Correct incorrect enum usage on metal * Update C++ standard to C++20 Closes https://github.com/shader-slang/slang/issues/6945 * use bit_cast
-rw-r--r--cmake/CompilerFlags.cmake2
-rw-r--r--source/core/slang-io.cpp2
-rw-r--r--source/slang/slang-ir.h8
-rw-r--r--tools/slang-test/slang-test-main.cpp2
-rw-r--r--tools/test-server/test-server-main.cpp2
5 files changed, 5 insertions, 11 deletions
diff --git a/cmake/CompilerFlags.cmake b/cmake/CompilerFlags.cmake
index 24a2c574f..2019b554b 100644
--- a/cmake/CompilerFlags.cmake
+++ b/cmake/CompilerFlags.cmake
@@ -175,7 +175,7 @@ function(set_default_compile_options target)
ON
# C++ standard
CXX_STANDARD
- 17
+ 20
# pic
POSITION_INDEPENDENT_CODE
ON
diff --git a/source/core/slang-io.cpp b/source/core/slang-io.cpp
index 5490294ca..851c70073 100644
--- a/source/core/slang-io.cpp
+++ b/source/core/slang-io.cpp
@@ -752,7 +752,7 @@ String Path::getRelativePath(String base, String path)
auto result = std::filesystem::relative(p2, p1, ec);
if (ec)
return path;
- return String(UnownedStringSlice(result.generic_u8string().c_str()));
+ return String(reinterpret_cast<const char*>(result.generic_u8string().c_str()));
}
SlangResult Path::remove(const String& path)
diff --git a/source/slang/slang-ir.h b/source/slang/slang-ir.h
index ea784c9a6..5a1ae94f7 100644
--- a/source/slang/slang-ir.h
+++ b/source/slang/slang-ir.h
@@ -7,9 +7,6 @@
// similar in spirit to LLVM (but much simpler).
//
-#if defined(__cpp_lib_bit_cast)
-#include <bit>
-#endif
#include "../compiler-core/slang-source-loc.h"
#include "../compiler-core/slang-source-map.h"
#include "../core/slang-basic.h"
@@ -17,6 +14,7 @@
#include "slang-container-pool.h"
#include "slang-type-system-shared.h"
+#include <bit>
#include <functional>
namespace Slang
@@ -105,11 +103,7 @@ enum IRMemoryOrder
inline int32_t operator&(const IROpMask m, const IROp o)
{
-#if defined(__cpp_lib_bit_cast)
return std::bit_cast<int32_t>(m) & std::bit_cast<int32_t>(o);
-#else
- return (int32_t)m & (int32_t)o;
-#endif
}
inline int32_t operator&(const IROp o, const IROpMask m)
diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp
index c0697b4a4..1fb70ed03 100644
--- a/tools/slang-test/slang-test-main.cpp
+++ b/tools/slang-test/slang-test-main.cpp
@@ -58,7 +58,7 @@ extern "C"
extern "C"
{
- __declspec(dllexport) extern const char* D3D12SDKPath = u8".\\D3D12\\";
+ __declspec(dllexport) extern const char* D3D12SDKPath = ".\\D3D12\\";
}
#endif
diff --git a/tools/test-server/test-server-main.cpp b/tools/test-server/test-server-main.cpp
index 63535ec92..3faa6352f 100644
--- a/tools/test-server/test-server-main.cpp
+++ b/tools/test-server/test-server-main.cpp
@@ -28,7 +28,7 @@ extern "C"
extern "C"
{
- __declspec(dllexport) extern const char* D3D12SDKPath = u8".\\D3D12\\";
+ __declspec(dllexport) extern const char* D3D12SDKPath = ".\\D3D12\\";
}
#endif