У меня есть код, в котором я пытаюсь создать пользовательское исключение в шаблонном методе.Когда я пытаюсь скомпилировать его, я получаю следующее предупреждение:
there are no arguments to ‘Invalid_State_Exception’ that depend on a
template parameter, so a declaration of ‘Invalid_State_Exception’ must
be available
note: (if you use ‘-fpermissive’, G++ will accept your code, but
allowing the use of an undeclared name is deprecated)
Я пока не смог найти способ обойти это.Будем признательны любому совету.Вот пример кода, объясняющего, что у меня есть (Foo.h):
template <class T> class Foo
{
public:
void do_stuff(T t)
{
if(bar == true)
{
throw Invalid_State_Exception("FooBar error occurred");
}
}
....
};
class Invalid_State_Exception : public std::runtime_error
{
public:
Invalid_State_Exception(const std::string& msg) :
std::runtime_error(msg) { }
};