329
+ − 1 module;
+ − 2
+ − 3 // Put all implementation-provided headers into the global module fragment
+ − 4 // to prevent attachment to this module.
+ − 5 #include <algorithm>
+ − 6 #include <cerrno>
+ − 7 #include <chrono>
+ − 8 #include <climits>
+ − 9 #include <cmath>
+ − 10 #include <cstddef>
+ − 11 #include <cstdint>
+ − 12 #include <cstdio>
+ − 13 #include <cstdlib>
+ − 14 #include <cstring>
+ − 15 #include <ctime>
+ − 16 #include <exception>
+ − 17 #include <filesystem>
+ − 18 #include <fstream>
+ − 19 #include <functional>
+ − 20 #include <iterator>
+ − 21 #include <limits>
+ − 22 #include <locale>
+ − 23 #include <memory>
+ − 24 #include <optional>
+ − 25 #include <ostream>
+ − 26 #include <stdexcept>
+ − 27 #include <string>
+ − 28 #include <string_view>
+ − 29 #include <system_error>
+ − 30 #include <thread>
+ − 31 #include <type_traits>
+ − 32 #include <typeinfo>
+ − 33 #include <utility>
+ − 34 #include <variant>
+ − 35 #include <vector>
+ − 36 #include <version>
+ − 37
+ − 38 #if __has_include(<cxxabi.h>)
+ − 39 # include <cxxabi.h>
+ − 40 #endif
+ − 41 #if defined(_MSC_VER) || defined(__MINGW32__)
+ − 42 # include <intrin.h>
+ − 43 #endif
+ − 44 #if defined __APPLE__ || defined(__FreeBSD__)
+ − 45 # include <xlocale.h>
+ − 46 #endif
+ − 47 #if __has_include(<winapifamily.h>)
+ − 48 # include <winapifamily.h>
+ − 49 #endif
+ − 50 #if (__has_include(<fcntl.h>) || defined(__APPLE__) || \
+ − 51 defined(__linux__)) && \
+ − 52 (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
+ − 53 # include <fcntl.h>
+ − 54 # include <sys/stat.h>
+ − 55 # include <sys/types.h>
+ − 56 # ifndef _WIN32
+ − 57 # include <unistd.h>
+ − 58 # else
+ − 59 # include <io.h>
+ − 60 # endif
+ − 61 #endif
+ − 62 #ifdef _WIN32
+ − 63 # if defined(__GLIBCXX__)
+ − 64 # include <ext/stdio_filebuf.h>
+ − 65 # include <ext/stdio_sync_filebuf.h>
+ − 66 # endif
+ − 67 # define WIN32_LEAN_AND_MEAN
+ − 68 # include <windows.h>
+ − 69 #endif
+ − 70
+ − 71 export module fmt;
+ − 72
+ − 73 #define FMT_EXPORT export
+ − 74 #define FMT_BEGIN_EXPORT export {
+ − 75 #define FMT_END_EXPORT }
+ − 76
+ − 77 // If you define FMT_ATTACH_TO_GLOBAL_MODULE
+ − 78 // - all declarations are detached from module 'fmt'
+ − 79 // - the module behaves like a traditional static library, too
+ − 80 // - all library symbols are mangled traditionally
+ − 81 // - you can mix TUs with either importing or #including the {fmt} API
+ − 82 #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
+ − 83 extern "C++" {
+ − 84 #endif
+ − 85
+ − 86 // All library-provided declarations and definitions must be in the module
+ − 87 // purview to be exported.
+ − 88 #include "fmt/args.h"
+ − 89 #include "fmt/chrono.h"
+ − 90 #include "fmt/color.h"
+ − 91 #include "fmt/compile.h"
+ − 92 #include "fmt/format.h"
+ − 93 #include "fmt/os.h"
+ − 94 #include "fmt/printf.h"
+ − 95 #include "fmt/std.h"
+ − 96 #include "fmt/xchar.h"
+ − 97
+ − 98 #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
+ − 99 }
+ − 100 #endif
+ − 101
+ − 102 // gcc doesn't yet implement private module fragments
+ − 103 #if !FMT_GCC_VERSION
+ − 104 module :private;
+ − 105 #endif
+ − 106
+ − 107 #include "format.cc"
+ − 108 #include "os.cc"