(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp0x/
constexpr-conv3.C
// 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>();
}