Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/array29.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR c++/63485 template <typename C> struct A { typedef C type; }; template <class> class B { }; template <class Range> void as_literal (Range &); template <typename> struct C { typedef wchar_t char_type; const char_type on_full_year_placeholder[3]; void on_extended_iso_date () { B<A<wchar_t const[3]>::type> a; as_literal (on_full_year_placeholder); } }; template <typename> struct date_time_format_parser_callback : C<wchar_t> { }; template <typename BaseT> struct D { typedef typename BaseT::char_type char_type; char_type parse (const char_type *, const char_type *, typename BaseT::callback_type p3) { p3.on_extended_iso_date (); return char_type(); } }; struct F { typedef date_time_format_parser_callback<wchar_t> callback_type; typedef wchar_t char_type; }; template <typename CharT, typename ParserT, typename CallbackT> void parse_format (CharT *p1, ParserT p2, CallbackT p3) { CharT p = p2.parse (&p, p1, p3); } template <typename CharT> void parse_date_time_format (const CharT *, const CharT *p2, date_time_format_parser_callback<CharT> &p3) { D<F> b; parse_format (p2, b, p3); } template void parse_date_time_format (const wchar_t *, const wchar_t *, date_time_format_parser_callback<wchar_t> &);