częściowa specjalizacja z nazwą zależną (nazwa typu)
Mam następujące prostestrinToTypeImpl
funkcja, która przekształca dowolny rodzaj łańcucha w typ szablonu. Problemem, który mnie niepokoi, jest fakt, że kompilator mówi mi o częściowej specjalizacji dlatypename MyMatrix<T>::Vector3
:
parametr szablonu T nieużywany w częściowej specjalizacji
Czy w specjalizacji nie mogę używać nazw zależnych?
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);
}
};
}