Bonjour,
J'aimerais voir à l'avenir quelques ajouts dans les constructeurs de la classe Vector2;
Je ne sais pas pour vous, mais je tombe souvent sur des minis hacks à mettre en place autour de la construction car les choix sont quand meme assez legers !
Vector2();
Vector2(T X, T Y);
template <typename U>
explicit Vector2(const Vector2<U>& vector);
Est-ce que un jour on pourrait avoir quelque chose de ce style ?
template<typename... Types>
Vector2(const std::tuple<Types...>& types) : x(std::get<0>(types)), y(std::get<1>(types)) {}
Les mini-hacks ne sont pas très lourds, mais ils permettront au moins une plus grande lisibilité !
Merci,
nico
A mon avis c'est ce qu'il a voulu dire
J'en doute. Il parle vraiment d'ajouter un constructeur à la classe Vector2, avec comme source un std::tuple duquel on extrait les deux premières composantes. Il donne même la définition du constructeur qu'il veut ajouter, ça limite les interprétations possibles... :P
Se serait en effet très pratique en faisant une seule classe plutôt que 2 classes pour gérer les vecteurs 3D et 2D
Je vois mal comment une telle classe pourrait être utilisable.
Sinon il y a d'autre classe ou j'aurai aimé avoir plus de constructeurs comme par exemple la classe Sprite mais rien ne t'empêche de recoder des classes de SFML
Pas besoin de recoder une classe pour ajouter un constructeur. Une fonction libre suffit.
sf::Sprite makeSprite(...)
{
sf::Sprite sprite;
...
return sprite;
}
template<typename T, typename... Types>
sf::Vector2<T> makeVector(const std::tuple<Types...>& types)
{
return sf::Vector2<T>(std::get<0>(types), std::get<1>(types));
}