来源:https://stackoverflow.com/questions/57598241/using-stdoptional-in-a-c11-context
github:https://github.com/TartanLlama/optional
使用的 tl::optional
,和 std::optional
一样。
可以判断一下当前的 __cplusplus
版本
#if __cplusplus < 201703L
xxx
#else
yyy
#endif
- C++ pre-C++98:
__cplusplus
is1
- C++98:
__cplusplus
is199711L
- C++98 + TR1: This reads as C++98 and there is no way to check that I know of.
- C++11:
__cplusplus
is201103L
- C++14:
__cplusplus
is201402L
- C++17:
__cplusplus
is201703L
- C++20:
__cplusplus
is202002L
- C++23:
__cplusplus
is202302L