Поиск по именам вложенных классов с наследованием

Это гарантированно сработает:

struct A
{
  struct Gold {};
};

struct B : public A
{
  typedef Gold BaseGold;
  struct Gold {};
};

struct C : public B
{
  typedef Gold BaseGold;
  struct Gold {};
};

static_assert(is_same<B::BaseGold, A::Gold>::value, "Not the right treasure!");
static_assert(is_same<C::BaseGold, B::Gold>::value, "Not the right treasure!");

Кажется, работает на VS2010. Очевидно, он полагается на тонкие правила поиска по порядку объявления / имени, поэтому мне было интересно, что стандарт говорит по этому поводу ...

9
задан ltjax 12 August 2011 в 12:30
поделиться