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() {...} };
}



Hiç yorum yok:

Yorum Gönder