I am uncertain if it is a bug in Clang 3.2 or a violation of C++03, but it appears that explicit instantiation of templated constructors for template classes fails, but expl
It looks like you've found a GCC bug. These both name the implicitly-declared copy constructor:
template Foo::Foo( const Foo& foo );
template Foo::Foo( const Foo& foo );
Per [temp.explicit]p4,
If the declaration of the explicit instantiation names an implicitly-declared special member function (Clause 12), the program is ill-formed.
Therefore Clang is correct to reject this code.