ZCLibLog
载入中...
搜索中...
未找到
logger_macros.h
浏览该文件的文档.
1// Copyright 2026 CZF-H
2// Licensed under the Apache License, Version 2.0
3
4//
5// Created by wanjiangzhi on 2026/4/4.
6//
7
8#ifndef ZCLIBLOG_LOGGER_MACROS_H
9#define ZCLIBLOG_LOGGER_MACROS_H
10
11#ifdef _MSVC_LANG // MSVC下__cplusplus可能不准,故用_MSVC_LANG
12 #define ZCLibLog_CPP_VER _MSVC_LANG
13#else
14 #define ZCLibLog_CPP_VER __cplusplus
15#endif
16
17#if ZCLibLog_CPP_VER >= 202302L
18 #define ZCLibLog_CPP_YEAR 2023
19 #define ZCLibLog_CPP 23
20#elif ZCLibLog_CPP_VER >= 202002L
21 #define ZCLibLog_CPP_YEAR 2020
22 #define ZCLibLog_CPP 20
23#elif ZCLibLog_CPP_VER >= 201703L
24 #define ZCLibLog_CPP_YEAR 2017
25 #define ZCLibLog_CPP 17
26#elif ZCLibLog_CPP_VER >= 201402L
27 #define ZCLibLog_CPP_YEAR 2014
28 #define ZCLibLog_CPP 14
29#elif ZCLibLog_CPP_VER >= 201103L
30 #define ZCLibLog_CPP_YEAR 2011
31 #define ZCLibLog_CPP 11
32#else
33 #define ZCLibLog_CPP_YEAR 2003
34 #define ZCLibLog_CPP 03
35#endif
36
37#if ZCLibLog_CPP >= 14
38 #define ZCLibLog_DEPRECATED(msg) [[deprecated(msg)]]
39#elif defined(__GNUC__) || defined(__clang__)
40 #define ZCLibLog_DEPRECATED(msg) __attribute__((deprecated(msg)))
41#elif defined(_MSC_VER)
42 #define ZCLibLog_DEPRECATED(msg) __declspec(deprecated(msg))
43#else
44 #define ZCLibLog_DEPRECATED(msg)
45#endif
46
47#if ZCLibLog_CPP >= 17 // C++17启用nodiscard特性,避免警告
48 #define ZCLibLog_NODISCARD [[nodiscard]]
49#else
50 #define ZCLibLog_NODISCARD
51#endif
52
53#if ZCLibLog_CPP >= 20
54 #define ZCLibLog_HAS_STD_FORMAT // C++20支持std::format
55 #define ZCLibLog_HAS_CONSTRAINTS // C++20支持契约
56#endif
57
58#endif //ZCLIBLOG_LOGGER_MACROS_H