1 // Origin: PR c++/43558
2 // { dg-do compile }
3 
4 class Compressible;
5 template <class T, class EngineTag> class Engine;
6 template <class T>
7 class Engine<T, Compressible>
8 {
9   public:
10     typedef T Element_t;
11       //Element_t read(int);
12       T read(int);
13 };
14 
15 template <class T>
read(int)16 T Engine<T, Compressible>::read(int)
17 {
18 }
19 
20 Engine<int, Compressible> x;
21 
22