Bonjour,
je viens d'écrire une petite classe pour gérer les types d'entiers par taille :
J'aimerais savoir, si il y a des erreurs de conception (je débute dans les templates), et si c'est une solution viable pour définir ces types d'entier?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #include <iostream> template<bool b, typename T1, typename T2> class If { public: typedef T1 Res; }; template<typename T1, typename T2> class If<false, T1, T2> { public: typedef T2 Res; }; template<int bits> class Int { public: typedef typename If< (sizeof(short)==bits/8), short, typename If< (sizeof(int)==bits/8), int, typename If< (sizeof(long)==bits/8), long, void >::Res >::Res >::Res T; }; typedef Int<16>::T Int16; typedef Int<32>::T Int32; typedef Int<64>::T Int64; int main() { Int32 i = 10; std::cout<<i<<std::endl; }
Partager