是否隐式指定了`ios_base::app`保证`ios_base::out`
Does `ios_base::app` guarantee `ios_base::out` is implicitly specified?
A:
std::ofstream("test.txt", std::ios_base::app);
B:
std::ofstream("test.txt", std::ios_base::app|std::ios_base::out);
C++标准是否保证A与B相同?
是的,根据[ofstream.cons]
explicit basic_ofstream(const char* s,
ios_base::openmode mode = ios_base::out);
效果:构造一个类为basic_ofstream的对象,用
basic_ostream(&sb)
初始化基类并用basic_filebuf<charT,traits>())
初始化sb,然后调用rdbuf()->open(s, mode|ios_base::out)
。如果该函数返回一个空指针calls setstate(failbit)
。
注意,不是app
有这个保证,而是对底层streambuf本身的调用;传递给构造函数/open
的任何标志都始终使用out
(对于ifstream
,也使用in
(。
相关文章:
- 使用ios:ate写入到流会覆盖现有文件
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 构造函数采用 Base&不被调用
- 如何访问RTCVideoRenderer的帧?(ios)
- ios::fmtflags 在 C++ 中是如何工作的?setf() 是如何工作的?
- 将sharet_ptr<Derived>转换为shared_ptr<Base>
- 将 BASE 派生类存储在同一容器中
- 避免矢量中的对象切片<Base><shared_ptr>
- 我可以在 iOS 或 mac 应用程序中使用C++代码吗?
- "string.h"在构建适用于iOS的qt应用程序中找不到消息
- 从 std<Derived>::shared_ptr 的向量返回 std::shared_ptr<Base>
- 为什么 C++ 11 在 ios 类中添加了运算符 bool
- 'string'文件在带有C++文件的iOS插件上找不到
- 如何从unique_ptr返回unique_ptr的引用<Derived><Base>?
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- 如何将unique_ptr<derived>*转换为<base>unique_ptr*?
- <Base> <Derived> 具有相同原始指针共享引用的 shared_ptr 和 shared_ptr 实例是否计数?
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- 使用 C++ iOS::ate 获取错误的文件大小
- iOS::Base:Precision & SetPrecision