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);
}
};
}