structclassify_function<R(Args...)const>{// expected-warning{{template argument of 'const' qualified function type is a GNU extension}}
staticconstunsignedvalue=2;
};
template<typenameR,typename...Args>
structclassify_function<R(Args...)volatile>{// expected-warning{{template argument of 'volatile' qualified function type is a GNU extension}}
staticconstunsignedvalue=3;
};
template<typenameR,typename...Args>
structclassify_function<R(Args...)constvolatile>{// expected-warning{{template argument of 'const volatile' qualified function type is a GNU extension}}
staticconstunsignedvalue=4;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)>{
staticconstunsignedvalue=5;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)const>{// expected-warning{{template argument of 'const' qualified function type is a GNU extension}}
staticconstunsignedvalue=6;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)volatile>{// expected-warning{{template argument of 'volatile' qualified function type is a GNU extension}}
staticconstunsignedvalue=7;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)constvolatile>{// expected-warning{{template argument of 'const volatile' qualified function type is a GNU extension}}
staticconstunsignedvalue=8;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)&&>{// expected-warning{{template argument of '&&' qualified function type is a GNU extension}}
staticconstunsignedvalue=9;
};
template<typenameR,typename...Args>
structclassify_function<R(Args......)const&>{// expected-warning{{template argument of 'const &' qualified function type is a GNU extension}}