J'utilise gcc 6.1.1
J'essaye d'utiliser std::exception, qui intelligemment n'a pas de constructeur acceptant une std::string, ni même un bête const char*.
Donc je dérive, pour pouvoir utiliser la méthode const char* what() const, en la redéfinissant :
#include <string>
#include <exception>
using namespace std;
class Exception: public exception
{
public:
Exception(const char* message) { this->message = message; }
private:
string message;
const char* what() const override { return this->message; }
};Et là, j'ai l'erreur looser throw specifier for 'virtual const char* Exception::what() const'.Google, stackoverflow me donne ça : http://stackoverflow.com/questions/22698653/looser-throw-specifier-in-c
J'essaye ce qui est proposé :
- je compilais déjà avec -std=c++11
- j'ajoute un destructeur virtual (inutile mais c'est pas grave) : ~Exception() throw() {};
Et j'ai toujours la même erreur.
Deux questions :
- que se passe-t-il exactement ? J'ai lu des bouts de la norme à ce sujet, mais je ne comprends pas bien les tenants et aboutissants
- comment corriger ça ?
Merci d'avance pour votre aide.

ps -> pour une fois que j'essaye de faire "au plus simple" en utilisant la stl, ben ça commence bien

