fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<int N>
  5. struct Member
  6. {
  7. Member(int some_arg)
  8. {
  9. std::cout << "Default constructor of Meber " << N << std::endl;
  10. }
  11. };
  12.  
  13. class A
  14. {
  15. Member<1> m1;
  16. Member<2> m2;
  17. enum TrackerType { NONE, ONE, TWO };
  18. public:
  19. A(TrackerType tracker = NONE)
  20. try // A constructor try block.
  21. : m1((tracker = ONE, 1)) // Can throw std::exception
  22. , m2((tracker = TWO, 1)) // Can throw std::exception
  23. {
  24. //TODO:
  25. }
  26. catch (std::exception const & e)
  27. {
  28. if (tracker == ONE) {
  29. std::cout << "m1 threw: " << e.what() << std::endl;
  30. }
  31. else if (tracker == TWO) {
  32. std::cout << "m2 threw: " << e.what() << std::endl;
  33. }
  34. throw;
  35. }
  36. };
  37.  
  38. int main() {
  39. A obj;
  40. // your code goes here
  41. return 0;
  42. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Default constructor of Meber 1
Default constructor of Meber 2