title: Independent name of a class
body: <p>We have class lua.</p>
  
  <p>In lua class there is a method registerFunc() which is defined:</p>
  
  <pre><code>void lua::registerFun() {
      lua_register( luaState, "asd", luaApi::asd);
      lua_register( luaState, "zxc", luaApi::zxc);
  }
  </code></pre>
  
  <p>lua_register is a built-in function from lua library: <a href="http://pgl.yoyo.org/luai/i/lua_register" rel="nofollow">http://pgl.yoyo.org/luai/i/lua_register</a></p>
  
  <p>it takes static methods from luaApi class as an 3rd argument.</p>
  
  <p>Now some programmer wants to use the lua class, so he is forced to create his own class with definitions of the static methods, like:</p>
  
  <pre><code>class luaApi {
  public:
      static int asd();
      static int zxc();
  };
  </code></pre>
  
  <p>and now is the point. I don't want (as a programmer) to create class named exactly "luaApi", but e.g. myClassForLuaApi.
  But for now it's not possible because it is explicitly written in the code - in lua class:</p>
  
  <pre><code>lua_register( luaState, "asd", luaApi::asd); 
  </code></pre>
  
  <p>I would have to change it to:</p>
  
  <pre><code>lua_register( luaState, "asd", myClassForLuaApi::asd);
  </code></pre>
  
  <p>but I don't want to (let's assume that the programmer has no access there).</p>
  
  <p>If it's still not understandable, I give up. :)</p>
  
  <p>Thanks.</p>