title: Why isn't "using delcaration" permitted in the definition of a class?
body: <pre><code>#include &lt;utility&gt;
  
  struct A
  {
      A(int x, int y)
      {
          using std::swap; // OK
          swap(x, y);
      }
  };
  
  struct B
  {
      //
      // The line below is illegal:
      //
      using std::swap; 
      //
      // error : using declaration in class
      // refers into 'std::', which is not a class
      //
  
      B(int x, int y)
      {        
          swap(x, y);
      }
  };
  </code></pre>
  
  <p>The question is embedded in the example above.</p>
  
  <p>I just wonder: </p>
  
  <p><strong>Why does the C++ standard prohibit such a usage?</strong></p>
  
  <p><strong>What's the rationale behind?</strong></p>