fork download
  1. #include <string>
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <ostream>
  5.  
  6. class StringConverter
  7. {
  8. char *str; // TODO: use smart pointer with right deleter
  9. public:
  10. StringConverter(const std::string &user_string) // Will be defined only at user side
  11. {
  12. str=new char[user_string.length()+1];
  13. (*(std::copy(user_string.begin(),user_string.end(),str)))=0;
  14. }
  15. operator std::string() // Will be defined only at library side
  16. {
  17. return std::string(str);
  18. }
  19. ~StringConverter()
  20. {
  21. delete [] str;
  22. }
  23. };
  24.  
  25. StringConverter foo()
  26. {
  27. return std::string("asd");
  28. }
  29.  
  30.  
  31. int main(int argc,char *argv[])
  32. {
  33. std::cout << std::string(foo()) << std::endl;
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0.01s 2812KB
stdin
Standard input is empty
stdout
asd