IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

terminate called after throwing an instance of 'std::regex_error'


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut terminate called after throwing an instance of 'std::regex_error'
    Bonjour,

    Dans ce code:
    https://github.com/alphaonex86/Catch...erver.cpp#L101
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GlobalServerData::serverPrivateVariables.datapack_rightFileName	= std::regex(DATAPACK_FILE_REGEX);
    https://github.com/alphaonex86/Catch...Variable.h#L59
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define DATAPACK_FILE_REGEX "^[0-9/a-z\\.\\- _]*[0-9a-z]\\.[a-z]{2,4}$"
    J'ai au runtime:
    terminate called after throwing an instance of 'std::regex_error'
    J'a tout essayer, std::regex_constants::extended, ...
    Un exemple simple ne pas pas de problème, donc je ne sais reproduire un cas d'erreur minimal.
    gcc 4.9 et clang 3.5

    Cordialement,

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Quel compilateur et quelle version ? Par exemple, g++-4.8 n'a pas un support complet des regex.

  3. #3
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    gcc 4.9 et clang 3.5, même probléme
    Ca marche avec http://libcxx.llvm.org/ + clang 3.5

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Cela me semble être un bug de libstdc++ qui essaye de construire un interval plutôt que considérer le caractère '-' comme un caractère normal. Tu peux mettre le tiret autre part (généralement en premier et sans antislash, les algorithmes (POSIX/ECMAScript) et les implémentations ont des comportements plus ou moins surprenants avec le tiret).

  5. #5
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Citation Envoyé par jo_link_noir Voir le message
    Cela me semble être un bug de libstdc++ qui essaye de construire un interval plutôt que considérer le caractère '-' comme un caractère normal.
    J'ai aussi le bug avec une regex simple, une regex vide.
    Hélas, il semble que je vais devoir faire avec clang/llvm jusqu'as avoir une solution avec gcc. Mais j'aimerai savoir a partir de quel version de gcc c'est ok.
    La sortie est prévu dans 1-2ans, donc j'espére de ce sera ok à ce moment la.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Normalement à partir de 4.9, le support des expressions régulières est complet.

    En tout cas, en mettant le tiret au début, je n'ai plus le problème avec la 4.9.3, ni avec la 5.2.1.

    C'est une version de compilateur officielle ou compilée pour un IDE ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/04/2014, 11h36
  2. Réponses: 6
    Dernier message: 02/04/2014, 17h06
  3. Réponses: 6
    Dernier message: 14/02/2012, 10h39
  4. Réponses: 6
    Dernier message: 19/07/2006, 10h41
  5. Réponses: 4
    Dernier message: 11/02/2006, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo