fork download
  1. #include <iostream>
  2.  
  3. namespace t1 {
  4. struct nullopt_t{};
  5. static const nullopt_t nullopt{};
  6.  
  7. template<typename T>
  8. struct optional
  9. {
  10. optional() { std::cout << "optional()" << std::endl; }
  11. optional(nullopt_t) { std::cout << "optional(nullopt)" << std::endl; }
  12. };
  13. }
  14.  
  15. namespace my_very_own {
  16. using t1::nullopt;
  17. using t1::optional;
  18. }
  19.  
  20. int main() {
  21. my_very_own::optional<int> opt1;
  22. my_very_own::optional<int> opt2 = my_very_own::nullopt;
  23. return 0;
  24. }
Success #stdin #stdout 0s 4488KB
stdin
Standard input is empty
stdout
optional()
optional(nullopt)