J'ai encore une autre question sur les templates qui me travaille depuis un certain temps: est-ce qu'il est possible de faire un "branchement" selon un paramètre de template ?

Par exemple, du genre suivant: (code qui ne compilera pas)
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
 
template<typename _T, int _sizeT>
struct vec_proto
{
  union
  {
     _T a[_sizeT];
    struct
    {
       _T x;
##if(_sizeT >= 2)
       _T y;
##if(_sizeT >= 3)
       _T z;
##if(_sizeT >= 4)
       _T w;
##if(_sizeT > 4)
#pragma error;
##endif
##endif
##endif
##endif
    };
  };
};