fork(2) download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5.  
  6. namespace ns1
  7. {
  8.  
  9. enum E
  10. {
  11. e1, e2
  12. };
  13.  
  14. void printVal( E e )
  15. {
  16. switch(e)
  17. {
  18. case e1: cout<<"E: e1\n"; break;
  19. case e2: cout<<"E: e2\n"; break;
  20. };
  21. }
  22.  
  23. void printVal( int val)
  24. {
  25. cout<<"int: "<<val<<"\n";
  26. }
  27.  
  28. void printVal( unsigned val)
  29. {
  30. cout<<"unsigned: "<<val<<"\n";
  31. }
  32.  
  33. void printVal( const char* s )
  34. {
  35. cout<<"const char*: "<<s<<"\n";
  36. }
  37.  
  38. void printVal( std::string s )
  39. {
  40. cout<<"std::string: "<<s<<"\n";
  41. }
  42.  
  43. template< typename T >
  44. void printTpl( const T &t)
  45. {
  46. cout<<"Tpl: "<<t<<"\n";
  47. }
  48.  
  49. template<>
  50. void printTpl<unsigned>( const unsigned &t)
  51. {
  52. cout<<"Tpl<unsigned>: "<<t<<"\n";
  53. }
  54.  
  55. } // namespace ns1
  56.  
  57. namespace ns2
  58. {
  59. using ns1::printVal;
  60. using ns1::printTpl;
  61. using ns1::E;
  62.  
  63. }
  64.  
  65.  
  66. int main() {
  67.  
  68. ns2::E e = ns2::e1;
  69. int i = 8;
  70. unsigned u = 10;
  71. std::string s = "sss";
  72. const char * str = "str";
  73.  
  74. ns2::printVal(e);
  75. ns2::printVal(i);
  76. ns2::printVal(u);
  77. ns2::printVal(s);
  78. ns2::printVal(str);
  79. cout<<"---\n";
  80. ns2::printTpl(i);
  81. ns2::printTpl(u);
  82. ns2::printTpl(s);
  83. ns2::printTpl(str);
  84. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:68:18: error: ‘e1’ is not a member of ‘ns2’
  ns2::E e = ns2::e1;
                  ^~
prog.cpp:68:18: note: suggested alternative:
prog.cpp:11:6: note:   ‘e1’
      e1, e2
      ^~
stdout
Standard output is empty