typedef long (*func)(int);
long function(int) { return 42; }
struct Test
{
static constexpr func f = &function;
};
template<func c>
struct Call
{
static void f()
{
c(0);
}
};
int main()
{
Call<Test::f>::f();
}
dHlwZWRlZiBsb25nICgqZnVuYykoaW50KTsKCmxvbmcgZnVuY3Rpb24oaW50KSB7IHJldHVybiA0MjsgfQoKc3RydWN0IFRlc3QKewogICBzdGF0aWMgY29uc3RleHByIGZ1bmMgZiA9ICZmdW5jdGlvbjsKfTsKCnRlbXBsYXRlPGZ1bmMgYz4Kc3RydWN0IENhbGwKewogICBzdGF0aWMgdm9pZCBmKCkKICAgewogICAgICBjKDApOwogICB9Cn07CgppbnQgbWFpbigpCnsKICAgQ2FsbDxUZXN0OjpmPjo6ZigpOwp9