Teilspezialisierung mit abhängigem Namen (Typenname)

Ich habe folgendes einfachstrinToTypeImpl Funktion, die jede Art von Zeichenfolge in den Vorlagentyp konvertiert. Das Problem, das mich beschäftigt, ist die Tatsache, dass der Compiler mir die teilweise Spezialisierung für angibttypename MyMatrix<T>::Vector3 :

Template-Parameter T wird bei der Teilspezialisierung nicht verwendet

Kann ich in der Spezialisierung keine abhängigen Namen verwenden?

namespace details
{

    template<typename T>
    struct stringToTypeImpl{
        bool operator()(T& t, const std::string& s)
        {
          std::istringstream iss(s);
          return !(iss >> t).fail();
        }
    };


    template<typename T>
    struct stringToTypeImpl< typename MyMatrix<T>::Vector3  >{ 

        // Replacing typename MyMatrix<T>::Vector3  by 
        // Eigen::Matrix<T,3,1> WORKS but why?

        bool operator()(typename MyMatrix<PREC>::Vector3 & t, const std::string& s)
        {
          stringToVector3<PREC>(t,s);
        }
    };
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage