C++ std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件 #包括 #包括 #包括 类SychronizedFileWriter:public std::fstream{ //std::mutex\u mutex; 公
std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件C++ std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件 #包括 #包括 #包括 类SychronizedFileWriter:public std::fstream{ //std::mutex\u mutex; 公,c++,c++11,C++,C++11,std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件 #包括 #包括 #包括 类SychronizedFileWriter:public std::fstream{ //std::mutex\u mutex; 公众: SychronizedFileWriter(标准::字符串和文件路径); 虚拟~SychronizedFileWriter(); 布尔是开的常数; //SychronizedFileWriter&operator程序是否打印出“我在这里”
#包括
#包括
#包括
类SychronizedFileWriter:public std::fstream{
//std::mutex\u mutex;
公众:
SychronizedFileWriter(标准::字符串和文件路径);
虚拟~SychronizedFileWriter();
布尔是开的常数;
//SychronizedFileWriter&operator程序是否打印出“我在这里”?是的,它会打印出来。].\a.out打开:真的我在这里我在这里。
操作符程序是否打印出“我在这里”?是的,它会打印出来。].\a.out打开:真的我在这里我在这里
操作符
#include <iostream>
#include <fstream>
#include <string>
class SychronizedFileWriter : public std::fstream {
//std::mutex _mutex;
public:
SychronizedFileWriter(std::string&& filePath);
virtual ~SychronizedFileWriter();
bool is_open() const;
// SychronizedFileWriter& operator<<(const char* s);
// SychronizedFileWriter& operator<<(SychronizedFileWriter& sfw, const signed char* s);
// SychronizedFileWriter& operator<<(SychronizedFileWriter& sfw, const unsigned char* s);
};
SychronizedFileWriter::SychronizedFileWriter(std::string&& filePath)
{
std::fstream::open(filePath, std::ios_base::app);
}
SychronizedFileWriter:: ~SychronizedFileWriter()
{
std::fstream::close();
}
bool
SychronizedFileWriter::is_open() const
{
return std::fstream::is_open();
}
template<typename T, typename S>
T& operator<<(T& fs, const S* s)
{
std::cout << "im here\n";
{
// Take mutex lock
fs.std::fstream::operator<<(s);
}
return fs;
}
int main(int argc, char *argv[])
{
std::ios_base::sync_with_stdio(true);
SychronizedFileWriter sfw(std::string("./test.txt"));
std::cout << "open: " << std::boolalpha << sfw.is_open();
sfw << "Hello, Worked!!!!" << "\n";
exit(0);
}