Anomalie #21
Goes 64 bits sous windows Boost 1.34.1
30%
Description
Goes 64 bits sous windows Boost 1.34.1
---------------------------------------------------------------------------
Description:
----------------------------------------
Les solutions de Visual 2005 ont été mises a jour pour la compilation de MorphM
en 64 bits sous Windows
La version de boost est la 1.34.1
Lors de la compilation en debug, boost met est en place des tests de concepts
(cf.http://www.boost.org/libs/concept_check/concept_check.htm). C'est une bonne
méthode pour contraindre la programmation de fonctions/classes template
Un de ces tests est déclenché dans commonGraph quand ont veut utiliser
l'algorithme de MST de Boost
Car.....
Windows et les autres plateformes ne définissent pas les long et unsigned long
de la meme facon
Ce qui fait que Boost déclence un asert quand il voit passé un __int64 ou un
unsigned __int64
---------------------------------------------------------------------------
Change: status: "pending" -> "accepted"
Change: assignees: "[]" -> "['faessel', 'morphmdev', 'noyel']"
Change: topic: "" -> "Others"
Change: solution: "" -> "Bon ben faut ajouter un petit bout de code dans
boost/concept_check.hpp
ligne 149
"""
template <class T>
struct IntegerConcept {
void constraints() {
#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
x.error_type_must_be_an_integer_type();
#endif
}
T x;
};
#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
template <> struct IntegerConcept<short> { void constraints() {} };
template <> struct IntegerConcept<unsigned short> { void constraints() {} };
template <> struct IntegerConcept<int> { void constraints() {} };
template <> struct IntegerConcept<unsigned int> { void constraints() {} };
template <> struct IntegerConcept<long> { void constraints() {} };
template <> struct IntegerConcept<unsigned long> { void constraints() {} };
// etc.
- ICI
#ifdef WIN64
template <> struct IntegerConcept<_int64> { void constraints() {} };
template <> struct IntegerConcept<unsigned __int64> { void constraints() {} };
#endif ****************************
#endif
"""
On notera le etc... qui n'est pas de moi ....
il se peut que ce soit corriger dans le CVS de boost mais pas dans la version en téléchargement pour le moment"
Change: importance: "medium" -> "low"
Change: title: "" -> "Goes 64 bits sous windows Boost 1.34.1"
Change: classification: "Bug" -> "Bug+Solution"
Change: description: "" -> "Les solutions de Visual 2005 ont été mises a jour pour la compilation de MorphM en 64 bits sous Windows
La version de boost est la 1.34.1
Lors de la compilation en debug, boost met est en place des tests de concepts (cf.http://www.boost.org/libs/concept_check/concept_check.htm). C'est une bonne méthode pour contraindre la programmation de fonctions/classes template
Un de ces tests est déclenché dans commonGraph quand ont veut utiliser l'algorithme de MST de Boost
Car.....
Windows et les autres plateformes ne définissent pas les long et unsigned long de la meme facon
Ce qui fait que Boost déclence un asert quand il voit passé un __int64 ou un unsigned __int64"