"src/vscode:/vscode.git/clone" did not exist on "d3bf4fe1aa3fe5a3eedb3f00dd35223a38c80213"
Commit 00ce3959 authored by Paul's avatar Paul
Browse files

Improve error message

parent 3577a3bd
...@@ -81,6 +81,32 @@ inline std::ostream& operator<<(std::ostream& os, const color& c) ...@@ -81,6 +81,32 @@ inline std::ostream& operator<<(std::ostream& os, const color& c)
return os; return os;
} }
template <class T>
struct type_name
{
static const std::string& apply() { return migraphx::get_type_name<T>(); }
};
template <>
struct type_name<std::string>
{
static const std::string& apply()
{
static const std::string name = "std::string";
return name;
}
};
template <class T>
struct type_name<std::vector<T>>
{
static const std::string& apply()
{
static const std::string name = "std::vector<" + type_name<T>::apply() + ">";
return name;
}
};
template <class T> template <class T>
struct value_parser struct value_parser
{ {
...@@ -92,7 +118,7 @@ struct value_parser ...@@ -92,7 +118,7 @@ struct value_parser
ss.str(x); ss.str(x);
ss >> result; ss >> result;
if(ss.fail()) if(ss.fail())
throw std::runtime_error("Failed to parse: " + x); throw std::runtime_error("Failed to parse '" + x + "' as " + type_name<T>::apply());
return result; return result;
} }
...@@ -104,7 +130,7 @@ struct value_parser ...@@ -104,7 +130,7 @@ struct value_parser
ss.str(x); ss.str(x);
ss >> i; ss >> i;
if(ss.fail()) if(ss.fail())
throw std::runtime_error("Failed to parse: " + x); throw std::runtime_error("Failed to parse '" + x + "' as " + type_name<T>::apply());
return static_cast<T>(i); return static_cast<T>(i);
} }
...@@ -118,31 +144,6 @@ struct value_parser ...@@ -118,31 +144,6 @@ struct value_parser
} }
}; };
template <class T>
struct type_name
{
static const std::string& apply() { return migraphx::get_type_name<T>(); }
};
template <>
struct type_name<std::string>
{
static const std::string& apply()
{
static const std::string name = "std::string";
return name;
}
};
template <class T>
struct type_name<std::vector<T>>
{
static const std::string& apply()
{
static const std::string name = "std::vector<" + type_name<T>::apply() + ">";
return name;
}
};
struct argument_parser struct argument_parser
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment