相关疑难解决方法(0)

c ++ 14中是否有__cplusplus的标准定义?

我正在设置一些预处理器的东西,我想要一个更准确的数字,因为__cplusplusC++ 14应该被定义为.是否有一个标准强制要求?

c++ c++14

41
推荐指数
2
解决办法
2万
查看次数

'_HAS_CXX17' marco 是否可用于自定义项目标头以启用 C++17 语言集功能?

我想创建使用标准 C++ 中的“可选”的头文件。但是,我的标头将从 Visual Studio 2015 和 Visual Studio 2017 项目中引用。

我想要一些东西,例如对于 Visual Studio 2017(带有 C++ 17 lang 功能集),使用 std::optional ,并且在 Visual Studio 2015 中使用 boost::optional 。

我在想这样的事情:

#include <yvals.h>
#if _HAS_CXX17
 #include <optional>
 template <typename T> using Optional = std::optional<T>;
#else
 #include "boost/optional/optional.hpp"
 template <typename T> using Optional = boost::optional<T>;
#endif
Run Code Online (Sandbox Code Playgroud)

这样使用'_HAS_CXX17'宏可以吗?有没有更好的方法来做到这一点?

c++ boost-optional visual-studio-2017 stdoptional

7
推荐指数
1
解决办法
4450
查看次数