Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLU] Erreurs dans rect.inl  (Lu 9493 fois)

0 Membres et 1 Invité sur ce sujet

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
[RESOLU] Erreurs dans rect.inl
« le: Octobre 06, 2018, 09:50:30 pm »
Ce que je vais vous demandez ?  peut être déj?  eut une réponse (et dans ce cas excusez moi, j'avais la flemme  ;D de parcourir les 40 pages de questions).
Mon problème est que j'ai tout installé, rajouté les indications pour Visual Studio MAIS, quand j'ai inclus le fichier <SFML/Graphics.hpp> pour faire une fenêtre de base, lors de la compilation, VS me donne PLEIN :o d'erreur dans le dossier Rect.inl.
Merci d'avance  :)

Le code de rect.inl:

template <typename T>
Rect<T>::Rect() :
left  (0),
top   (0),
width (0),
height(0)
{

}

template <typename T>
Rect<T>::Rect(T rectLeft, T rectTop, T rectWidth, T rectHeight) :
left  (rectLeft),
top   (rectTop),
width (rectWidth),
height(rectHeight)
{

}

template <typename T>
Rect<T>::Rect(const Vector2<T>& position, const Vector2<T>& size) :
left  (position.x),
top   (position.y),
width (size.x),
height(size.y)
{

}

template <typename T>
template <typename U>
Rect<T>::Rect(const Rect<U>& rectangle) :
left  (static_cast<T>(rectangle.left)),
top   (static_cast<T>(rectangle.top)),
width (static_cast<T>(rectangle.width)),
height(static_cast<T>(rectangle.height))
{
}

template <typename T>
bool Rect<T>::contains(T x, T y) const
{
    T minX = std::min(left, static_cast<T>(left + width));
    T maxX = std::max(left, static_cast<T>(left + width));
    T minY = std::min(top, static_cast<T>(top + height));
    T maxY = std::max(top, static_cast<T>(top + height));

    return (x >= minX) && (x < maxX) && (y >= minY) && (y < maxY);
}

template <typename T>
bool Rect<T>::contains(const Vector2<T>& point) const
{
    return contains(point.x, point.y);
}

template <typename T>
bool Rect<T>::intersects(const Rect<T>& rectangle) const
{
    Rect<T> intersection;
    return intersects(rectangle, intersection);
}

template <typename T>
bool Rect<T>::intersects(const Rect<T>& rectangle, Rect<T>& intersection) const
{
    T r1MinX = std::min(left, static_cast<T>(left + width));
    T r1MaxX = std::max(left, static_cast<T>(left + width));
    T r1MinY = std::min(top, static_cast<T>(top + height));
    T r1MaxY = std::max(top, static_cast<T>(top + height));

    T r2MinX = std::min(rectangle.left, static_cast<T>(rectangle.left + rectangle.width));
    T r2MaxX = std::max(rectangle.left, static_cast<T>(rectangle.left + rectangle.width));
    T r2MinY = std::min(rectangle.top, static_cast<T>(rectangle.top + rectangle.height));
    T r2MaxY = std::max(rectangle.top, static_cast<T>(rectangle.top + rectangle.height));

    T interLeft   = std::max(r1MinX, r2MinX);
    T interTop    = std::max(r1MinY, r2MinY);
    T interRight  = std::min(r1MaxX, r2MaxX);
    T interBottom = std::min(r1MaxY, r2MaxY);

    if ((interLeft < interRight) && (interTop < interBottom))
    {
        intersection = Rect<T>(interLeft, interTop, interRight - interLeft, interBottom - interTop);
        return true;
    }
    else
    {
        intersection = Rect<T>(0, 0, 0, 0);
        return false;
    }
}

template <typename T>
inline bool operator ==(const Rect<T>& left, const Rect<T>& right)
{
    return (left.left == right.left) && (left.width == right.width) &&
           (left.top == right.top) && (left.height == right.height);
}

template <typename T>
inline bool operator !=(const Rect<T>& left, const Rect<T>& right)
{
    return !(left == right);
}

 
« Modifié: Octobre 11, 2018, 02:37:23 am par ProcessusX »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #1 le: Octobre 07, 2018, 08:33:08 am »
Le code de rect.inl on le connaît... Par contre les erreurs que tu as eues, non.
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #2 le: Octobre 07, 2018, 03:03:29 pm »
Effectivement les erreurs : ;D
Rect n'est pas un modèle (lignes 2, 14, 26, 39, 50, 66, 74, 83, 121, 130) en gros tous les "Rect"
Vector2 n'est pas un modèle (lignes 26, 66, ) tous les "Vector2"
Qualificateur de type non autorisé sur une fonction non membre (lignes 50, 66, 74, 83) c'est des "const"
Un opérateur non membre requiert un paramètre avec un type classe ou enum (lignes 121 et 130) c'est des "operator"
'(' : jeton non conforme ?  droite de '::' (lignes 55 et 88)

Merci d'avance  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #3 le: Octobre 07, 2018, 08:18:54 pm »
Est-ce que tu inclus <Windows.h>, directement ou indirectement, dans ton code ?
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #4 le: Octobre 07, 2018, 08:22:07 pm »
Je ne l'ai pas inclus. C'est peut etre ça le problème... Je pensais qu'on pouvait se limiter ?  <SFML/Graphics>

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #5 le: Octobre 07, 2018, 09:57:33 pm »
Non, je voulais dire que ça aurait pu être la source du problème si tu l'avais fait.
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #6 le: Octobre 08, 2018, 01:19:38 am »
J'uttilise la derniere version de Visual Studio Community. Faut il une autre version?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #7 le: Octobre 08, 2018, 10:35:06 am »
Est-ce que ce code produit les mêmes erreurs ?

#include <SFML/Graphics.hpp>

int main()
{
    sf::IntRect r;
    return 0;
}
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #8 le: Octobre 08, 2018, 03:20:15 pm »
Non, toujours les memes erreurs...
Vous utilisez quel version de VS pour la SFML?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #9 le: Octobre 08, 2018, 06:15:34 pm »
Tu peux me copier-coller la sortie exacte du compilateur quand tu compiles ce code minimal ?

La version de VS n'a rien a voir.
« Modifié: Octobre 09, 2018, 08:41:58 am par Laurent »
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #10 le: Octobre 08, 2018, 10:31:09 pm »
Ça me met:
C2589   '(' : jeton non conforme ?  droite de '::'      jeu-collab      rect.inl      55
C2589   '(' : jeton non conforme ?  droite de '::'      jeu-collab      rect.inl      88

Donc la j'ouvre le fichier rect.inl et la 27 'erreurs.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #11 le: Octobre 09, 2018, 08:42:39 am »
Et ce même code minimal, en incluant juste SFML/Graphics/Rect.hpp au lieu de Graphics.hpp ?
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #12 le: Octobre 09, 2018, 01:09:45 pm »
Non meme avec ça, ça ne marche pas...
VS me dit toujours les erreurs dans Rect.inl...
Y a t-il une solution?
Pourrais-je avoir votre didacticiel complet de l'installation de la SFML? Juste au cas ou le tutoriel en ligne serais trop vieux...

Merci d'avance :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #13 le: Octobre 09, 2018, 01:15:40 pm »
A mon avis tu t'es trompé...

C'est bien ça tout seul que tu compiles et qui te donne ces erreurs, tu en es certain a 100% ??

#include <SFML/Graphics/Rect.hpp>

int main()
{
    sf::IntRect r;
    return 0;
}
Laurent Gomila - SFML developer

ProcessusX

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
    • E-mail
Re: Erreurs dans rect.inl
« Réponse #14 le: Octobre 09, 2018, 08:11:44 pm »
Oui ?  100%, mais en fait c'est le fichier rect.inl qui est plein d' erreurs.
Il y a aussi ça sur le site de la SFML :

"Depuis SFML 2.2, lors d'une liaison statique, il faut aussi lier toutes les dépendances de SFML. Par exemple : si vous liez ?  sfml-window-s.lib ou sfml-window-s-d.lib sur Windows, il faudra aussi lier ?  winmm.lib, gdi32.lib et opengl32.lib. Parfois ces bibliothèques seront listées sous "Inherited values" mais les ajouter une fois de plus ne devrait pas poser de problème."

Je ne l'ai pas fait car je ne c'est pas ce qu'il faut faire.