// PR c++/87145 | |
// { dg-do compile { target c++11 } } | |
template<typename T, T t> struct integral_constant { | |
static constexpr T value = t; | |
}; | |
enum class Enum : unsigned {}; | |
struct Pod { | |
unsigned val; | |
constexpr operator Enum() const { | |
return static_cast<Enum>(val); | |
} | |
}; | |
template<unsigned N> | |
constexpr void foo() { | |
using Foo = integral_constant<Enum, Pod{N}>; | |
} | |
int main() { | |
foo<2>(); | |
} |