2011-07-06 46 views
6

Bir sınıf tanımlarken ad alanı takma adı kullanmak istediğim bir üstbilgi dosyası var. Ancak, bu diğer adı, başlık dosyasını içeren herhangi bir şeye maruz bırakmak istemiyorum.Ad alanı takma ad sorunları

// foo.h 
namespace qux = boost::std::bar::baz::qux; // ! exposed to the world 
class foo 
{ 
    // can't put a namespace alias here 

    // stuff using qux:: 
}; 

Her yerde sızıntı olmaksızın bir sınıf bildirimi için bir ad alanını nasıl taklit edebilirim?

cevap

12
namespace MyClassSpace 
{ 
namespace qux = boost::std::bar::baz::qux; 

class foo 
{ 
    // use qux:: 
}; 

} 

using MyClassSpace::foo; // lift 'foo' into the enclosing namespace 

Bu en Boost kitaplıkları, ayrı ad alanındaki bütün eşyalarını koymak ve boost ad alanına önemli tanımlayıcıları kaldırmaya nasıl da olduğunu.

+0

Temiz! +1 oylamadan sonra gelir. –

+0

@Kerrek: Ne kadar uyuyor, keşke ulaştım ve sıfırlamayı beklemem gerekiyor! :) – Xeo

+0

Piç, umutsuzca önümüzdeki iki saat içinde benimkini yapmaya çalışıyorum ;-) –