🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
FileSystem.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "FileSystemSimple.hpp"
25#include <string>
26
27// 是否允许使用 std::experimental::filesystem 的c++实验特性,如果存在的话
28// #define AST_USE_STD_FILESYSTEM_EXPERIMENTAL
29
30// 判断 c++ 标准库是否有std::filesystem
31#ifdef __cpp_lib_filesystem
32# include <filesystem>
33# define _A_STD_FILESYSTEM std::filesystem
34#elif defined(__cplusplus) && __cplusplus >= 201703L
35# include <filesystem>
36# define _A_STD_FILESYSTEM std::filesystem
37#elif defined AST_USE_STD_FILESYSTEM_EXPERIMENTAL
38# define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
39# if defined _MSC_VER
40# include <experimental/filesystem>
41# define _A_STD_FILESYSTEM std::experimental::filesystem
42# elif defined(__has_include) && __has_include(<experimental/filesystem>) && defined AST_USE_STD_FILESYSTEM_EXPERIMENTAL
43# include <experimental/filesystem>
44# define _A_STD_FILESYSTEM std::experimental::filesystem
45# endif
46#else
47# undef _A_STD_FILESYSTEM
48#endif
49
50
51AST_NAMESPACE_BEGIN
52
53
60// 如果 c++ 标准库没有 filesystem功能,则切换到ast项目对filesystem功能的简化实现
61#if defined(_A_STD_FILESYSTEM) && defined(AST_USE_STD_FILESYSTEM)
62// #pragma message("use std::filesystem")
63namespace filesystem = _A_STD_FILESYSTEM;
64#else
65// #pragma message("use ast::simple_fs")
66namespace filesystem = fs_simple;
67#endif
68
69namespace fs = filesystem;
70
71
75AST_UTIL_API std::string aGetModulePathFromAddress(void* addr);
76
79AST_UTIL_API std::string aLibDir();
80
81
84AST_UTIL_API std::string aExeDir();
85
86
89AST_UTIL_API std::string aLibPath();
90
91
94AST_UTIL_API std::string aExePath();
95
96
97
101AST_NAMESPACE_END
102
std::string aGetModulePathFromAddress(void *addr)
获取函数、变量所在模块的路径
定义 FileSystem.cpp:62
std::string aExePath()
获取当前的可执行文件路径
定义 FileSystem.cpp:125
std::string aExeDir()
获取当前的可执行文件所在目录
定义 FileSystem.cpp:115
std::string aLibDir()
获取当前的AstUtil动态库所在目录
定义 FileSystem.cpp:110
std::string aLibPath()
获取当前的AstUtil动态库的名称
定义 FileSystem.cpp:120