3 #include <libcopp/utils/config/libcopp_build_features.h>
5 #ifndef WIN32_LEAN_AND_MEAN
6 # define WIN32_LEAN_AND_MEAN
18 #if defined(COPP_MACRO_COMPILER_MSVC)
19 # pragma warning(push)
20 # pragma warning(disable : 4244 4267)
29 #if __cplusplus >= 201103L
43 #if defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) || defined(__amd64) || defined(_M_X64) || \
48 # define MIN_STACKSIZE 8 * 1024
50 # define MIN_STACKSIZE 4 * 1024
53 #ifdef COPP_HAS_ABI_HEADERS
54 # include COPP_ABI_PREFIX
57 LIBCOPP_COPP_NAMESPACE_BEGIN
60 #if __cplusplus < 201103L
64 static SYSTEM_INFO si;
65 static bool inited =
false;
77 static SYSTEM_INFO si;
78 static std::once_flag flag;
79 std::call_once(flag, []() { ::GetSystemInfo(&si); });
103 std::size_t
size = 64 * 1024;
124 LIBCOPP_COPP_NAMESPACE_END
126 #ifdef COPP_HAS_ABI_HEADERS
127 # include COPP_ABI_SUFFIX
static void system_info_(SYSTEM_INFO *si)
static std::size_t pagesize()
static SYSTEM_INFO system_info()
constexpr auto size(TCONTAINER &&container) -> decltype(container.size())
static LIBCOPP_COPP_API std::size_t default_size() LIBCOPP_MACRO_NOEXCEPT
static LIBCOPP_COPP_API std::size_t page_size() LIBCOPP_MACRO_NOEXCEPT
static LIBCOPP_COPP_API std::size_t maximum_size() LIBCOPP_MACRO_NOEXCEPT
static LIBCOPP_COPP_API std::size_t round_to_page_size(std::size_t stacksize) LIBCOPP_MACRO_NOEXCEPT
static LIBCOPP_COPP_API std::size_t minimum_size() LIBCOPP_MACRO_NOEXCEPT
static LIBCOPP_COPP_API bool is_unbounded() LIBCOPP_MACRO_NOEXCEPT