Fix using ScalarPrinter redefinition for gcc.
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h b/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h
index 56c497c..4b8503c 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h
@@ -215,7 +215,6 @@
 template <typename Tensor, std::size_t rank, typename Format, typename EnableIf>
 struct TensorPrinter {
   using Scalar = std::remove_const_t<typename Tensor::Scalar>;
-  using ScalarPrinter = ScalarPrinter<Scalar, Format>;
 
   static void run(std::ostream& s, const Tensor& tensor, const Format& fmt) {
     typedef typename Tensor::Index IndexType;
@@ -257,7 +256,7 @@
       for (IndexType i = 0; i < total_size; i++) {
         std::stringstream sstr;
         sstr.copyfmt(s);
-        ScalarPrinter::run(sstr, static_cast<PrintType>(tensor.data()[i]), fmt);
+        ScalarPrinter<Scalar, Format>::run(sstr, static_cast<PrintType>(tensor.data()[i]), fmt);
         width = std::max<IndexType>(width, IndexType(sstr.str().length()));
       }
     }
@@ -336,7 +335,7 @@
       // So we don't mess around with formatting, output scalar to a string stream, and adjust the width/fill manually.
       std::stringstream sstr;
       sstr.copyfmt(s);
-      ScalarPrinter::run(sstr, static_cast<PrintType>(tensor.data()[i]), fmt);
+      ScalarPrinter<Scalar, Format>::run(sstr, static_cast<PrintType>(tensor.data()[i]), fmt);
       std::string scalar_str = sstr.str();
       IndexType scalar_width = scalar_str.length();
       if (width && scalar_width < width) {
@@ -361,7 +360,6 @@
 struct TensorPrinter<Tensor, rank, TensorIOFormatLegacy, std::enable_if_t<rank != 0>> {
   using Format = TensorIOFormatLegacy;
   using Scalar = std::remove_const_t<typename Tensor::Scalar>;
-  using ScalarPrinter = ScalarPrinter<Scalar, Format>;
 
   static void run(std::ostream& s, const Tensor& tensor, const Format& fmt) {
     typedef typename Tensor::Index IndexType;
@@ -382,7 +380,6 @@
 struct TensorPrinter<Tensor, 0, Format> {
   static void run(std::ostream& s, const Tensor& tensor, const Format& fmt) {
     using Scalar = std::remove_const_t<typename Tensor::Scalar>;
-    using ScalarPrinter = ScalarPrinter<Scalar, Format>;
 
     std::streamsize explicit_precision;
     if (fmt.precision == StreamPrecision) {
@@ -400,7 +397,7 @@
     std::streamsize old_precision = 0;
     if (explicit_precision) old_precision = s.precision(explicit_precision);
     s << fmt.tenPrefix;
-    ScalarPrinter::run(s, tensor.coeff(0), fmt);
+    ScalarPrinter<Scalar, Format>::run(s, tensor.coeff(0), fmt);
     s << fmt.tenSuffix;
     if (explicit_precision) s.precision(old_precision);
   }