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

Boost C++ Discussion :

[Boost.FileSystem::Path] Fonctionnement des name checkers


Sujet :

Boost C++

  1. #21
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    C'est plus facile de faire un ajout conditionnel plutôt qu'un ajout, ainsi qu'une suppression conditionnelle...

    Donc en gros, cette fonctionnalité a été supprimée (auquel cas ce topic deviendrait inutile) ?

  2. #22
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Path name checking functionality has been moved out of class path and into separate free-functions.
    Moi là je comprends que ça a été déplacé de la classe 'path' vers des fonctions libres...
    Donc ça doit toujours exister quelque part a priori.

    MAT.

  3. #23
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    "Fonctions libres"... c'est vague, mais ce que moi, j'en ai compris, c'est que des fonctions externes à la classe s'occuperont de cette vérification (en d'autres mots, ça a été supprimé ^^), quitte à en fournir quelques-unes par défaut.

  4. #24
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    A la limite, je peux faire le concept du TypeChecker comme cela :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(TypeChecker::CheckType<MusicType>(filePath))
        m_playlist.add(filePath);

    Je suppose que pour pareille fonction, je devrais utiliser une fonction template que je spécialise pour chacun des types, mais vu que le corps de la fonction reste le même, autant la généraliser pour chacun des types... comment devrais-je le faire ? Dériver chacun des types d'une structure bidon Type, n'accepter dans le template que des structures dérivées, mais comment faire pour le tableau statique de strings ?

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    struct TypeChecker
    {
        struct MusicType
        {
            static boost::array<std::string, 3> Ext;
        };
     
        template <>
        static bool CheckType(std::string const &name)
        {
        }
     
        template <MusicType>
        static bool CheckType(std::string const &name)
        {
            bool ret = false;
     
            for(
                    boost::array<std::string, 3>::const_iterator it = MusicType::Ext.begin() ;
                    it != MusicType::Ext.end() ;
                    ++it
                )
            {
                if(boost::filesystem::extension(name) == *it)
                {
                    ret = true;
                    break;
                }
            }
            return ret;
        }
    };
     
    boost::array<std::string, 3> TypeChecker::MusicType::Ext = make_array<std::string>(".mp3", ".ogg", ".wav"); //?

    Là, c'est une question de conception et de manipulation des templates (bon, c'est pas du metaprogramming non plus), mais je ne vais tout de même pas créer un nouveau topic pour ça...

    Merci d'avance.

    P.S : Est ce que ça existe un moyen de simuler une enum de strings (pour du metaprogramming) ?

Discussions similaires

  1. boost::filesystem liste des hard drive
    Par dessibull dans le forum Boost
    Réponses: 0
    Dernier message: 14/12/2010, 14h40
  2. Réponses: 5
    Dernier message: 02/09/2009, 12h34
  3. boost::filesystem::path ne veut pas s'initialiser !
    Par tlemcenvisit dans le forum Boost
    Réponses: 1
    Dernier message: 09/11/2008, 04h44
  4. Réponses: 18
    Dernier message: 28/08/2006, 23h07
  5. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12

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