私はこの問題を見てきましたが、どこに問題があるのか わかりません。私は C++ の専門家ではないので、これで問題ないように見えます。これは、前回試したときに問題なくコンパイルできました。
namespace yaaf {
/************************************************************************/
/* */
/* Standard YAAF Errors */
/* */
/************************************************************************/
/* XGYAAFError
*
* YAAF Error; this is the root of my YAAF errors, and is
* a descendant of the standard exception class
*/
class XGYAAFError : public std::exception {
public:
explicit XGYAAFError(const char *);
explicit XGYAAFError(const std::string &err);
const char *what() const throw()
{
return fError.c_str();
}
private:
std::string fError;
};
} // namespace yaaf
#endif
GCC ライブラリの基本クラス...
/**
* @brief Base class for all library exceptions.
*
* This is the base class for all exceptions thrown by the standard
* library, and by certain language expressions. You are free to derive
* your own %exception classes, or use a different hierarchy, or to
* throw non-class data (e.g., fundamental types).
*/
class exception
{
public:
exception() throw() { }
virtual ~exception() throw();
/** Returns a C-style character string describing the general cause
* of the current error. */
virtual const char* what() const throw();
};
ビルドしようとすると、「オーバーライド関数の仕様が基本バージョンよりも緩い」というエラーが表示されます。
これは、C++ 言語の変更 (2004 年頃??) と、派生クラス内でポインターを宣言できる場所に関係している可能性があると思います。しかし、それがここに当てはまるかどうか、およびこれを修正する方法がわかりません。
具体的に何が間違っているか、またはこれを修正する方法についてのアイデアをいただければ幸いです。
ありがとう