#include <iostream>
using namespace std;

template <typename T>
class Decoder {
  T* impl_;
  public:
    Decoder();
};

class DecoderA;
class DecoderB;

int main() {
	Decoder<DecoderA> a;
	Decoder<DecoderB> b;
	return 0;
}

template <typename T>
Decoder<T>::Decoder () { impl_ = new T; }

class DecoderA {};
class DecoderB {};

template class Decoder<DecoderA>;
template class Decoder<DecoderB>;


