Skip to content

Commit ced00f5

Browse files
fanquakeMacroFakehebasto
committed
fs: work around u8path deprecated-declaration warnings with libc++
When building in c++20 mode using libc++, the following warning is emitted: ```bash ./fs.h:72:29: warning: 'u8path<std::string>' is deprecated [-Wdeprecated-declarations] return std::filesystem::u8path(utf8_str); ^ /usr/lib/llvm-14/bin/../include/c++/v1/__filesystem/u8path.h:72:27: note: 'u8path<std::string>' has been explicitly marked deprecated here _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T ^ /usr/lib/llvm-14/bin/../include/c++/v1/__config:1042:43: note: expanded from macro '_LIBCPP_DEPRECATED_WITH_CHAR8_T' ^ /usr/lib/llvm-14/bin/../include/c++/v1/__config:1007:48: note: expanded from macro '_LIBCPP_DEPRECATED' ^ 1 warning generated. ``` as u8path<std::string> is deprecated starting with c++20. Fixes: #24682. Co-authored-by: MacroFake <[email protected]> Co-authored-by: Hennadii Stepanov <[email protected]>
1 parent 888628c commit ced00f5

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

build_msvc/common.init.vcxproj.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<AdditionalOptions>/utf-8 /Zc:__cplusplus /std:c++20 %(AdditionalOptions)</AdditionalOptions>
9191
<DisableSpecificWarnings>4018;4244;4267;4334;4715;4805;4834</DisableSpecificWarnings>
9292
<TreatWarningAsError>true</TreatWarningAsError>
93-
<PreprocessorDefinitions>_SILENCE_CXX20_U8PATH_DEPRECATION_WARNING;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
93+
<PreprocessorDefinitions>_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9494
<AdditionalIncludeDirectories>..\..\src;..\..\src\minisketch\include;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9595
</ClCompile>
9696
<Link>

src/fs.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ class path : public std::filesystem::path
6969

7070
static inline path u8path(const std::string& utf8_str)
7171
{
72+
#if __cplusplus < 202002L
7273
return std::filesystem::u8path(utf8_str);
74+
#else
75+
return std::filesystem::path(std::u8string{utf8_str.begin(), utf8_str.end()});
76+
#endif
7377
}
7478

7579
// Disallow implicit std::string conversion for absolute to avoid

0 commit comments

Comments
 (0)