Başlık dosyasında anonim bir ad alanı koymanın hiçbir noktasını göremiyorum. Ben standart ve libstdC++ başlıklarını grepped ettik tuple
başlığında birinin dışında hiçbir anonim ad alanlarını bulundu (C++ 1x şeyler):
// A class (and instance) which can be used in 'tie' when an element
// of a tuple is not required
struct _Swallow_assign
{
template<class _Tp>
_Swallow_assign&
operator=(const _Tp&)
{ return *this; }
};
// TODO: Put this in some kind of shared file.
namespace
{
_Swallow_assign ignore;
}; // anonymous namespace
Bu yüzden size
std::tie(a, std::ignore, b) = some_tuple;
yapabilirsiniz some_tuple öğelerinin öğeleri sol taraftaki değişkenlere atanır (bkz. here), benzer bir teknik this yineleyici için kullanılır. İkinci eleman göz ardı edilir.
Ama dedikleri gibi, bir .cpp dosyasına konulmalı ve bir örnek tüm kullanıcılar tarafından paylaşılmalıdır. Onlar bu o zaman böyle başlığına bunun bir deklarasyon koyardı:
extern _Swallow_assign ignore;
bu tartışma bakınız: [http://stackoverflow.com/questions/357404/anonynous-namespaces](http://stackoverflow.com/questions/357404/anonynous-namespaces) –
o iplik var başlıklarda bu anonim ad alanlarından bu bilgileri aldım nerede –
Bu başlıkta başlık dosyaları kullanarak hakkında hiçbir şey bulamıyorum. Bunun neden yanlış olduğunu kimse anlatabilir mi? Ve hala C++ 11'de geçerli mi? – baruch