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

C++ Discussion :

Boost Multi_array & class


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut Boost Multi_array & class
    Bonjour,

    Je cherche à réaliser un tableau dynamique de classe avec l'outil multi_array de boost.
    Comment puis-je m'y prendre?

    ci-joint un code de test avec la classe "A" qui prend 2 parametre dans son constructeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int main() {
     
    	typedef boost::multi_array<A, 2> array_A;
    	array_A TestA;
     
    	TestA.resize(boost::extents[10][10]);
     
    	return 0;
    }
    Ce code me retourne l'erreur:

    boost-1_59/boost/multi_array.hpp:477:5: error: no matching function for call to 'A::A()'


    Merci à vous

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Points : 122
    Points
    122
    Par défaut
    Un tour dans la doc de boost m'a fait tomber sur ceci:
    Resizing an Array
    The boost::multi_array class provides an element-preserving resize operation...
    ...Any new elements in the array are default constructed.
    Donc pour pouvoir resizer ton tableau, il faut que ta classe A soit defaut-constructible.
    Or dans ton exemple, tu as défini un contructeur avec 2 paramètres mais pas de constructeur par défaut, donc ta classe n'est pas defaut-constructible, d'où ton erreur.
    "Toujours en faire plus pour en faire moins"

  3. #3
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut
    Ha ok super,

    en effet,ça compile à présent.

    Merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boost, serialisation et classe virtuelle pure.
    Par AF_2.8 dans le forum Boost
    Réponses: 3
    Dernier message: 06/12/2010, 10h14
  2. boost::ptr_vector et classe abstraire
    Par guillaume07 dans le forum Boost
    Réponses: 6
    Dernier message: 01/06/2010, 23h25
  3. boost::multi_array, pointeurs et delete
    Par olivier21c dans le forum C++
    Réponses: 6
    Dernier message: 12/04/2010, 15h12
  4. [boost::multi_array]accés au fonction membres des objets stocké.
    Par dillinger91 dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 31/12/2008, 20h11
  5. Réponses: 6
    Dernier message: 17/06/2008, 12h55

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