Anonymous Namespace etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Anonymous Namespace etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Ekim 2017 Cuma

Anonymous Namespace

Giriş
Anonymous Namespace .h dosyasında olmamalı. Yoksa ODR kuralı ihlal edilebilir.

Örnek
Bir sürü cpp dosyasında aynı isimli sınıf tanımlı olsun.
// test1.cpp
...
class Foo { void bar() {...} };
...
ve
// test2.cpp
...
class Foo { void bar() {...} };
...
Linkleme aşamasında hata alırız. Çözmek için şöyle yaparız. Böylece Foo sınıfı translation unit içinde kalır.
namespace /*no name here makes it anonymous*/{
    class Foo { void bar() {...} };
}