частичная специализация с зависимым именем (typename)
У меня есть следующие простыеstrinToTypeImpl
функция, которая преобразует любой тип строки в тип шаблона. Проблема, которая меня беспокоит, заключается в том, что компилятор сообщает мне о частичной специализации для:typename MyMatrix::Vector3
параметр шаблона T не используется при частичной специализации
Можно'Я использую зависимые имена в специализации?
namespace details
{
template
struct stringToTypeImpl{
bool operator()(T& t, const std::string& s)
{
std::istringstream iss(s);
return !(iss >> t).fail();
}
};
template
struct stringToTypeImpl< typename MyMatrix::Vector3 >{
// Replacing typename MyMatrix::Vector3 by
// Eigen::Matrix WORKS but why?
bool operator()(typename MyMatrix::Vector3 & t, const std::string& s)
{
stringToVector3(t,s);
}
};
}