mirror of
https://github.com/zeux/pugixml.git
synced 2024-12-25 20:14:10 +08:00
Work around 'unreferenced function' warnings in NO_STL builds
Normally, as_utf8_begin et al are used in STL functions but when STL is disabled, these are only used if the target platform lacks first class support for wchar_t FILE* APIs. With some warning levels we consequently can get warnings about these functions not being referenced. Not defining these in the first place is difficult because of the complexity of the selection logic for open_file_wide so for now just mark these as unused. The strange (void)& syntax is needed for MSVC to not trigger another warning... The workaround is narrowly scoped to avoid unforeseen compatibility issues. Fixes #619.
This commit is contained in:
parent
ac0ef854e0
commit
c691c6b401
@ -5054,6 +5054,14 @@ PUGI_IMPL_NS_BEGIN
|
||||
#if defined(PUGI_IMPL_MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR)))
|
||||
PUGI_IMPL_FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode)
|
||||
{
|
||||
#ifdef PUGIXML_NO_STL
|
||||
// ensure these symbols are consistently referenced to avoid 'unreferenced function' warnings
|
||||
// note that generally these functions are used in STL builds, but PUGIXML_NO_STL leaves the only usage in convert_path_heap
|
||||
(void)&as_utf8_begin;
|
||||
(void)&as_utf8_end;
|
||||
(void)&strlength_wide;
|
||||
#endif
|
||||
|
||||
#if defined(PUGI_IMPL_MSVC_CRT_VERSION) && PUGI_IMPL_MSVC_CRT_VERSION >= 1400
|
||||
FILE* file = NULL;
|
||||
return _wfopen_s(&file, path, mode) == 0 ? file : NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user