fork download
  1. #include <iostream>
  2.  
  3. struct MyStruct
  4. {
  5. int val = 117;
  6.  
  7. MyStruct() = default;
  8.  
  9. explicit MyStruct( int v ) : val( v )
  10. {
  11. }
  12.  
  13. ~MyStruct()
  14. {
  15. std::cout << "~MyStruct " << val << std::endl;
  16. }
  17.  
  18. int* value()
  19. {
  20. return &val;
  21. }
  22.  
  23. MyStruct add( int v )
  24. {
  25. return MyStruct( val + v );
  26. }
  27. };
  28.  
  29. void func( int* val )
  30. {
  31. std::cout << "value: " << *val << std::endl;
  32. std::cout << "~func()" << std::endl;
  33. }
  34.  
  35. int main()
  36. {
  37. func( MyStruct().add( 5 ).value() );
  38. }
Success #stdin #stdout 0s 4440KB
stdin
Standard input is empty
stdout
value: 122
~func()
~MyStruct 122
~MyStruct 117