Path: blob/master/thirdparty/openxr/src/common/stdfs_conditions.h
9906 views
// Copyright (c) 2017-2025 The Khronos Group Inc.1// Copyright (c) 2017 Valve Corporation2// Copyright (c) 2017 LunarG, Inc.3//4// SPDX-License-Identifier: Apache-2.0 OR MIT56#ifndef _STDFS_CONDITIONS_H7#define _STDFS_CONDITIONS_H89// If the C++ macro is set to the version containing C++17, it must support10// the final C++17 package11#if __cplusplus >= 201703L12#define USE_EXPERIMENTAL_FS 013#define USE_FINAL_FS 11415#elif defined(_MSC_VER) && _MSC_VER >= 19001617#if defined(_HAS_CXX17) && _HAS_CXX1718// When MSC supports c++17 use <filesystem> package.19#define USE_EXPERIMENTAL_FS 020#define USE_FINAL_FS 121#endif // !_HAS_CXX172223// GCC supports the experimental filesystem items starting in GCC 624#elif (__GNUC__ >= 6)25#define USE_EXPERIMENTAL_FS 126#define USE_FINAL_FS 02728// If Clang, check for feature support29#elif defined(__clang__) && (__cpp_lib_filesystem || __cpp_lib_experimental_filesystem)30#if __cpp_lib_filesystem31#define USE_EXPERIMENTAL_FS 032#define USE_FINAL_FS 133#else34#define USE_EXPERIMENTAL_FS 135#define USE_FINAL_FS 036#endif3738// If all above fails, fall back to standard C++ and OS-specific items39#else40#define USE_EXPERIMENTAL_FS 041#define USE_FINAL_FS 042#endif4344#endif // !_STDFS_CONDITIONS_H454647