Forum de la communauté SFML

Général => Suggestions de nouvelles fonctionnalités => Discussion démarrée par: valentin_616 le Septembre 11, 2016, 09:42:07 pm

Titre: Utiliser <cinttypes>
Posté par: valentin_616 le Septembre 11, 2016, 09:42:07 pm
Comme je suis nouveau dans le monde du c++ je me suis dit que d'aller jeter un coup d'œil au code source SFML serait un bon entraînement.
Et je suis tombé sur sa dans le fichier SFML/include/SFML/Config.hpp:

// 8 bits integer types
    typedef signed   char Int8;
    typedef unsigned char Uint8;

    // 16 bits integer types
    typedef signed   short Int16;
    typedef unsigned short Uint16;

    // 32 bits integer types
    typedef signed   int Int32;
    typedef unsigned int Uint32;

    // 64 bits integer types
    #if defined(_MSC_VER)
        typedef signed   __int64 Int64;
        typedef unsigned __int64 Uint64;
    #else
        typedef signed   long long Int64;
        typedef unsigned long long Uint64;
#endif
 


Il existe dans la librairie standard <cinttypes> depuis c++11 et pour le anciens standards <inttypes.h> qui ajoute des variables pour les entiers sur le nombre de bits que l'on veut.

Exemple:
#include <cinttypes> //depuis c++11
#include <inttypes.h> //pour anciens standards

int main(){
    int8_t v1; //entier signé sur 8 bits
    uint8_t v2;//entier non signé sur 8 bits

    int16_t v3;//sur 16 bits
    uint16_t v4;

    int32_t v5;//sur 32 bits
    uint32_t v6;

    int64_t v7;//sur 64 bits
    uint64_t v8;
}
 

Donc pourquoi ne pas utiliser <cinttypes> ?
Titre: Re : Utiliser <cinttypes>
Posté par: Laurent le Septembre 12, 2016, 06:27:17 am
Parce que SFML n'utilise pas C++11.