【发布时间】:2021-01-24 02:45:00
【问题描述】:
有人可以解释我在以下示例代码中看到的命名空间搜索限定名称的行为吗?有关该问题,请参阅内联 cmets。
namespace ns1::hw
{
struct A1
{
enum class E1
{
E1_1,
E1_2,
};
};
};
namespace ns1::ns2::hw
{
struct A2
{
enum class E1
{
E1_1,
E1_2,
};
};
};
namespace ns1::ns2::ns3::hw
{
struct A3
{
enum class E1
{
E1_1,
E1_2,
};
};
};
namespace ns1::ns2::ns3::ns4
{
struct A4
{
int I1 { (int)hw::A3::E1::E1_1 }; // <--- this compiles OK
// seems to search upwards in the parent namespace,
// looking for the relative partially qualified
// name.
int I2 { (int)hw::A2::E1::E1_1 }; // <--- this doesn't
// doesn't seem to apply the same search algorithm
// beyond the immediate parent namespace.
};
};
int main()
{
return 0;
}
【问题讨论】:
标签: c++ namespaces name-lookup