// PR c++/84813
// { dg-do compile }
// { dg-options "-g -std=c++14" }
template <typename>
struct P {};
template <int>
struct F {
  using type = int;
};
template <typename T>
void
apply ()
{
  constexpr int N = T::N;
  [] (typename F<N>::type)
  {
    auto f = [] () {};
    P<decltype (f)>{};
  };
}
struct A {
  static constexpr int N = 1;
};
void
instantiate ()
{
  apply<A> ();
}