compilation avec gnu++17

Bugs

Modérateur : xcasadmin

frederic han
Messages : 1137
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

compilation avec gnu++17

Message par frederic han » mer. oct. 13, 2021 8:27 am

Salut Bernard,
la compilation avec gcc11 ne marche pas avec les options par defaut (std=gnu++17)

Code : Tout sélectionner

ans le fichier inclus depuis /usr/include/c++/11/bits/hashtable_policy.h:34,
                 depuis /usr/include/c++/11/bits/hashtable.h:35,
                 depuis /usr/include/c++/11/unordered_map:46,
                 depuis index.h:43,
                 depuis giacPCH.h:8,
                 depuis maple.cc:2:
/usr/include/c++/11/tuple: Dans l'instanciation de « constexpr const size_t std::tuple_size_v<giac::gen(const giac::gen&)> » :
/usr/include/c++/11/tuple:1853:24:   requis par « constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = giac::dbgprint_vector<giac::gen>&; _Tuple = giac::gen (&)(const giac::gen&)] »
maple.cc:1047:24:   requis depuis ici
/usr/include/c++/11/tuple:1334:61: erreur: type « std::tuple_size<giac::gen(const giac::gen&)> » incomplet utilisé dans un spécificateur de noms imbriqué
 1334 |     inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value;
      |                                                             ^~~~~
make[2]: *** [Makefile:814 : maple.lo] Erreur 1

je vois que dans le paquet fedora il est ajouté un "-std=gnu++14" au CXXFLAGS

Fred

parisse
Messages : 5731
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: compilation avec gnu++17

Message par parisse » ven. oct. 15, 2021 8:39 pm

Je ne comprends rien au message d'erreur...
Si c'est le seul message, on peut toujours changer l'argument de apply pour faire comme a la ligne du dessous.

parisse
Messages : 5731
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: compilation avec gnu++17

Message par parisse » mer. nov. 03, 2021 9:02 pm

Il y a quelques corrections a faire pour gcc11, il faut mettre des giac::apply au lieu de apply lorsqu'il y a un risque de confusion entre giac::apply et std::apply (par exemple la dans maple.cc), et il faut mettre const dans graphe.h pour

Code : Tout sélectionner

...
struct kspaths_comparator {
            bool operator()(const std::pair<gen,tree_node*> &a,const std::pair<gen,tree_node*> &b) const {
            ...

Répondre