template<bool Condition, typename T = void>
struct EnableIf
{
};
template<typename T>
struct EnableIf<true, T>
{
typedef T Type;
};
struct Base
{
static const int Foo = 0;
};
template<int KeySize>
struct Derived : public EnableIf<true, Base>::Type
{
static const int Bar = Foo;
};
int main()
{
Derived<42> Inst;
}
dGVtcGxhdGU8Ym9vbCBDb25kaXRpb24sIHR5cGVuYW1lIFQgPSB2b2lkPgpzdHJ1Y3QgRW5hYmxlSWYKewp9Owp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpzdHJ1Y3QgRW5hYmxlSWY8dHJ1ZSwgVD4KewoJdHlwZWRlZiBUIFR5cGU7Cn07CgpzdHJ1Y3QgQmFzZQp7CglzdGF0aWMgY29uc3QgaW50IEZvbyA9IDA7Cn07Cgp0ZW1wbGF0ZTxpbnQgS2V5U2l6ZT4Kc3RydWN0IERlcml2ZWQgOiBwdWJsaWMgRW5hYmxlSWY8dHJ1ZSwgQmFzZT46OlR5cGUKewoJc3RhdGljIGNvbnN0IGludCBCYXIgPSBGb287Cn07CgppbnQgbWFpbigpCnsKCURlcml2ZWQ8NDI+IEluc3Q7Cn0=