Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[boost] Mes sources diffèrent de celles de la doc. (Résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
lefta
n00b
n00b


Joined: 29 Apr 2011
Posts: 25

PostPosted: Sun Aug 12, 2012 11:45 am    Post subject: [boost] Mes sources diffèrent de celles de la doc. (Résolu) Reply with quote

Bonjour,

/!\ Malgré les apparences au début, ce n'est pas une question de programmation :wink: /!\

Je programme un jeu à mon compte pour le fun, et dans une classe je me sers des bimap de boost. Je peux utiliser la fonction at(), mais pas les crochets [] . Si j'utilise les crochets, le compilo me sort une erreur, qui -viendrait- de boost.

Je suis tombé, à moitié par hasard, sur les sources dans la doc, et voici la différence :

:arrow: Sources de la doc :
Code:
template< class CompatibleKey >
    data_type_ & operator[](const CompatibleKey& k)
    {
        typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::support::
                      iterator_type_by<Tag,BimapType>::type       iterator;

        typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::support::
                         value_type_by<Tag,BimapType>::type     value_type;

        iterator iter = derived().find(k);
        if( iter == derived().end() )
        {
            iter = derived().insert( value_type(k,data_type_()) ).first;
        }
        return iter->second;
    }


:arrow: Sources de portage, vérifiées dans l'archive directement :
Code:
template< class CompatibleKey >
    data_type_ & operator[](const CompatibleKey& k)
    {
        BOOST_BIMAP_STATIC_ERROR( OPERATOR_BRACKET_IS_NOT_SUPPORTED, (Derived));
    }


Alors pourquoi cette fonction a été 'désimplémentée'?
La doc se sert des crochets, et j'ai besoin de pouvoir modifier mon bimap. at() retourne juste une reference constante :(

J'ai démasqué boost 1.50 pour tester, mais c'est pareil avec 1.49.

Ma question est donc : d'où celà vient-il? Est-ce modifié par les devs de gentoo? Est-ce une erreur venant de l'équipe de boost? Est-ce voulu ou pas?
(voire si quelqu'un a un moyen de contourner ce problème, je suis preneur, mais je sais que ce n'est pas un forum de prog :) )

Merci de vos réponses :)


Last edited by lefta on Sun Aug 12, 2012 12:59 pm; edited 1 time in total
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Sun Aug 12, 2012 11:56 am    Post subject: Reply with quote

Les sources que tu télécharges via portage sont les sources officielles (le tarball). Si patch gentoo il y a, c'est soit dans le sous-dossier "files/" du paquet dans l'arbre de portage, soit si le patchset est plus conséquent, dans un tar à part. L'explication la plus plausible est que ta doc n'est pas à jour, et référence des trucs pour les vieilles version de Boost qui ont depuis été changés pas les devs de Boost !

[EDIT]
Heu, On doit pas regarder au même endroit, parce que chez moi, c'est bon, le code issu de la doc que tu cites est bien présent au bon endroit dans les sources de la 1.49 ;)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing


Last edited by guilc on Sun Aug 12, 2012 12:07 pm; edited 1 time in total
Back to top
View user's profile Send private message
lefta
n00b
n00b


Joined: 29 Apr 2011
Posts: 25

PostPosted: Sun Aug 12, 2012 12:03 pm    Post subject: Reply with quote

Waw! Ça c'est de la reponse rapide :D

Sinon il ne semble pas s'agir d'un patch, puisque le code est prit directement depuis depuis l'archive de sources du dossier distfiles.
Et la doc est bien celle de 1.50, j'ai vérifié : http://www.boost.org/doc/libs/1_50_0/boost/bimap/detail/map_view_base.hpp.

Il me semblait que les sources étaient téléchargées depuis le dépot officiel.
Là j'avouerais que je comprends pas... L'erreur viendrait de boost?

Merci de ta reponse, je crois que vais aller faire un tour sur leurs forums :)
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Sun Aug 12, 2012 12:08 pm    Post subject: Reply with quote

lefta wrote:
Il me semblait que les sources étaient téléchargées depuis le dépot officiel.

C'est le cas.

Quote:
Là j'avouerais que je comprends pas... L'erreur viendrait de boost?

Vu que chez moi ce snippet de code est bien présent (voir mon edit au dessus).... Je penche plutôt pour un simple mésusage de la lib ;)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
lefta
n00b
n00b


Joined: 29 Apr 2011
Posts: 25

PostPosted: Sun Aug 12, 2012 12:11 pm    Post subject: Reply with quote

8O 8O 8O

Là je comprends vraiment plus... Je remasque boost 1.50, puisque ça n'a rien à voir avec la 1.49, je supprime les distfiles, je re-sync l'arbre portage, je réinstalle et te tiens au courant :)

EDIT : Nan, même après avoir resyncronisé et retéléchargé, c'est toujours la même chose. Mais portage télécharge depuis distfiles.gentoo.org, ou un truc dans le genre. Existe-t-il un moyen de le forcer à télécharger depuis l'URI spécifiée dans l'ebuild?

EDIT 2 : Idem depuis Sourceforge. Tu as eu tes sources depuis Sourceforge? Ça commence à me chauffer cette histoire... :evil:

EDIT3 : Pff c'est bon j'ai compris... Il y a les deux bouts de code dans le fichier, je regardais pas exactement au même endroit. C'est implementé dans la class mutable_... mais pas dans non_mutable_... . Le bout de code qui ne fonctionne pas est ligne 360, l'autre est une quarantaine de lignes avant...

Merci du coup de patte Guilc :)

RÉSOLU
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Sun Aug 12, 2012 3:30 pm    Post subject: Reply with quote

lefta wrote:
EDIT : Nan, même après avoir resyncronisé et retéléchargé, c'est toujours la même chose. Mais portage télécharge depuis distfiles.gentoo.org, ou un truc dans le genre. Existe-t-il un moyen de le forcer à télécharger depuis l'URI spécifiée dans l'ebuild?


C'est pareil !
les url "gentoo", c'est juste des miroirs : le principe c'est que les miroirs gentoo vont s'alimenter automatiquement sur la source d'origine décrite dans le SRC_URI. Cela permet d'alléger la charge sur le serveur d'origine. Mais les sources ne sont absolument pas modifiées. Pour preuve : elles ont les mêmes signatures (définies dans les fichiers Manifest).
Si tu tiens absolument à fetcher la source directement depuis le dépôt "officiel", il suffit de définir GENTOO_MIRRORS="". Mais c'est évidemment déconseillé et peu sympathique avec l'hébergement du projet (quand il s'agit de sourceforge, pas de souci, mais si le projet est hébergé sur une petite plateforme et que tout le monde fait ça, c'est pas super sympa...)

Quote:
EDIT 2 : Idem depuis Sourceforge. Tu as eu tes sources depuis Sourceforge? Ça commence à me chauffer cette histoire... :evil:

Donc cf supra, non, depuis un quelconque miroir gentoo. Si l'ebuild s'installe, c'est que la signature du tarball est correcte, donc que les sources sont conformes à l'original ;)

Quote:
EDIT3 : Pff c'est bon j'ai compris... Il y a les deux bouts de code dans le fichier, je regardais pas exactement au même endroit. C'est implementé dans la class mutable_... mais pas dans non_mutable_... . Le bout de code qui ne fonctionne pas est ligne 360, l'autre est une quarantaine de lignes avant...

Merci du coup de patte Guilc :)

RÉSOLU


Arf :)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum