1

假设我正在编写一个针对支持 C++14 的编译器的库。

在 C++14 中,引入了几个标准库工具作为实验性工具,例如optionalfilesystem.

是吗:

  1. 安全(针对下游开发人员)
  2. 合法的

即使仅支持 C++14,我也可以在我的库中使用这些功能?例如在表格中

#if __cplusplus >= 201703L
#include <optional>
namespace mylib {
using std::optional;
using std::nullopt;
}
#else
static_assert(__cplusplus >= 201402L, "C++2014 is required to compile this program");
#include <experimental/optional>
namespace mylib {
using std::experimental::optional;
using std::experimental::nullopt;
}
#endif

注意:当然,我的意思是下游开发人员实际上必须自己使用这些功能,而不仅仅是我只在内部使用它们而没有外部暴露的情况。

4

0 回答 0