我有一个例外类别:
#include <exception>
struct InvalidPathException : public std::exception
{
explicit InvalidPathException() {}
const char* what() const;
};
const char*
InvalidPathException::what() const {
return "Path is not valid";
}
根据海合会4.4与Wall-std=c++0x汇编
error: looser throw specifier for virtual const char* InvalidPathException::what() const
error: overriding virtual const char* std::exception::what() const throw ()
由于I m 优先于std:
swhat(<>/code> 确实有
throw(
> 例外查询人。 但是,由于经常be informed ,我们就不使用例外光谱仪。 根据我的理解,它们是:,但显然尚未在海湾合作委员会得到――std=c++0x。
因此,我对目前的最佳办法感兴趣。 在代码I m发展中,我确实关心业绩,并对<代码>throw(<>>/代码>的上述间接费用感到担忧,但事实上,这种间接费用如此严重? 我正确地认为,我只是在以下时间才遭受痛苦:what(>
)被实际称作,只有在这种例外被推翻之后才会这样做(同样,对于从中继承的其他方法,除外:所有的人都有<代码>>specifiers?
或者,是否有办法解决海合会提出的这一错误?