// { dg-options "-std=gnu++0x" }
|
// { dg-options "-std=gnu++0x" }
|
template struct X { static const bool primary = true; };
|
template struct X { static const bool primary = true; };
|
template struct X {
|
template struct X {
|
static const bool primary = false;
|
static const bool primary = false;
|
};
|
};
|
template struct Y { static const bool primary = true; };
|
template struct Y { static const bool primary = true; };
|
template struct Y {
|
template struct Y {
|
static const bool primary = false;
|
static const bool primary = false;
|
};
|
};
|
|
|
static_assert (X::primary, "uses primary template");
|
static_assert (X::primary, "uses primary template");
|
static_assert (!X::primary,
|
static_assert (!X::primary,
|
"uses partial specialization");
|
"uses partial specialization");
|
static_assert (X::primary, "uses primary template");
|
static_assert (X::primary, "uses primary template");
|
static_assert (Y<>::primary, "uses primary template");
|
static_assert (Y<>::primary, "uses primary template");
|
static_assert (!Y::primary,
|
static_assert (!Y::primary,
|
"uses partial specialization");
|
"uses partial specialization");
|
static_assert (Y::primary, "uses primary template");
|
static_assert (Y::primary, "uses primary template");
|
|
|