25#include "AstUtil/StringView.hpp"
26#include "AstUtil/Encode.hpp"
45#if defined(_WIN32) || defined(AST_PARSED_BY_DOXYGEN)
55inline std::filebuf*
openfilebuf(std::filebuf& buf,
const char* filepath, std::ios_base::openmode mode)
61 return buf.open(wpath.c_str(), mode);
65 return buf.open(filepath, mode);
84 explicit ifstream(
const char* filepath, std::ios_base::openmode mode = std::ios::in)
89 explicit ifstream(
const std::string& filepath, std::ios_base::openmode mode = std::ios::in)
91 open(filepath.c_str(), mode);
97 void open(
const char* filepath, std::ios_base::openmode mode = std::ios::in)
100 if (detail::openfilebuf(*rdbuf(), filepath, mode | std::ios::in))
103 setstate(std::ios::failbit);
115 explicit ofstream(
const char* filepath, std::ios_base::openmode mode = std::ios::out)
117 open(filepath, mode);
120 explicit ofstream(
const std::string& filepath, std::ios_base::openmode mode = std::ios::out)
122 open(filepath.c_str(), mode);
128 void open(
const char* filepath, std::ios_base::openmode mode = std::ios::out)
131 if (detail::openfilebuf(*rdbuf(), filepath, mode | std::ios::out))
134 setstate(std::ios::failbit);
146 explicit fstream(
const char* filepath, std::ios_base::openmode mode = std::ios::in | std::ios::out)
148 open(filepath, mode);
151 explicit fstream(
const std::string& filepath, std::ios_base::openmode mode = std::ios::in | std::ios::out)
153 open(filepath.c_str(), mode);
159 void open(
const char* filepath, std::ios_base::openmode mode = std::ios::in | std::ios::out)
161 if (detail::openfilebuf(*rdbuf(), filepath, mode))
164 setstate(std::ios::failbit);
std::filebuf * openfilebuf(std::filebuf &buf, const char *filepath, std::ios_base::openmode mode)
以 UTF-8 编码的路径打开文件缓冲
定义 FileStream.hpp:55
以 UTF-8 编码的路径打开的文件输入输出流,语义见 ifstream
定义 FileStream.hpp:142
void open(const char *filepath, std::ios_base::openmode mode=std::ios::in|std::ios::out)
打开文件
定义 FileStream.hpp:159
以 UTF-8 编码的路径打开的文件输入流
定义 FileStream.hpp:80
void open(const char *filepath, std::ios_base::openmode mode=std::ios::in)
打开文件
定义 FileStream.hpp:97
以 UTF-8 编码的路径打开的文件输出流,语义见 ifstream
定义 FileStream.hpp:111
void open(const char *filepath, std::ios_base::openmode mode=std::ios::out)
打开文件
定义 FileStream.hpp:128
errc_t aUtf8ToWide(const char *utf8, std::wstring &wide)
将UTF-8编码的字符串转换为宽字符编码
定义 Encode.cpp:258