использовать sfinae для проверки существования членов пространства имен

Я пытался выяснить, можно ли использовать sfinae для проверки существования члена namespace . Google об этом довольно умалчивает. Я пробовал следующий код, но ничего не вышло.

namespace xyz{
 struct abc{};
}

struct abc{};

struct test_xyz{ 
 typedef char yes;
 typedef struct{ char a[2]; } no;

 template <class C> static yes test(xyz::C = xyz::C()); //lets assume it has default constructor
 template <class C> static no test(...);

 const bool has_abc = sizeof(test_xyz::test<abc>()) == sizeof(yes);
};

Есть идеи, почему?

С уважением,

5
задан Johannes Schaub - litb 30 August 2010 в 12:43
поделиться