- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在比较这两个类,因为它们都与其他事物相关联。 std::basic_fstream
必须与文件相关联,而 std::unique_lock
必须与互斥锁相关联。因此,提供一个 open()
方法似乎是合理的。尽管如此,std::unique_lock
仍未提供此类方法。惰性初始化无论如何都可以通过 move 分配来执行。因此,提供 open()
方法似乎是多余的。另一方面,std::basic_fstream
确实提供了一个open()
方法。 std::basic_fstream
在 C++11 之前就已经存在了,它是那时执行惰性初始化的唯一方法。抛开向后兼容性的考虑,std::basic_fstream::open()
会被删除吗?或者它仍然需要存在,因为操作实际上可能会失败?请注意,打开(关联)操作始终以 std::unique_lock
成功(不要与锁定操作混淆)。
最佳答案
你的最后一句话实际上包含一个提示:“open
(associate) operation always succeed with std::unique_lock
”。这使得将开放性声明为类不变性、在构造函数中建立它并在罕见故障时抛出异常变得很方便。与文件相比:打开它们可能并且确实会失败,因此将开放性声明为类不变性在那里不起作用。
关于c++ - std::basic_fstream 和 std::unique_lock 的接口(interface)设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33932514/
我正在使用 clang/llvm 8.0.0 在 macOS 上编译它。为 C++14 编译。 #include #include using namespace std; basic_fstre
我有以下代码: #include #include int main(int argc, char *argv[]) { if (argc != 2) { std::cou
尝试编译此代码时: std::fstream file("file.name", std::ios::out | std::ios::binary); uint8_t buf[BUFSIZE]; //
当我打电话 void fileOpen(const char* fname_){file_.Open(fname_,ios::in|ios::out|ios::ate|ios::binary);};
我正在比较这两个类,因为它们都与其他事物相关联。 std::basic_fstream 必须与文件相关联,而 std::unique_lock 必须与互斥锁相关联。因此,提供一个 open() 方法似
我使用 fstream 打开文件进行写入。 fstream streamFile; streamFile.open ( "C:\\path\\to\\textFile.txt", fstream::
我为操作系统类(class)分配了一个作业,该作业应该使我们熟悉C++(我们的部门不在入门级授课)。在项目中,我们必须读取文件。我试图创建一个名为FileIO的类,该类可以处理大部分文件读取,它只需要
我收到以下编译器错误:no match for 'operator}' and 'Word') 这个错误的原因是什么? 下面是重现错误的最小示例: #include #include struct
我正在尝试一个文件处理程序来输入一条记录,并在另一个程序中尝试删除一条记录。我似乎遇到了这个错误- 没有匹配函数来调用 `std::basic_fstream >::open(const char[8
我正在尝试导入一个测试 JSON 文件并解析它。我一直得到错误的数据类型。如何加载“const char”友好文件? 代码: #include "include/rapidjson/document.
我是一名优秀的程序员,十分优秀!