Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件 #包括 #包括 #包括 类SychronizedFileWriter:public std::fstream{ //std::mutex\u mutex; 公_C++_C++11 - Fatal编程技术网

C++ std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件 #包括 #包括 #包括 类SychronizedFileWriter:public std::fstream{ //std::mutex\u mutex; 公

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程序是否打印出“我在这里”

std::fstream和重载运算符的公共继承<&书信电报;对于char*不实际写入输出文件
#包括
#包括
#包括
类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);
}