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 :

Pourquoi std::discrete_distribution n'a pas de sémantique de mouvement ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Par défaut Pourquoi std::discrete_distribution n'a pas de sémantique de mouvement ?
    Bonjour à toutes et à tous !

    J'étais en train d'écrire un constructeur de mouvement pour une de mes classes dont un membre est une std::discrete_distribution. Si j'en crois la doc (sauf erreur de ma part), il n'y a pas de constructeur ou d'aaffectation par mouvement, et je ne peux pas écrire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->m_dis = std::move(other.m_dis)
    .
    Je me demande pourquoi ? Pour résoudre mon problème, peut-être que param_type est movable, auquel cas faudrait-il écrire quelque chose comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->m_dis.param(other.m_dis.param())


    Si je dis une énorme bêtise, tout mes excuses, je débarque à peine dans la sémantique de mouvement

    Merci

  2. #2
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Bonjour,

    Selon la doc de en.cppreference.com, std::discrete_distribution respecte les règles du concept RandomNumberDistribution, ce qui implique :

    Donc std::discrete_distribution est copiable et déplaçable.

    Remarque : std::discrete_distribution n'est pas obligé d'avoir un constructeur de mouvement pour être MoveConstructible. Je ne sais pas s'il en a un mais, s'il n'en a pas, ce sera le constructeur de copie qui sera appelé à la place. Idem pour l'affectation.

  3. #3
    Membre éclairé Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Par défaut
    Ah sacrezut, je m'étais arrêté au concept de RandomNumberDistribution, et je m'étais dit "ok ils semblent pas parler de move". Voilà qui m'apprendra à ouvrir toutes les poupées russes de la doc.
    Merci !

    Remarque : std::discrete_distribution n'est pas obligé d'avoir un constructeur de mouvement pour être MoveConstructible.
    C'est noté, une lacune en moins.

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

Discussions similaires

  1. Pourquoi std::unique_ptr ne propage-t-il pas const ?
    Par Pyramidev dans le forum Langage
    Réponses: 10
    Dernier message: 31/10/2016, 23h12
  2. std::vector semble ne pas utiliser std::move, pourquoi ?
    Par n0-sheep dans le forum SL & STL
    Réponses: 7
    Dernier message: 15/03/2014, 01h25
  3. [BCB5][FB1.5]Pourquoi cette commande ne fonctionne pas ?
    Par Sitting Bull dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2004, 16h27
  4. Pourquoi ce trigger ne marche pas ??
    Par Le Basque dans le forum Développement
    Réponses: 4
    Dernier message: 20/09/2004, 15h46
  5. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 11h23

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