Ik geloof dat ik gek wordt (maar het kan ook aan mijn compiler liggen
)
Ik heb hier namelijk een template, die volgens de Visual C++ compiler gewoon goed is, maar volgens de Arm C++ compiler niet
De ARM C++ compiler komt met de volgende fout:
't kan heel goed dat het gewoon aan de compiler ligt, want in de documentatie staat ook dat ie nog niet alle C++ features ondersteund (zoals namespaces bijvoorbeeld), maar templates ondersteunt ie wel helemaal (volgens de docs dan)
Ik heb hier namelijk een template, die volgens de Visual C++ compiler gewoon goed is, maar volgens de Arm C++ compiler niet
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| template <int N> class fixed
{
public:
int value;
fixed<N> ()
{
}
fixed<N> (int i) : value (1 << N)
{
}
template <int M> fixed<N> (const fixed<M> & f)
{
if (N < M)
value = f.value << (N - M);
else
value = f.value >> (M - N);
}
}; |
De ARM C++ compiler komt met de volgende fout:
Zie ik iets over het hoofd? Of is mijn template declaratie toch niet helemaal netjes terwijl VC++ m wel pakt?Serious error: illegal in constant expression: non constant 'M'
't kan heel goed dat het gewoon aan de compiler ligt, want in de documentatie staat ook dat ie nog niet alle C++ features ondersteund (zoals namespaces bijvoorbeeld), maar templates ondersteunt ie wel helemaal (volgens de docs dan)
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.