Add inline namespace fmt::v5

This commit is contained in:
Victor Zverovich
2018-05-12 08:33:51 -07:00
parent b64b24ebc5
commit 838400d29b
12 changed files with 73 additions and 61 deletions

View File

@@ -7,7 +7,7 @@
#include "fmt/format-inl.h"
namespace fmt {
FMT_BEGIN_NAMESPACE
template struct internal::basic_data<void>;
@@ -44,4 +44,4 @@ template FMT_API int internal::char_traits<wchar_t>::format_float(
template FMT_API int internal::char_traits<wchar_t>::format_float(
wchar_t *buffer, std::size_t size, const wchar_t *format,
unsigned width, int precision, long double value);
} // namespace fmt
FMT_END_NAMESPACE

View File

@@ -64,20 +64,21 @@ inline std::size_t convert_rwcount(std::size_t count) { return count; }
#endif
}
fmt::BufferedFile::~BufferedFile() FMT_NOEXCEPT {
FMT_BEGIN_NAMESPACE
BufferedFile::~BufferedFile() FMT_NOEXCEPT {
if (file_ && FMT_SYSTEM(fclose(file_)) != 0)
fmt::report_system_error(errno, "cannot close file");
report_system_error(errno, "cannot close file");
}
fmt::BufferedFile::BufferedFile(
fmt::cstring_view filename, fmt::cstring_view mode) {
BufferedFile::BufferedFile(cstring_view filename, cstring_view mode) {
FMT_RETRY_VAL(file_,
FMT_SYSTEM(fopen(filename.c_str(), mode.c_str())), FMT_NULL);
if (!file_)
FMT_THROW(system_error(errno, "cannot open file {}", filename.c_str()));
}
void fmt::BufferedFile::close() {
void BufferedFile::close() {
if (!file_)
return;
int result = FMT_SYSTEM(fclose(file_));
@@ -89,14 +90,14 @@ void fmt::BufferedFile::close() {
// A macro used to prevent expansion of fileno on broken versions of MinGW.
#define FMT_ARGS
int fmt::BufferedFile::fileno() const {
int BufferedFile::fileno() const {
int fd = FMT_POSIX_CALL(fileno FMT_ARGS(file_));
if (fd == -1)
FMT_THROW(system_error(errno, "cannot get file descriptor"));
return fd;
}
fmt::File::File(fmt::cstring_view path, int oflag) {
File::File(cstring_view path, int oflag) {
int mode = S_IRUSR | S_IWUSR;
#if defined(_WIN32) && !defined(__MINGW32__)
fd_ = -1;
@@ -108,14 +109,14 @@ fmt::File::File(fmt::cstring_view path, int oflag) {
FMT_THROW(system_error(errno, "cannot open file {}", path.c_str()));
}
fmt::File::~File() FMT_NOEXCEPT {
File::~File() FMT_NOEXCEPT {
// Don't retry close in case of EINTR!
// See http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html
if (fd_ != -1 && FMT_POSIX_CALL(close(fd_)) != 0)
fmt::report_system_error(errno, "cannot close file");
report_system_error(errno, "cannot close file");
}
void fmt::File::close() {
void File::close() {
if (fd_ == -1)
return;
// Don't retry close in case of EINTR!
@@ -126,7 +127,7 @@ void fmt::File::close() {
FMT_THROW(system_error(errno, "cannot close file"));
}
long long fmt::File::size() const {
long long File::size() const {
#ifdef _WIN32
// Use GetFileSize instead of GetFileSizeEx for the case when _WIN32_WINNT
// is less than 0x0500 as is the case with some default MinGW builds.
@@ -152,7 +153,7 @@ long long fmt::File::size() const {
#endif
}
std::size_t fmt::File::read(void *buffer, std::size_t count) {
std::size_t File::read(void *buffer, std::size_t count) {
RWResult result = 0;
FMT_RETRY(result, FMT_POSIX_CALL(read(fd_, buffer, convert_rwcount(count))));
if (result < 0)
@@ -160,7 +161,7 @@ std::size_t fmt::File::read(void *buffer, std::size_t count) {
return internal::to_unsigned(result);
}
std::size_t fmt::File::write(const void *buffer, std::size_t count) {
std::size_t File::write(const void *buffer, std::size_t count) {
RWResult result = 0;
FMT_RETRY(result, FMT_POSIX_CALL(write(fd_, buffer, convert_rwcount(count))));
if (result < 0)
@@ -168,7 +169,7 @@ std::size_t fmt::File::write(const void *buffer, std::size_t count) {
return internal::to_unsigned(result);
}
fmt::File fmt::File::dup(int fd) {
File File::dup(int fd) {
// Don't retry as dup doesn't return EINTR.
// http://pubs.opengroup.org/onlinepubs/009695399/functions/dup.html
int new_fd = FMT_POSIX_CALL(dup(fd));
@@ -177,7 +178,7 @@ fmt::File fmt::File::dup(int fd) {
return File(new_fd);
}
void fmt::File::dup2(int fd) {
void File::dup2(int fd) {
int result = 0;
FMT_RETRY(result, FMT_POSIX_CALL(dup2(fd_, fd)));
if (result == -1) {
@@ -186,14 +187,14 @@ void fmt::File::dup2(int fd) {
}
}
void fmt::File::dup2(int fd, ErrorCode &ec) FMT_NOEXCEPT {
void File::dup2(int fd, ErrorCode &ec) FMT_NOEXCEPT {
int result = 0;
FMT_RETRY(result, FMT_POSIX_CALL(dup2(fd_, fd)));
if (result == -1)
ec = ErrorCode(errno);
}
void fmt::File::pipe(File &read_end, File &write_end) {
void File::pipe(File &read_end, File &write_end) {
// Close the descriptors first to make sure that assignments don't throw
// and there are no leaks.
read_end.close();
@@ -216,7 +217,7 @@ void fmt::File::pipe(File &read_end, File &write_end) {
write_end = File(fds[1]);
}
fmt::BufferedFile fmt::File::fdopen(const char *mode) {
BufferedFile File::fdopen(const char *mode) {
// Don't retry as fdopen doesn't return EINTR.
FILE *f = FMT_POSIX_CALL(fdopen(fd_, mode));
if (!f)
@@ -227,7 +228,7 @@ fmt::BufferedFile fmt::File::fdopen(const char *mode) {
return file;
}
long fmt::getpagesize() {
long getpagesize() {
#ifdef _WIN32
SYSTEM_INFO si;
GetSystemInfo(&si);
@@ -239,3 +240,5 @@ long fmt::getpagesize() {
return size;
#endif
}
FMT_END_NAMESPACE