我使用SymbolHound在网上寻找资源,比较两者,但找不到任何东西。
在VS13中查找std::ifstream::in
的声明和定义会将我带到basic_ifstream
。寻找std::ios::in
会让我看到basic_ios
。
似乎std::ios::in
被广泛使用。
提前致谢,
汉斯
答案 0 :(得分:4)
他们都是一样的。
in
是std::ios_base
的成员。因此,它也是ios
,ifstream
的成员,以及源自ios_base
的所有其他内容。
似乎
std::ios::in
被广泛使用。
可能因为这是命名它的最短方式。
答案 1 :(得分:1)
如果您查看类型,std::ifstream
为std::basic_ifstream<char>
且std::ios
为std::basic_ios<char>
。
那里的层次结构是:
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_ifstream : public std::basic_istream<CharT, Traits>
是:
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_istream : virtual public std::basic_ios<CharT, Traits>
std::ios
是std::ifstream
的基类,因此std::ifstream::in
正好是std::ios::in
。