5
我試圖弄清楚是否可以使用sfinae來測試命名空間成員存在。谷歌對此非常沉默。我試過下面的代碼,但是失敗了。使用sfinae來測試命名空間成員是否存在
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);
};
任何想法爲什麼?
Regards,