Guest User

Untitled

a guest
Jun 18th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. std::string operator , (const std::string& s1, const char* s2)
  2. {
  3.   return s1 + s2;
  4. }
  5.  
  6. std::string operator , (const char* s1, const std::string& s2)
  7. {
  8.   return s1 + s2;
  9. }
  10.  
  11. #define TO_STRING_I(n) #n
  12. #define TO_STRING(n) TO_STRING_I(n)
  13. #define FILEPOS __FILE__ "(" TO_STRING(__LINE__) "): "
  14. #define THROW_IF(cond, type, msg, ...) if (cond) throw type((FILEPOS + std::string(msg), __VA_ARGS__))
  15.  
  16. struct fatal_error : public std::runtime_error
  17. {
  18.     fatal_error(char const* errormsg)
  19.       : std::runtime_error(std::move(errormsg))
  20.   {}
  21.   fatal_error(std::string errormsg)
  22.       : std::runtime_error(std::move(errormsg))
  23.   {}
  24. };
  25.  
  26. inline std::vector<char> read_file(char const* filename)
  27. {
  28.   std::ifstream file(filename, std::ios::binary);
  29.   THROW_IF(!file, fatal_error, "Could not open file: ", filename);
  30.   file.seekg(0, std::ios::end);
  31.   std::vector<char> buf(static_cast<std::vector<char>::size_type>(file.tellg()));
  32.   file.seekg(0, std::ios::beg);
  33.   file.read(&buf[0], buf.size());
  34.   THROW_IF(!file, fatal_error, "Could not read file: ", filename);
  35.   return buf;
  36. }
  37.  
  38. int main()
  39. {
  40.   try
  41.   {
  42.     auto buf = read_file("testasfsfadf.txt");
  43.     buf.push_back(0);
  44.     std::cout << &buf[0];
  45.   }
  46.   catch (std::runtime_error& e)
  47.   {
  48.     std::cout << e.what() << '\n';
  49.   }
  50. }
Add Comment
Please, Sign In to add comment