Explorar el Código

ggml-backend : make path_str compatible with C++20 (#12269)

Jason C.H hace 10 meses
padre
commit
6fefc05a7a
Se han modificado 2 ficheros con 8 adiciones y 0 borrados
  1. 1 0
      AUTHORS
  2. 7 0
      ggml/src/ggml-backend-reg.cpp

+ 1 - 0
AUTHORS

@@ -1045,3 +1045,4 @@ zrm <trustiosity.zrm@gmail.com>
 蕭澧邦 <45505768+shou692199@users.noreply.github.com>
 谢乃闻 <sienaiwun@users.noreply.github.com>
 Нияз Гарифзянов <112617865+garrnizon@users.noreply.github.com>
+Jason C.H <ctrysbita@outlook.com>

+ 7 - 0
ggml/src/ggml-backend-reg.cpp

@@ -76,7 +76,14 @@ namespace fs = std::filesystem;
 static std::string path_str(const fs::path & path) {
     std::string u8path;
     try {
+#if defined(__cpp_lib_char8_t)
+        // C++20 and later: u8string() returns std::u8string
+        std::u8string u8str = path.u8string();
+        u8path = std::string(reinterpret_cast<const char*>(u8str.c_str()));
+#else
+        // C++17: u8string() returns std::string
         u8path = path.u8string();
+#endif
     } catch (...) {
     }
     return u8path;