根据C ++ 11标准,是

ifstream in(".");


指定的,还是取决于系统的?

对于上下文,我试图避免使用boost::filesystem和类似的库,因为它们会引起不相关的可移植性问题。

编辑:根据我所能找到的,我应该得到一个有效的ifstream(当且仅当目录存在时,它才是'good()'。这可能比使用boost::filesystem提供了一种更便携式的测试目录是否存在的方式因为后者需要您链接到更多库。

最佳答案

该标准似乎在其散文的任何地方都没有提及“目录”的概念。这里提到了EISDIR errno以及反映posix的一般意图,但是只有“可以用来报告低级状态”。我会说依赖系统而不是可移植的。

关于c++ - 目录上ifstream::ifstream的行为是否定义明确?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52744506/

10-12 20:35