我有一个目前使用 C + + 11/14的项目,但它需要类似于 std::filesystem
的东西,这只在 C + + 17中可用,因此我目前没有机会使用它。但是,我发现它在我当前的编译器中可以作为 std::experimental::filesystem
使用。使用实验性的功能是个好主意吗,假设我将来可以添加这样的东西:
#ifdef CXX17 //if this is C++17
std::filesystem::something ...;
#else
std::experimental::filesystem::something ...;
#endif
我担心的是:
1. 是否保证所有兼容的编译器都具有相同的实验特性?
2. 实验特性是否容易发生大的变化,使其不可靠?
也许还有更多值得怀疑的事。为什么我应该或不应该使用它们?我对一个新项目感到困惑,不知道该做什么决定。