Ben iç içe-ad-teknik uzmanların tanımlanan enum anlamaya çalışıyorum kullanarak tanıtıldı Enum. Ne standart diyor N4296:7.2/4 [dcl.enum]
geçerli: enum anahtar yuvalanmış-name-belirtici takip edilirsebeyanı
, enum-belirteci sınıf veya ad alanına doğrudan beyan önceden bulunan bir numaralandırma atıfta bulunacaktır ki iç içe isim belirteci gelir (yani ne kalıtsal ne de kullanılarak beyanına ile kişiye), enum-belirteci önceki beyan kuşatan bir ad görünür olacaktır.
O zaman, neden, aşağıdaki örnekte çalışır? namescape C
olarak
#include <iostream>
namespace A
{
namespace B
{
enum E : int;
}
}
namespace C
{
using A::B::E;
}
enum C::E : int { x = 2 };
int main()
{
}
biz bildirimi kullanarak enum E
ilan ve enum tanımı ile kendisine gönderilen. Derleyici bir hata atmış olabilir, ama yapmadı. Neyin yanlıştı, yanlış anlaşılma neredeydi?
görünüyor. –
@ T.C. Yani, genel olarak aşağıdaki kod da http://coliru.stacked-crooked.com/a/b4e682437a639a1b çalışmamalı? –
@ T.C. Mirastan bir örnek olamaz mıydın? kodun sizin ikinci setinde –