1// PR c++/4926 2// { dg-do compile } 3 4template <unsigned> struct X { typedef int Type; }; 5template <typename T> struct Y { char array[1]; }; 6 7template<typename T> Y<T> P(T); // acts as "Y<typeof(T)>" 8 9struct F { int operator()() const; }; 10 11template <typename T> 12typename X<sizeof(P( T()() ).array)>::Type foo(); 13 14void 15bar () 16{ 17 foo<F>(); 18} 19